This article contains affiliate links. We may earn a commission if you purchase through them — at no extra cost to you.
You’re building a Next.js app and you need a serverless-friendly database. Three names keep coming up: Supabase, PlanetScale, and Neon. You’ve got 47 tabs open, you’ve read three Reddit threads that contradict each other, and you still don’t know which one to pick. I’ve been there — and I’ve actually migrated between all three across different projects, so let me just tell you what I found.
The short version: PlanetScale’s 2024 pricing implosion forced everyone to re-evaluate, Neon’s branching feature is genuinely clever, and Supabase is doing more than just a database at this point. The right choice depends on what you’re actually building — but I’ll give you a clear recommendation at the end.
TL;DR — Quick Verdict
- Supabase: Best all-in-one pick for most Next.js projects. Postgres, auth, storage, edge functions — all in one place. Free tier is generous. Some rough edges at scale.
- PlanetScale: Still solid MySQL with great branching and an excellent DX, but the free tier is gone and pricing is now a real conversation you need to have before committing.
- Neon: Best pure Postgres experience for serverless. Branching for databases is a killer feature for dev workflows. Free tier is back (and good). My personal pick for greenfield Next.js projects right now.
Why This Decision Got Complicated: The PlanetScale Pricing Shock
If you’ve been following the serverless DB space, you know what happened. In early 2024, PlanetScale killed its free tier and restructured pricing in a way that blindsided thousands of developers with hobby projects and early-stage startups. Projects that were comfortably on the free tier suddenly faced a $39/month minimum. That’s not catastrophic for a funded startup, but it’s a real number for a side project or an app still looking for product-market fit.
This triggered a mass migration event across the community — similar to what happened when Heroku axed its free tier (I wrote about a similar migration nightmare migrating 14 projects off Heroku in one weekend, and the lessons apply here). Developers started seriously evaluating Supabase and Neon for the first time, and what they found was genuinely good alternatives — not just consolation prizes.
The Next.js-Specific Requirements
Before diving into each tool, let’s establish what actually matters when you’re using a database with Next.js specifically. This isn’t a generic database comparison — the Next.js qualifier changes things significantly:
- Edge runtime compatibility: Next.js Middleware and Edge API Routes run in a V8 isolate, not Node.js. Your database client needs to handle this.
- Connection pooling: Serverless functions spin up and down constantly. Traditional persistent connections will exhaust your database’s connection limit fast.
- Cold start latency: A database that takes 2 seconds to wake up from sleep will ruin your Core Web Vitals.
- SDK/ORM compatibility: Does it work with Prisma? Drizzle? The official client? How much boilerplate are you writing?
- Preview environment support: If you’re on Vercel, you probably want database branches per preview deployment.
With that framework in mind, let’s go through each one.
Get the dev tool stack guide
A weekly breakdown of the tools worth your time — and the ones that aren’t. Join 500+ developers.
No spam. Unsubscribe anytime.
Supabase: The Swiss Army Knife
Supabase positions itself as the open-source Firebase alternative, and honestly, that’s underselling it. You get a full Postgres database, row-level security, real-time subscriptions, auth (including social OAuth and magic links), file storage, and edge functions — all wired together with a pretty good dashboard.
How it performs for Next.js
Supabase uses Postgres under the hood, which means you get PgBouncer for connection pooling out of the box. This is critical for serverless — without it, a spike in Next.js serverless function invocations will eat your connection limit alive. They also offer a Supabase client library that works in the browser, server, and edge environments, though the edge support has had some rough patches historically.
The @supabase/ssr package is now the recommended way to handle auth in Next.js App Router apps, and it’s actually well-designed. Cookie-based sessions, server component support, middleware-friendly. It took them a few iterations to get here, but the current implementation is solid.
One real-world scenario: I used Supabase on a SaaS dashboard with Next.js App Router. Server Components queried the database directly via the Supabase client, Middleware handled auth token refresh, and real-time subscriptions powered a live activity feed. The integration was smoother than I expected — the main friction was wrapping my head around RLS policies, which have a learning curve but are genuinely powerful once you get them.
The honest downsides
Supabase’s free tier pauses your database after 1 week of inactivity. For a production app, you’re on the Pro plan at $25/month. That’s reasonable, but the pause behavior has bitten a lot of developers who forgot about a demo project. The dashboard can feel cluttered as the product has expanded. And if you’re a pure SQL/Postgres person, the abstraction layers (especially their generated API) can feel like they’re getting in your way rather than helping.
Pricing
- Free: 500MB database, 2 projects, pauses after inactivity
- Pro: $25/month — 8GB database, no pausing, daily backups
- Team: $599/month — SSO, priority support, advanced roles
PlanetScale: The MySQL Powerhouse With a Pricing Problem
PlanetScale is built on Vitess — the same technology that powers YouTube’s MySQL infrastructure. The database branching model (create a branch, make schema changes, open a deploy request, merge) is genuinely excellent and maps perfectly to a Git-based workflow. The developer experience is polished. The performance is real.
How it performs for Next.js
PlanetScale’s serverless driver (@planetscale/database) works in edge environments and doesn’t require a persistent TCP connection — it communicates over HTTP. This is a big deal for Next.js Edge Middleware. Cold starts are minimal. The Prisma integration is well-documented and there’s a Drizzle adapter too.
The schema branching workflow is where PlanetScale genuinely shines for Next.js development. You can have a main branch for production, a dev branch for staging, and feature branches for each PR — and your Vercel preview deployments can point to the right branch. It’s a legitimately great workflow.
The honest downsides
It’s MySQL. If you need Postgres-specific features (JSONB operators, full-text search, PostGIS, pgvector for AI features), you’re out of luck. Foreign keys are also not enforced at the database level by default (Vitess limitation), which bothers some developers more than others. And the pricing — the free tier is gone. The Hobby plan starts at $39/month, which is a non-trivial commitment for an unproven project.
There’s also no built-in auth, storage, or any of the ancillary services Supabase offers. PlanetScale is a database company. You’ll need to bring your own auth (NextAuth, Clerk, Auth0) and your own storage (S3, Cloudflare R2).
Pricing
- Free: Gone. (This is the whole story.)
- Hobby: $39/month — 10GB storage, 1 production branch
- Scaler: $79/month — 25GB storage, 2 production branches
- Scaler Pro: From $299/month — dedicated resources
Neon: The Serverless Postgres Specialist
Neon is purpose-built for serverless Postgres. They’ve re-architected Postgres from the ground up to separate compute from storage, which enables some genuinely novel features — most notably, database branching and auto-suspend/resume with near-zero cold starts.
How it performs for Next.js
Neon’s serverless driver (@neondatabase/serverless) uses WebSockets and HTTP to communicate with Postgres, making it compatible with edge environments including Next.js Middleware and Cloudflare Workers. The connection pooling is handled via PgBouncer on their end, so you don’t have to think about it.
The branching feature deserves special attention for Next.js developers. Neon lets you create a database branch in seconds — it’s essentially a copy-on-write snapshot of your data. The workflow this enables: your main branch is production, your dev branch is staging, and every Vercel preview deployment can spin up its own ephemeral database branch with a copy of your production schema (and optionally, data). When the PR is closed, the branch is deleted. This is the kind of workflow that used to require a lot of DevOps infrastructure to pull off, and Neon makes it almost trivial.
I tested Neon on a Next.js 14 app with App Router and Drizzle ORM. The setup was genuinely fast — Neon’s connection string drops straight into Drizzle’s config, migrations work as expected, and the Vercel integration handles environment variables per deployment automatically. Cold starts on the free tier were occasionally noticeable (a second or two after periods of inactivity), but on paid plans with auto-suspend disabled, it’s not a real issue.
The honest downsides
Neon is newer than the others, and it shows in places. The ecosystem around it is smaller — fewer tutorials, fewer Stack Overflow answers, less community knowledge. Some Postgres extensions aren’t supported yet. The auto-suspend behavior (free tier databases sleep after 5 minutes of inactivity) can cause latency spikes that confuse users if you’re not careful about it. And like PlanetScale, it’s just a database — no auth, no storage bundled in.
Pricing
- Free: 0.5GB storage, 1 project, 10 branches, auto-suspend after 5 min
- Launch: $19/month — 10GB storage, always-on compute option
- Scale: $69/month — 50GB storage, more compute, PITR
- Business: $700/month — dedicated resources, SLA
Head-to-Head Comparison
| Feature | Supabase | PlanetScale | Neon |
|---|---|---|---|
| Database engine | Postgres | MySQL (Vitess) | Postgres |
| Free tier | ✅ (pauses) | ❌ | ✅ (auto-suspend) |
| Paid entry price | $25/mo | $39/mo | $19/mo |
| Edge runtime support | ✅ (improving) | ✅ (excellent) | ✅ (excellent) |
| Connection pooling | ✅ PgBouncer | ✅ built-in | ✅ PgBouncer |
| Database branching | ❌ | ✅ | ✅ (best-in-class) |
| Auth built-in | ✅ | ❌ | ❌ |
| Storage built-in | ✅ | ❌ | ❌ |
| Prisma support | ✅ | ✅ | ✅ |
| Drizzle support | ✅ | ✅ | ✅ |
| pgvector / AI features | ✅ | ❌ | ✅ |
| Vercel integration | ✅ | ✅ | ✅ (native) |
| Open source | ✅ | Partial | ✅ |
Use Case Recommendations
Use Supabase if:
- You want one platform for database + auth + storage + real-time, and you don’t want to stitch together three different services
- You’re building something with complex authorization logic — RLS is genuinely powerful
- You’re adding AI features and need pgvector for embeddings
- You want the most complete “backend as a service” experience without going full Firebase
- Your team is comfortable with Postgres
Use PlanetScale if:
- You’re already on MySQL and a migration to Postgres would be painful
- You need Vitess-level horizontal scaling and you actually understand what that means for your traffic
- The schema branching workflow is non-negotiable for your team’s process and you’re okay paying for it
- You have a funded project where $39+/month is not a meaningful constraint
Use Neon if:
- You want pure serverless Postgres with the best cold-start performance
- You’re on Vercel and want database branches per preview deployment — this workflow is a genuine productivity multiplier
- You’re starting a new project and want the lowest entry cost with room to scale
- You’re building with Drizzle ORM (the Neon + Drizzle combo has excellent community momentum right now)
- You need pgvector for AI/embedding features alongside your relational data
What About Hosting the Rest of Your Stack?
Your database choice doesn’t exist in a vacuum. If you’re deploying Next.js somewhere other than Vercel, the database integration story changes slightly. For self-hosted or VPS deployments, DigitalOcean is worth a look — their App Platform handles Next.js well, and all three databases above work fine with it. We did a deeper dive on VPS options in our best cloud hosting for side projects guide if you’re evaluating the full stack.
The AI Feature Angle
One thing that’s increasingly relevant in 2026: if your Next.js app has any AI features — semantic search, RAG pipelines, recommendation engines — you need pgvector support. Both Supabase and Neon support pgvector natively. PlanetScale does not, because it’s MySQL. This alone eliminates PlanetScale for a growing category of apps. If you’re building AI-adjacent features and want to understand the broader tooling landscape, our best AI tools for developers roundup covers what’s worth your attention.
My Actual Recommendation
Here’s where I land after using all three in production:
For most new Next.js projects in 2026, start with Neon. The free tier is genuinely usable, the $19/month Launch plan is the most affordable entry point to a production-ready serverless database, the Vercel integration is native and seamless, and the branching workflow will make your development process better. It’s pure Postgres, so every library, extension, and tutorial that works with Postgres works with Neon. There’s no MySQL gotcha, no foreign key caveat, no platform-specific quirk to document for new team members.
If you need auth, storage, and real-time baked in, pick Supabase. The $25/month Pro plan is competitive when you factor in everything you’re getting. You’d spend more than that on Clerk + S3 + a separate real-time service. The platform has matured significantly and the Next.js App Router integration is now genuinely good.
PlanetScale is a harder sell in 2026. The DX is excellent, the performance is real, but the MySQL limitation and the elimination of the free tier mean you need a specific reason to choose it over the Postgres alternatives. If your team is MySQL-native and you need Vitess-scale horizontal sharding, it’s the right tool. For everyone else, the value proposition has weakened.
The serverless database space moved fast in the last 18 months, and the developers who got caught flat-footed by PlanetScale’s pricing changes are now better informed. Whichever you pick, make sure you understand the pricing model before you’re three months into a project — the migration cost is real, as anyone who’s done it can tell you.
Get the dev tool stack guide
A weekly breakdown of the tools worth your time — and the ones that aren’t. Join 500+ developers.
No spam. Unsubscribe anytime.