read these two pages in order.
satus is a CLI. It introspects your Postgres schema, reasons about foreign keys, and writes seed data that respects every relationship. If you've never run it, walk through these two pages—about ten minutes end-to-end—before anything else.
every flag, every exit code.
One page per surface. The reference is exhaustive and stable across the 0.1.x line—bookmark it.
Synopsis, environment variables, every subcommand (init, plan, generate), every flag, every exit code.
Copy-paste guides for the most common integrations: preview branches, GitHub Actions, E2E resets, Neon branching.
Honest, category-by-category comparison against the alternatives developers most often weigh.
Free runs the same CLI binary, capped at 25 rows × 5 tables. Pro lifts the caps and adds priority triage. Team is a waitlist. All three profiles ship on every tier. No token resale.
why it works the way it does.
Long-form posts that explain the design decisions—the FK-cycle planner, the safety guard, the one-transaction guarantee. Read these when you want to understand the why, not just the how.
The three guarantees satus makes—FK-cycle planning, the 10,000-row safety guard, and the single-transaction write—explained end to end.
Why a third of production Postgres schemas have foreign-key cycles, and how satus breaks them without giving up referential integrity.
one inbox. one repo.
Hit an error code? Start with troubleshooting—every exit code, every common failure mode, with the fix.
File bugs and feature requests against the public repo. For private questions—invoices, procurement, security—write to support@satus.sh. Humans answer. We aim to acknowledge within two business days.
Reporting a vulnerability? See our security policy for scope, the embargo timeline, and safe harbor.
from the blog.
other posts and release notes.
- pg_dump snapshots as test fixtures
- Fixtures vs generation, and when each wins
- What pg_dump doesn't tell you about your own schema
- The schema I couldn't reproduce
- Triggers I have loved and hated
- When UUIDs aren't the answer
- Seeding into a multi-tenant schema without leaking tenants
- Seeding Stripe-shaped data without Stripe
- The cycle-breaking heuristic we documented and never shipped
- The 1am deploy that only failed in prod
- Structured output from Claude without a JSON parser
- How the dry-run cost estimate is calculated
- Free tier, priced honestly
- Agent mode, postponed to v0.5
- v0.3.11: two claims the code did not support
- v0.3.10: the 24-hour license grace is now real
- v0.3.9: the safety feature you couldn't turn off
- v0.3.8: the safety guard we had already written about
- v0.3.7: five bugs, four of them silent
- v0.3.6: one fix, for a footgun we stepped on ourselves
- v0.3.5: automated npm publishing, two correctness fixes