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
- seedkit new — full reference for the command you just ran.
- Authentication — needed for steps 3 and 4 above.
- Seed cache — how
--from-cachedecides what to replay.