Credits
1. Frontend
Browser-side JavaScript and CSS shipped to every visitor.
- Air Datepicker: date and datetime picker (by t1m0n); powers the datetime fields in our API key add/edit forms. MIT.
- Inter: typeface used by REST Countries (by Rasmus Andersson and The Inter Project Authors). SIL Open Font License 1.1.
- Lodash: modular utility library; we lean on its template engine for view rendering. MIT.
- Marked: Markdown parser and compiler in JavaScript; renders Markdown to HTML on the client. MIT.
- Tabler Icons: open source SVG icon set; provides interface icons used across the site. MIT.
- Tippy.js: tooltip and popover UI primitive (by Atomiks). MIT.
- Popper: positioning engine that powers Tippy. MIT.
- Eric Meyer's CSS Reset: baseline cross-browser style normalization. Public domain.
2. Backend: third-party PHP
Server-side libraries we depend on for payments, email, AWS access, and other plumbing.
- AWS SDK for PHP: official Amazon Web Services SDK; powers our S3, SES, SNS, and API Gateway integrations. Apache 2.0.
- Stripe PHP: official Stripe SDK; backs subscription billing, invoicing, and webhook handling. MIT.
- Postmark PHP: Postmark transactional email client (by Markus Hedlund). MIT.
- Parsedown: Markdown parser in PHP (by Emanuil Rusev). MIT.
- JsShrink: JavaScript minifier in PHP (by Jakub Vrána). Apache 2.0 / GPL-2.0.
- url_slug: URL-slug generator (by Sean Murphy). CC0 / public domain.
3. Framework: TurtlePHP
REST Countries' web layer runs on TurtlePHP, a small PHP framework we maintain in the open. The framework ships with a focused plugin system; the plugins below are loaded by this app.
- TurtlePHP-BasePlugin: baseline request/response wiring.
- TurtlePHP-BasicSecurePlugin: basic-auth gate for non-public environments.
- TurtlePHP-BlockingPlugin: IP / agent blocking rules.
- TurtlePHP-ConcatenationPlugin: CSS/JS bundling.
- TurtlePHP-ConfigPlugin: environment config loader.
- TurtlePHP-DatabasePlugin: database connection management.
- TurtlePHP-ErrorPlugin: error capture and reporting.
- TurtlePHP-JSCompressorPlugin: JS minification pipeline.
- TurtlePHP-LoggingPlugin: structured request and error logs.
- TurtlePHP-MemcachedDataStorePlugin: Memcached-backed data store.
- TurtlePHP-PerformancePlugin: per-request performance metrics.
- TurtlePHP-RedirectPlugin: declarative redirect routing.
4. PHP libraries we maintain
REST Countries also leans on a set of focused PHP libraries we wrote and publish under our own GitHub. They're open source and used by other projects, so they belong on this list.
- PHP-Debugging: debug helpers (var dumps, traces).
- PHP-Email: thin abstraction over transactional email providers.
- PHP-JSON-Validation: schema-driven JSON validation.
- PHP-MemcachedCache: ergonomic Memcached client wrapper.
- PHP-MySQL: opinionated MySQL access layer.
- PHP-Premailer: HTML email inlining wrapper.
- PHP-Query: query helpers.
- PHP-RemoteRequests: outbound HTTP request helpers.
- PHP-RequestCache: per-request memoization cache.
- PHP-RiskyClosure: retry/recover wrapper for fault-prone calls.
- PHP-Security: security utilities (hashing, tokens, sanitization).
5. Platform and tooling
Runtime, server, cache, database, and package-management tools used to build and run REST Countries.
- Apache HTTP Server: web server. Apache 2.0.
- MySQL: relational database. GPL / commercial licensing.
- PHP: server-side runtime. PHP License.
- Memcached: in-memory cache. BSD license.
- Node.js: JavaScript runtime used by our build tooling. MIT.
- npm: JavaScript package manager and registry used for build dependencies.
- Ruby: scripting/runtime tooling. Ruby License / BSD 2-Clause.
- Nokogiri: HTML and XML parser for Ruby. MIT.
- Premailer: CSS inliner for HTML email. BSD 3-Clause.
6. Something missing?
If you maintain an open source project that powers something on this list and you'd like to update the attribution, link, or licensing line, let us know and we'll adjust it.