A module is a package plus the code and env keys that depend on it. Turn one off and the cli deletes its package, its env block and every line between the @findplate:<module> and @end markers in the template.
Everything that is not a module is the core, and is always generated.
Pick a profile with --profile minimal|standard|everything, list exact modules with --modules storage,ai,docs,email, or choose in the prompt. --modules wins over --profile.
Profiles
| Profile | Picks |
|---|---|
minimal | no modules, just the core. Add some later with findplate add |
standard | storage, ai, docs, rate-limit. The default with -y |
everything | every module that runs without a server of your own |
everything leaves out umami, openobserve, glitchtip, infisical and langfuse. They only work once you host the matching server, so switching them on by default would hand you code that does nothing. Add them one by one with --modules or in the checklist when you run the server.
Available
Each module has a page with what it adds, its env keys, how to remove it and how to swap it. The last column shows the profiles that include it.
Product pages
| Module | Profiles | What it adds |
|---|---|---|
i18n | everything | next-intl in web and dashboard with English and French, a language switcher and hreflang in the sitemap |
docs | standard, everything | apps/docs. A fumadocs site on Next with pages about your project |
waitlist | everything | email signup on the landing page, signups listed in the dashboard |
roadmap | everything | public /roadmap from the repo's GitHub milestones |
status | everything | public /status with live checks of api, database, web and dashboard |
Platform
| Module | Profiles | What it adds |
|---|---|---|
storage | standard, everything | packages/storage. Uploads to any S3 API: Garage, R2, AWS, MinIO |
ai | standard, everything | packages/ai. Vercel AI SDK with Groq, OpenAI or Anthropic |
rate-limit | standard, everything | per route and ip limits on the api, in memory or on Upstash Redis |
flags | everything | packages/flags. Typed feature flags: code defaults, env overrides, rollouts edited in the dashboard |
jobs | everything | packages/jobs. Background jobs and cron on your Postgres with pg-boss, optional separate worker |
webhooks | everything | packages/webhooks. Signature checks for inbound webhooks: hmac, svix, secret header |
Notifications
| Module | Profiles | What it adds |
|---|---|---|
notification | everything | packages/notification and apps/email. Email, Telegram and WhatsApp behind one notifier, branded react-email templates and a preview app |
Analytics
| Module | Profiles | What it adds |
|---|---|---|
databuddy | everything | cookieless analytics in web and dashboard |
umami | custom, needs a server | umami script in web and dashboard |
Observability and secrets
| Module | Profiles | What it adds |
|---|---|---|
logger | everything | packages/logger. Json logs with request ids and redaction in api, web and dashboard |
openobserve | custom, needs a server | otel traces from the api to OpenObserve |
glitchtip | custom, needs a server | sentry sdk in api, web and dashboard, pointed at GlitchTip |
infisical | custom, needs a server | pnpm dev:secrets runs dev with infisical |
langfuse | custom, needs a server | Langfuse traces for AI SDK calls (needs ai) |
What each module needs from you
The cli lists this before it asks for keys, and findplate doctor warns about any key still empty in .env, with the page to get it from. Every key is optional at creation time.
| Module | Needs |
|---|---|
ai | one of Groq, OpenAI or Anthropic |
notification | any of a Resend API key, a bot token from @BotFather and a Kapso API key; each channel turns on with its keys |
databuddy | a Databuddy client id |
umami, glitchtip, langfuse | a self-hosted server, plus a website id, DSN or key pair from it |
openobserve, infisical | a self-hosted server |
Dependencies between modules
langfuse requires ai, and notification requires webhooks. The cli turns required modules on for you and says so in the prompt, so --modules langfuse generates ai,langfuse.
The self-hosted ones also have a compose snippet each in self-hosted tools.