Skip to content
findplate

DocsModules

Modules

Optional packages the cli switches on or off, grouped, with the profiles that pick them.

On this page

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

ProfilePicks
minimalno modules, just the core. Add some later with findplate add
standardstorage, ai, docs, rate-limit. The default with -y
everythingevery 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

ModuleProfilesWhat it adds
i18neverythingnext-intl in web and dashboard with English and French, a language switcher and hreflang in the sitemap
docsstandard, everythingapps/docs. A fumadocs site on Next with pages about your project
waitlisteverythingemail signup on the landing page, signups listed in the dashboard
roadmapeverythingpublic /roadmap from the repo's GitHub milestones
statuseverythingpublic /status with live checks of api, database, web and dashboard

Platform

ModuleProfilesWhat it adds
storagestandard, everythingpackages/storage. Uploads to any S3 API: Garage, R2, AWS, MinIO
aistandard, everythingpackages/ai. Vercel AI SDK with Groq, OpenAI or Anthropic
rate-limitstandard, everythingper route and ip limits on the api, in memory or on Upstash Redis
flagseverythingpackages/flags. Typed feature flags: code defaults, env overrides, rollouts edited in the dashboard
jobseverythingpackages/jobs. Background jobs and cron on your Postgres with pg-boss, optional separate worker
webhookseverythingpackages/webhooks. Signature checks for inbound webhooks: hmac, svix, secret header

Notifications

ModuleProfilesWhat it adds
notificationeverythingpackages/notification and apps/email. Email, Telegram and WhatsApp behind one notifier, branded react-email templates and a preview app

Analytics

ModuleProfilesWhat it adds
databuddyeverythingcookieless analytics in web and dashboard
umamicustom, needs a serverumami script in web and dashboard

Observability and secrets

ModuleProfilesWhat it adds
loggereverythingpackages/logger. Json logs with request ids and redaction in api, web and dashboard
openobservecustom, needs a serverotel traces from the api to OpenObserve
glitchtipcustom, needs a serversentry sdk in api, web and dashboard, pointed at GlitchTip
infisicalcustom, needs a serverpnpm dev:secrets runs dev with infisical
langfusecustom, needs a serverLangfuse 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.

ModuleNeeds
aione of Groq, OpenAI or Anthropic
notificationany of a Resend API key, a bot token from @BotFather and a Kapso API key; each channel turns on with its keys
databuddya Databuddy client id
umami, glitchtip, langfusea self-hosted server, plus a website id, DSN or key pair from it
openobserve, infisicala 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.