Database
Every verified stack backed by Postgres (Neon).
Postgres on Neon via Drizzle ORM and the postgres-js driver.
Why Postgres (Neon), specifically
note
prepare: false is mandatory — Neon's pooled endpoint is PgBouncer in transaction mode, where server-side prepared statements break across the pool.
note
Drizzle is paired here (not Prisma): Prisma's prepared-statement reliance is incompatible with transaction-mode pooling.
What Postgres (Neon) pulls in
bun add drizzle-orm postgresDATABASE_URLNeon pooled (-pooler) connection string120 verified stacks
✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk✓
Next.js 16 (App Router) · Better Auth✓
Next.js 16 (App Router) · Clerk✓
Nuxt 4 · Better Auth✓
Nuxt 4 · Clerk✓
React Router v8 · Better Auth✓
React Router v8 · Clerk