REST vs GraphQL: Choosing an API Style
Compare REST and GraphQL on data fetching, caching, versioning, performance and security, with guidance on when each fits, plus gRPC and tRPC.
Blog
Stacks, databases, deployment and marketing for websites you host yourself.
Compare REST and GraphQL on data fetching, caching, versioning, performance and security, with guidance on when each fits, plus gRPC and tRPC.
Find and configure PHP error logs: error_log and log_errors, PHP-FPM pool logs, Nginx and Apache logs, per-site logs, display_errors off, slow log, rotation.
Protect APIs with rate limiting: fixed and sliding windows, token buckets, per-key vs per-IP limits, 429 responses, Nginx and Redis setups.
Use all CPU cores with Node.js: PM2 cluster mode, the cluster module, Docker replicas behind Nginx, shared state in Redis, WebSocket sticky sessions, reloads.
Set up the Laravel scheduler with one cron entry or a systemd timer, define tasks, prevent overlaps, run on one server and debug missed runs.
Install the Bun runtime on a Linux server, use it as a package manager, run a Bun HTTP server under systemd behind Nginx, and know its caveats.
Install and secure MariaDB on Ubuntu, Debian, AlmaLinux or Rocky, create a database user, allow remote access safely, tune and back up.
Implement hreflang for multilingual sites: language and region codes, return links, x-default, HTML vs sitemap vs headers, URL structures, and common errors.
How Nginx picks a server block for unknown hostnames, why you need a catch-all default server, and how to reject IP and bogus-host requests on HTTP and HTTPS.
Write Nginx redirects and rewrites correctly: return for simple redirects, rewrite with regex and flags, maps for many redirects, .htaccess rules.
Install OpenJDK 17, 21 or newer on Ubuntu or Debian, choose JRE vs JDK, switch between versions, set JAVA_HOME, and run Java apps as a systemd service.
Fix missing CSS in production Django: STATIC_ROOT and collectstatic, Nginx or WhiteNoise, media uploads, cache headers, manifest storage, S3, and permissions.
How rel=canonical works: when to use it, self-referencing tags, parameters, HTTP headers for PDFs, canonical vs redirect vs noindex, and common mistakes.
React, Vue, Svelte, Angular, Astro and lighter options compared: what each is best at, how they render, and what they need from hosting.
What a .link domain is good for — link-in-bio pages, short links, link hubs — and the trade-offs in trust, email and SEO versus .com.