Vercel AI SDK v5: what moving off raw OpenAI actually bought me
I migrated a Next.js chat endpoint from the raw OpenAI SDK to Vercel AI SDK v5. Here's the before/after code, where it wins, and where…
I migrated a Next.js chat endpoint from the raw OpenAI SDK to Vercel AI SDK v5. Here's the before/after code, where it wins, and where…
Go generics shipped in 1.18 and I ignored them for a year. Here are the three patterns I now use in production, plus one I…
After designing and consuming dozens of REST APIs, these are the rules that resolve the most arguments and save the most debugging time — with…
The Next.js App Router and Pages Router aren't just different file structures — they're different mental models. Here's what changes and what trips you up…
Why LLMs fail at spatial tasks isn't always about model size. The input format matters more than you'd expect, and here's what to do about…
Last updated: June 2026. TL;DR AirLLM technically runs 70B-parameter language models on 4GB of RAM through layer-by-layer inference and disk offloading. It does work, but…
I've shipped both monorepo and polyrepo setups. Here are the specific team traits and constraints that actually decide which one wins for your codebase.
Laravel 12 shipped with new starter kits, a cleaner skeleton, and PHP 8.2 minimum. Here's what actually changed and why the slim release is a…
New numbers on iterative LLM self-repair: where extra tries earn their keep, where they quietly waste tokens, and the retry loop I'll actually defend.
A practical tour of React 19's useOptimistic hook with before/after code for a like button, a task list, and the gotchas I hit in production.