Skip to content

Add a small new domain (e.g. bookstore or events) #1

@sqllocks

Description

@sqllocks

A great way to get started with Spindle is to add a new domain.

What to do

  1. Copy domains/_template/ to domains/<your-domain>/
  2. Define the entities, attributes, and relationships in the .spindle.json schema
  3. Add calibration sources (where the distribution numbers come from — public stats, industry reports, etc.)
  4. Add a smoke test that generates ~1,000 rows and asserts FK integrity
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions