Packages overview
How @isotopekit/* packages are grouped and composed into the starter app.
IsotopeKit splits SaaS capabilities into versioned packages under four layers.
Layers
| Layer | Path | Role |
|---|---|---|
| Core | packages/core/* | Shared primitives — config, db, email, logger, types, UI |
| Domain | packages/domain/* | Product domains — auth, orgs, plans, billing, identity, user |
| Modules | packages/modules/* | Product surfaces — admin, agency, pricing, org UI, billing ops |
| Transport | packages/transport/* | HTTP API composition (Hono) |
Composition rules
- The app stays thin: routes, wiring, and product-specific UI.
- Domain packages own business rules and persistence boundaries.
- Modules assemble domain services into user-facing shells.
- Prefer package public APIs over reaching into another package's internals.
Versioning
Upgrade by semver. Treat packages as dependencies — not copy-paste source. When something is missing, extend a package (or add one) instead of forking the whole kit.