Vercel Postgres Alternatives After the Move to Neon
Vercel Postgres is no longer available: Vercel moved existing Vercel Postgres databases to Neon in December 2024 and now offers Postgres through Marketplace integrations. The main Vercel Postgres alternatives are Neon (the direct successor), Supabase, Prisma Postgres and AWS Aurora Postgres from the Marketplace, plus hosts you connect yourself, such as StitchDB. What matters for a Vercel app is how each one handles short-lived serverless connections, preview deployments and environment variables.
This guide explains each option from the point of view of a Next.js app deployed on Vercel, with prices as of November 2026.
#What happened to Vercel Postgres
From Vercel's Postgres docs:
- Vercel Postgres is no longer offered.
- Existing Vercel Postgres databases were moved to Neon automatically in December 2024.
- For new projects, Vercel points to Postgres integrations in the Marketplace, naming Neon, Prisma Postgres, Supabase and AWS Aurora Postgres among them. Marketplace integrations provision the database and inject credentials as environment variables.
If you used the @vercel/postgres package, your database is now a Neon database, and you can keep it or move it.
#What a Vercel app needs from Postgres
Before comparing vendors, list the requirements that are specific to serverless deployments:
- Many short connections. Every function instance may open its own connection. You need a pooler in transaction mode, or a driver that talks HTTP.
- Edge runtimes. Code on the Edge runtime can't open raw TCP sockets to Postgres. It needs an HTTP or WebSocket driver.
- Preview deployments. Each preview deploy ideally gets its own database, or at least its own schema state.
- Environment variables. The URL, keys and connection strings should land in the right Vercel environments automatically.
- Region. Your functions and your database should be close. Check which region your Vercel Functions run in and choose the database region next to it.
#The options
| Option | How it connects to Vercel | Edge/HTTP driver | Preview databases | Free tier (as of Nov 2026) |
|---|---|---|---|---|
| Neon | Marketplace integration | Yes (serverless driver) | Branches per preview | 100 CU-hours, 1 GB per project |
| Supabase | Marketplace integration | REST via supabase-js | Branching add-on | 500 MB, pauses after 1 week idle |
| Prisma Postgres | Marketplace integration | Via Prisma | Not covered here | See Prisma's site |
| AWS Aurora Postgres | Marketplace integration | Check AWS docs | Your own setup | AWS free plan credits |
| StitchDB | StitchDB's Vercel integration syncs env vars | Yes (stitchdb-js/sql) | Preview branches (Pro and up) | 2 projects, 500 MB DB |
#Neon
The natural continuation of Vercel Postgres. Neon's free plan includes 100 CU-hours and 1 GB per project; Launch costs $0.106 per CU-hour and $0.35 per GB-month. Its branching fits preview deployments well, and scale to zero keeps idle previews cheap. Neon now also lists Managed Better Auth, a Data API and Object Storage on its pricing page.
Pick Neon if you want the least change from Vercel Postgres and many cheap preview databases. Consider that cold starts after 5 minutes idle affect the first request, and the bill is usage-based.
#Supabase
Postgres plus Auth, Storage and Realtime. From Next.js you mostly use supabase-js over HTTPS, so connection limits are rarely a problem. Pro is from $25 a month; PITR and branching are add-ons.
Pick Supabase if you want a full backend with US regions close to Vercel's US functions.
#Prisma Postgres and AWS Aurora
Prisma Postgres suits teams already on Prisma ORM. Aurora suits teams who are already on AWS and want their data there. Both are in Vercel's Marketplace. We don't compare their pricing here; check each vendor's page.
#StitchDB
StitchDB isn't a Marketplace integration, but it has its own Vercel integration: you paste a Vercel access token, pick the team and project, and StitchDB writes and keeps in sync:
NEXT_PUBLIC_STITCHDB_URLandNEXT_PUBLIC_STITCHDB_ANON_KEYfor browser code,STITCHDB_URLandSTITCHDB_ANON_KEYfor server code,STITCHDB_SERVICE_ROLE_KEY(never prefixed, so it can't end up in the browser bundle), if you turn it on,DATABASE_URL(transaction pooling, port 6543) andDIRECT_URL(session mode, port 5432) for Prisma or Drizzle, if you turn it on.
When you rotate keys, linked projects get the new keys, applied on the next deployment.
For Edge runtime code there is an HTTP and WebSocket driver (serverless driver):
import { createSql } from 'stitchdb-js/sql'
export const runtime = 'edge'
const sql = createSql(process.env.STITCHDB_SQL_URL!)
export async function GET() {
const posts = await sql`select id, title from posts where published = ${true} order by id desc limit 10`
return Response.json(posts)
}The SQL key runs queries as the project owner and bypasses Row Level Security, so it stays in server code. For anything that runs per user, use the client with the anon key and let RLS decide:
import { createClient } from 'stitchdb-js'
export const stitchdb = createClient(
process.env.NEXT_PUBLIC_STITCHDB_URL!,
process.env.NEXT_PUBLIC_STITCHDB_ANON_KEY!,
)Pick StitchDB if your users are in Europe or you need EU data residency, and you want Auth, Storage and Realtime in the same project. Consider that it runs only in EU data centers (Germany and Finland), so functions in a US region add a transatlantic round trip per query; set your Vercel Functions to a European region. Preview branches are on paid plans only, and they are built from your migrations rather than instant data clones.
#Prisma and Drizzle on Vercel
Whichever host you choose, the ORM rule is the same: the app uses the pooled URL, migrations use the direct one.
# .env
DATABASE_URL="postgresql://p_<ref>_owner:<password>@<db-host>:6543/p_<ref>?sslmode=require"
DIRECT_URL="postgresql://p_<ref>_owner:<password>@<db-host>:5432/p_<ref>?sslmode=require"In transaction mode, plain SET, LISTEN and SQL-level PREPARE don't carry over between transactions; prepared statements sent by drivers do work. See Postgres connection pooling explained.
#Moving off the migrated Neon database
If your old Vercel Postgres now lives on Neon and you want to move, it is standard Postgres. Copy the unpooled connection string (the host without -pooler) and use pg_dump, or paste it into StitchDB's Import from Postgres, which runs a live copy when logical replication is enabled on the Neon project. Details: Move a Neon database to StitchDB.
#Match the host to your data pattern
Next.js apps tend to read data in one of three ways, and each favors a different setup.
Server Components and route handlers on Node.js. These run on the server and can use any Postgres driver or ORM. Use the pooled URL (transaction mode) so that many function instances share a small number of database connections. Every host on the list handles this well.
Edge runtime. Code here can't open TCP sockets, so you need an HTTP or WebSocket driver: @neondatabase/serverless on Neon, stitchdb-js/sql on StitchDB, or an HTTP API such as Supabase's REST endpoint. Keep driver keys server-side; they usually bypass Row Level Security.
Client Components that fetch directly. If the browser talks to the database API, authorization has to live in the database. That is the Supabase and StitchDB model: the anon key is public, and Row Level Security policies decide what each signed-in user sees. A Neon or Aurora setup usually puts your own API route in between.
Many apps mix all three. A practical default is: ORM with the pooled URL for server-side writes, the client library with RLS for user-facing reads, and an HTTP driver only where you really need the Edge runtime. For live updates, StitchDB and Supabase also have Realtime channels that respect your policies (Postgres changes), which saves running a separate websocket service next to Vercel.
#FAQ
#Is Vercel Postgres shut down?
Vercel Postgres is no longer available as a Vercel product. Existing databases were moved to Neon in December 2024, and new projects use Marketplace integrations.
#What replaced @vercel/postgres?
Neon's serverless driver (@neondatabase/serverless, HTTP or WebSockets) is the closest replacement. Any Postgres client works from Node.js functions; Edge functions need an HTTP or WebSocket driver.
#Which Vercel Postgres alternative is free?
Neon, Supabase and StitchDB all have free plans as of November 2026. Their idle rules differ: Neon suspends compute after 5 minutes, Supabase pauses projects after a week, StitchDB keeps the database online.
#Do I need a separate database for every preview deployment?
Not always. For schema changes, yes, or previews will break production. Neon branches and StitchDB preview branches give each pull request its own database. See database branching.
Building a Next.js app with users in Europe? Create a StitchDB project and link it to Vercel in a minute.