For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /docs/modules.md (or send Accept: text/markdown).
Module overview
Small contracts that make the infrastructure easier to understand and reuse.
Read the foundation in plain language
Authentication checks who signed in. A session remembers that sign-in. A workspace keeps a person's or team's records together. Billing records payments; an entitlement grants access to a feature. A job runs work outside a page request. Transactional email sends messages triggered by app actions, such as sign-in codes, rather than marketing outreach.
An adapter connects one service to the same app interface. Local or fake adapters let you explore without provider accounts. When you need a real service, select one provider and follow its setup guide; you do not need to configure every module at once. Begin with database and sign-in, then enable payments, AI and background work only as your product needs them.
Compose the capabilities you need
The shared packages provide identity, workspace persistence, billing, AI, background jobs, transactional email, and observability. Applications compose these modules; product domain logic stays outside Starter Core.
Prefer the existing contract when integrating a feature. If it cannot describe the behavior you need, make that limitation explicit before expanding it.
Follow ownership through the flow
A session identifies a user. A workspace scopes their records. Entitlements authorize capabilities. A background task carries trusted context into execution. Usage and audit records let the application account for the work afterward.
Use local adapters for deterministic checks
Fake/local adapters support repeatable tests without paid provider requests. Real providers are verified through a separately configured smoke path. An adapter test is evidence about the contract, not proof of real delivery or persistence.