Choose the product shape first, then enable the capabilities that support its first release. Codapult projects remain full source, so a module can be extended directly when it becomes part of the product rather than treated as a permanent black box.
Start with a profile
| Product shape | Starting profile | Add first |
|---|---|---|
| General SaaS | saas | Auth, billing, dashboard, settings, and the standard foundation |
| AI product | ai-saas | AI gateway, chat, agents, batch, playground, and RAG |
| B2B product | b2b-saas | Organizations, teams, SSO, branding, audit, reports, and webhooks |
| Marketing site | marketing | Public pages, content, and the marketing shell without the application modules |
Apply one with:
npx @codapult/cli setup --preset ai-saas
The setup wizard also lets you choose providers and remove unused module groups. It makes source changes; review the diff before installing, pushing the schema, or starting feature work.
A useful selection rule
- Enable a module when it is part of the first product workflow or its data model is a foundation for that workflow.
- Leave optional surfaces out when they would add navigation, configuration, or operational work without serving the first release.
- Keep production infrastructure adapters separate from local conveniences: use local storage and memory jobs for development, but plan S3/R2 and BullMQ/Redis for a multi-instance deployment.
- Keep supplementary capabilities separate from the first release when they are not part of the product's core workflow. Add them when the capability has a clear place in the product experience.
Review dependencies before removing anything
Some modules share foundations. Teams, SSO, SCIM, organization-scoped data, audit, and branding are connected product surfaces. AI chat, agents, batch, playground, RAG, embeddings, and vector storage are related AI capabilities. Removing a foundation can remove routes, schema blocks, navigation, tests, and environment variables together.
After setup:
npx @codapult/cli doctor
npx @codapult/cli env check
npx @codapult/cli db schema-diff
Then review .env.local, src/config/env.ts, the schema, and the generated diff. For the exact current provider choices, use the provider matrix.