A great way to get started with Spindle is to add a new domain.
What to do
- Copy
domains/_template/ to domains/<your-domain>/
- Define the entities, attributes, and relationships in the
.spindle.json schema
- Add calibration sources (where the distribution numbers come from — public stats, industry reports, etc.)
- Add a smoke test that generates ~1,000 rows and asserts FK integrity
- Add a one-paragraph entry to
docs/domains/
Suggested domains
We'd love a small, single-purpose domain to make Spindle more approachable:
- Bookstore — books, authors, customers, orders, reviews
- Events — venues, events, attendees, tickets, sessions
- Library — books, members, loans, returns, holds
- Conference — sessions, speakers, attendees, ratings
- Gym — members, classes, instructors, attendance, equipment
Keep it 5–10 tables max. Statistical realism is the goal — don't use Faker-style randomness.
Why this is a good first issue
/domains/_template/ is fully documented and ready to copy
- Existing domains in
domains/retail/, domains/financial/, etc. are good reference
- No deep knowledge of the generation engine required — you're only defining the schema and distributions
- Self-contained: no breaking changes to existing code
Drop a comment if you start one so we don't collide.
A great way to get started with Spindle is to add a new domain.
What to do
domains/_template/todomains/<your-domain>/.spindle.jsonschemadocs/domains/Suggested domains
We'd love a small, single-purpose domain to make Spindle more approachable:
Keep it 5–10 tables max. Statistical realism is the goal — don't use Faker-style randomness.
Why this is a good first issue
/domains/_template/is fully documented and ready to copydomains/retail/,domains/financial/, etc. are good referenceDrop a comment if you start one so we don't collide.