API Design Best Practices: The Defaults I Argue For Now
The API design defaults I argue for at project kickoff: noun-based URLs, honest HTTP status codes, RFC 9457 error shapes, real pagination, and versioning.
The API design defaults I argue for at project kickoff: noun-based URLs, honest HTTP status codes, RFC 9457 error shapes, real pagination, and versioning.
Tailwind v4 dropped the darkMode config key. Here is how dark mode works now: one CSS custom-variant line, the theme-flash fix, and a real system…
I moved nearly every mutation in two production Next.js apps onto Server Actions. Here is what got deleted, what useActionState fixed, and what still bites.
Go 1.25 added WaitGroup.Go and a stable testing/synctest. Here are the Go concurrency patterns I actually use in 2026, and the boilerplate I deleted.
I spent a month running local LLMs on my own GPU instead of an API. Here is where self-hosted models earned their place, and where…
I've shipped production services in both Rust and Go. Here's the decision framework I actually use, with code, honest trade-offs, and no benchmark wars.
I shipped the same marketing site in Next.js and then in Astro, then kept score. Here's when I actually reach for each, with bundle numbers…
Tailwind v4 ships container queries in core. Here's the rewrite that stopped my product cards from breaking in sidebars, and where I still avoid them.
Five Laravel queue habits I changed after years of failed jobs, with the maxExceptions, Horizon, and idempotency configs I now reach for on every new…
Six Docker habits I dropped from production in 2026, the ones I kept, and the small changes that cut image size, build time, and CVE…