Skip to main content
Back to Insights

Software Engineering

Why We Chose Next.js and Supabase

June 27, 20262 min read

The default, not a one-off choice

Next.js, TypeScript, Tailwind CSS, Supabase, and Vercel are the default stack across every product and client engagement we run, unless a specific architecture doc says otherwise. That's a company-level standing decision, not something re-decided per project -- which means the reasoning behind it has to hold up across very different kinds of work, not just one app.

What Next.js actually buys you

The App Router's server/client component split means a marketing page can ship close to zero JavaScript while an admin dashboard a few routes over can be fully interactive -- without two separate frontend stacks. For a small team, that's the practical win: one mental model, one deployment target, one set of conventions, covering both a public site that needs to be fast and indexable and an authenticated app that needs to be interactive.

The cost is real too: the App Router's caching model (what's static, what revalidates, what's dynamic) has a learning curve, and getting it wrong silently serves stale data instead of erroring loudly. That's a tradeoff we accept deliberately, not one we pretend doesn't exist.

What Supabase actually buys you

Postgres, authentication, storage, and row-level security in one managed service means a small team doesn't maintain four separate vendors to get a working backend. The part that matters most in practice is RLS: security rules live in the database itself, enforced on every query regardless of which client calls it -- not re-implemented in every API route and inevitably forgotten in one of them.

The cost: RLS policies are real code, with real correctness bugs and real performance characteristics. It's a genuine skill to write them well, not a checkbox you tick once. We've written about what that actually costs in more detail.

Why this matters more for a small team than a large one

A large engineering org can afford specialized infrastructure for each problem. A small team can't -- every additional moving part is something one person has to understand fully, not delegate to a specialist. The Next.js/Supabase combination isn't the most powerful possible stack for any single problem; it's the stack that lets one team move across very different problems (a marketing site, an admin CMS, a SaaS product) without re-learning the fundamentals each time.

That's the actual reasoning, not a vendor endorsement -- see our Services for what gets built on top of it.