A real Postgres — and a real API — on top.

Connection string for psql, your ORM, or your IDE. CORS-enabled REST endpoint for your frontend. Token-gated by default, auto-expiring, and revivable from any saved seed.

$npx seedkit-cli new
Install the CLI →
Chapter 01Real Postgres

Postgres 16 on Neon, ready in seconds.

Each preview is a fresh Neon project — Postgres 16, EU regions by default, scale-to-zero between queries. Real connection string, real psql-compatible, no WASM, no SQLite-pretending-to-be-Postgres.

The serverless architecture is what makes the free tier sustainable: your DB sleeps when no one's querying it.

$ npx seedkit-cli new --prompt "saas crm"
Designing schema... ✓ 8 tables, 14 relations
Generating data... ✓ 14,820 rows
Provisioning Postgres... ✓ ready in 4.1s
 
Your database is live — expires in 60 min:
postgres://user:••••@ep-cool-leaf-7281.eu.neon.tech/seedkit_a3fd
Chapter 02Connection-string surface

Anything that speaks Postgres just works.

psql, Prisma, Drizzle, Kysely, your IDE's DB explorer, pg-promise, a Lambda — they all see a regular connection URL. Pass --env on seedkit new and we write DATABASE_URL=... into .env.local so next dev / bun dev picks it up.

Or skip the ephemeral DB entirely and pipe the same generated data into your existing local/staging Postgres with seedkit seed --url $DATABASE_URL.

$ npx seedkit-cli new --schema schema.sql --env
Wrote DATABASE_URL to .env.local
 
$ psql $DATABASE_URL
psql (16.3) — Type "help" for help.
 
neondb=> SELECT count(*) FROM users;
14820
 
neondb=> SELECT email FROM users LIMIT 1;
priya@aventar.co
Chapter 03JSON API

Every seed is also a REST endpoint.

The same dataset is exposed at seedkit.dev/api/mocks/<id>/<table> with limit/cursor pagination. Schema overview at /api/mocks/<id>; single row at /<pk>.

Useful when the backend isn't ready yet and the frontend needs something to fetch — same shape, same data, same seed.

HTTP surface
GET /api/mocks/<id> // schema overview
GET /api/mocks/<id>/<table> // ?limit=50&cursor=...
GET /api/mocks/<id>/<table>/<pk> // single row
$ curl https://seedkit.dev/api/mocks/a3fd/users?limit=2
HTTP/1.1 200 · application/json
{ "data": [{id: 1, name: "Priya M."}, ...],
  "next": "?cursor=eyJpZCI6Mn0" }
Chapter 04Auth & CORS

Token-gated by default. One toggle to share.

Every mock starts token-gated — bearer header, scoped per-mock, revocable, audit-logged. Flip a single toggle and the same URL works without auth, with CORS wide open. Use that for a Storybook demo, a customer call, or to show a PM what the data looks like.

Public mocks are marked clearly in the dashboard. We don't want you to forget you opened one up.

Two requests · same data, different posture
// token-gated (default)
$ curl -H "Authorization: Bearer msk_..." \
    https://seedkit.dev/api/mocks/a3fd/users
HTTP/1.1 200 · scoped to mock a3fd
 
// public · CORS *
$ curl https://seedkit.dev/api/mocks/a3fd/users
HTTP/1.1 200 · safe for client fetch
Chapter 05Lifecycle & restore

It cleans up after itself. The data sticks around.

A TTL is set at creation: 1 hour on Free, 24 hours on Pro, 7 days on Team (extendable any time). When it expires, the Neon project and connection string are deleted. The generation spec and SQL dump survive in your seed cache.

seedkit revive my-fixture provisions a fresh Neon project from the cached dump in seconds — identical data, new URL.

$ seedkit list / destroy / revive
$ seedkit list
NAME STATUS EXPIRES ID
crm-demo ready in 42m 8f2a…
de-finance ready in 3h 10m b04e…
 
$ seedkit destroy crm-demo
destroyed (dump kept for revive)
 
$ seedkit revive crm-demo
provisioned new DB from saved seed in 4.1s
seedkit dashboard with active ephemeral databases and usage

Fig. — Dashboard · active ephemeral databases & usage

Spin up your first DB.

60-minute TTL on the free tier. No card, no setup, no Docker. The connection string lands in your terminal.

$npx seedkit-cli new
Setup & install →

Your next database is a sentence away.

$npx seedkit-cli new
// or paste your schema at seedkit.dev

Free to start · No card required · MIT-licensed CLI