DB Providers
Hosted database providers pre-configured in fusion-stack — Neon, Supabase, and PlanetScale.
New — Available as of the latest
create-fusion-stackrelease.
Overview
After selecting your database and ORM, you can optionally choose a hosted provider. Each provider adds its serverless driver and pre-fills environment variable placeholders in .env.example.
Neon
Database: PostgreSQL
Best for: Serverless and edge deployments — instant cold starts, branching per PR.
Neon's serverless driver replaces the standard pg pool with an HTTP-based connection that works in edge runtimes without WebSockets.
// src/db/index.ts (Neon + Drizzle)
import { drizzle } from 'drizzle-orm/neon-http'
import { neon } from '@neondatabase/serverless'
import * as schema from './schema'
const sql = neon(process.env.DATABASE_URL!)
export const db = drizzle(sql, { schema })Environment variables:
DATABASE_URL=postgresql://<user>:<password>@<host>.neon.tech/<db>?sslmode=requireCreate a project at console.neon.tech — the free tier includes 0.5 GB storage and unlimited branches.
Supabase
Database: PostgreSQL
Best for: When you also need auth, object storage, realtime subscriptions, or a built-in dashboard.
Supabase exposes your Postgres database via two connection strings:
DATABASE_URL— direct connection for migrations and Prisma/DrizzleNEXT_PUBLIC_SUPABASE_URL+NEXT_PUBLIC_SUPABASE_ANON_KEY— for the Supabase JS client
// src/lib/supabase.ts
import { createClient } from '@supabase/supabase-js'
export const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)Environment variables:
NEXT_PUBLIC_SUPABASE_URL=https://<project>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
DATABASE_URL=postgresql://postgres:<password>@<host>:5432/postgresCreate a project at supabase.com/dashboard.
PlanetScale
Database: MySQL
Best for: MySQL workloads that need schema branching, zero-downtime deployments, and connection pooling at the edge.
PlanetScale's @planetscale/database driver uses HTTP — no persistent connections, works on Vercel Edge, Cloudflare Workers, and similar runtimes.
// src/db/index.ts (PlanetScale + Drizzle)
import { drizzle } from 'drizzle-orm/planetscale-serverless'
import { connect } from '@planetscale/database'
import * as schema from './schema'
const connection = connect({ url: process.env.DATABASE_URL! })
export const db = drizzle(connection, { schema })Environment variables:
DATABASE_URL=mysql://<user>:<password>@<host>.connect.psdb.cloud/<db>?ssl={"rejectUnauthorized":true}Create a database at app.planetscale.com.
Compatibility
| Provider | Compatible DB | Driver |
|---|---|---|
| Neon | PostgreSQL | @neondatabase/serverless |
| Supabase | PostgreSQL | @supabase/supabase-js |
| PlanetScale | MySQL | @planetscale/database |