Backend & Data
Databases, storage, ORMs, CMS and i18n for the data layer.
The data layer: where state lives, how I model it, and the editorial and localization plumbing that sits on top.
Overview
I pick the backend by how fast I need to move and how much I care about owning SQL. When I want a real Postgres and want it now, I reach for a serverless Postgres or a BaaS. When the app is realtime-first I'll consider a reactive backend instead. On top of the database I add an ORM for schema and migrations, a headless CMS when content is editorial, and i18n when the app ships in more than one language.
Tools
Supabase
Postgres BaaS — auth-adjacent, realtime, storage. My default when I want SQL fast.
Firebase
Google's BaaS. I reach for it for quick realtime or mobile-first prototypes.
Neon
Serverless Postgres with branching — pairs naturally with Vercel preview deploys.
Convex
Reactive backend with a typed data layer, for realtime-first apps.
Vercel Blob
Simple file/object storage on Vercel, close to the rest of the deploy.
Prisma
Type-safe ORM when I want a real schema plus migrations.
Sanity
Headless CMS for structured editorial content with a good editing UX.
Next Intl
i18n built for the Next.js App Router.
My pick
Supabase when I want batteries-included Postgres with auth and storage in one place; Neon when I just want the database and want branching that mirrors my Vercel previews. Prisma sits on top either way once the schema matters. Convex is my pick only when the whole app is reactive by nature — otherwise plain Postgres wins for being boring and well-understood.