Database•Updated Dec 2024•6 min read

PlanetScale vs Neon

Two serverless database companies, two different approaches. One killed their free tier. Choose wisely.

🧊'nice's Pick

Neon

PlanetScale killed their free tier and lost a lot of goodwill. Neon is Postgres (better ecosystem), has a generous free tier, and branching that actually works. Unless you need MySQL specifically, Neon wins.

The Serverless Database Wars

Traditional databases don't scale to zero. You pay even when nobody's using your app. Serverless databases fix this - spin up on demand, scale down to nothing.

PlanetScale brought MySQL into the serverless world with Vitess. Neon did the same for Postgres. Both promise branching, both promise scale.

Quick Comparison

FactorNeonPlanetScale
DatabasePostgreSQLMySQL (Vitess)
Free TierYes (generous)No (removed 2024)
BranchingCopy-on-write (fast)Full copy
Scale to ZeroYesYes (paid only)
Cold Start~500ms~300ms
Starting PriceFree / $19/mo$39/mo
Foreign KeysYes (it's Postgres)No (Vitess limitation)
ORM SupportAll Postgres ORMsMySQL ORMs + Drizzle

The Free Tier Fiasco

In March 2024, PlanetScale killed their free tier. Overnight, thousands of side projects had 30 days to migrate or pay $39/month.

The dev community did not take this well. Many migrated to Neon, which still offers a generous free tier: 0.5GB storage, 190 compute hours, branching included.

"PlanetScale's free tier removal was a business decision I understand but can't recommend. For hobby projects, Neon is now the obvious choice."

Postgres vs MySQL

This is the real question. PlanetScale is MySQL (specifically Vitess). Neon is Postgres.

  • Postgres advantages: Better JSON support, arrays, full-text search, more data types, larger ecosystem of extensions.
  • MySQL advantages: Faster for simple queries, more predictable performance, easier replication.

For modern apps, Postgres usually wins. The ecosystem is richer, Prisma and Drizzle work great with it, and you get foreign keys without workarounds.

The Branching Experience

Both offer database branching - create a copy of your database for testing or development. Git-like workflow for databases.

Neon uses copy-on-write: branches are instant and only store changed data. PlanetScale copies the full database. For large databases, Neon branching is much faster and cheaper.

PlanetScale has better branch management UI and safer production workflows. But for most teams, Neon's approach is more practical.

The Foreign Key Thing

PlanetScale is built on Vitess, which doesn't support foreign key constraints at the database level. You can define them in your ORM, but the database won't enforce them.

For some apps, this is fine. For apps that need data integrity guarantees, it's a dealbreaker. Neon is just Postgres - full foreign key support, no workarounds.

The Verdict

Use Neon if: You want Postgres, need a free tier, care about foreign keys, or want instant branching. This is most new projects.

Use PlanetScale if: You're already on MySQL, need Vitess-level horizontal scaling, or your company is paying and prefers the PlanetScale workflow.

Consider Supabase if: You want Postgres plus auth, storage, and realtime. It's a bigger package but might be all you need.

🧊
The Bottom Line
Neon for new projects

Postgres is the better database for most apps. Neon has a free tier. Branching is instant. PlanetScale shot themselves in the foot.

Related Comparisons