DocsGetting started

Quickstart

From zero to a real Postgres URL with realistic data — in about 60 seconds.


You'll need: a terminal, Node.js 18+, and a free seedkit account if you want the ephemeral DB at the end. The first three steps work without an account.

1. Generate

npx seedkit-cli new --prompt "a small SaaS CRM"

Output:

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

That URL is a real Postgres 16 instance on Neon. You can psql it, point your ORM at it, query it from your IDE.

2. Connect

psql $(seedkit url)

Or write the URL into .env.local for next dev / bun dev to pick up:

npx seedkit-cli new --prompt "a small SaaS CRM" --env

The CLI will write DATABASE_URL=... into your project's .env.local (creating the file if needed). Existing values for other keys are preserved.

3. Lock the seed

If you want the same data tomorrow, give it a name:

npx seedkit-cli new --prompt "a small SaaS CRM" --seed crm-demo --env

The generated SQL is cached server-side under crm-demo. The next time anyone runs:

npx seedkit-cli seed --url $DATABASE_URL --seed crm-demo --from-cache

…they get byte-identical inserts in seconds — no LLM call.

4. (Optional) Wire it into CI

- name: Seed test database
  run: |
    npx seedkit-cli seed \
      --url $DATABASE_URL \
      --schema schema.sql \
      --seed crm-demo --from-cache --reset
  env:
    SEEDKIT_TOKEN: ${{ secrets.SEEDKIT_TOKEN }}

Cache hit → no LLM cost, ~1.5s for ~15k rows.

Next