Product Modules

Start from the owning feature folder when you change, extend, document, or remove product behavior.

On this page

Module ownership

ModulePrimary routesOwns
account/accountProfile, avatar, notification preferences, password change, session revoke, and account deletion.
analytics/analytics/platform, /analytics/revenuePlatform metrics, revenue dashboards, usage signals, credit analytics, and range APIs.
billing/billing, /activity, /plans, /billing/history, /billing/setup, /billing/customersCatalog, provider runtime, checkout, plan selection, current activity, portal, customer billing history, finance projections, and webhooks.
branding/admin/brandingLogo, favicon, appearance mode, public branding reads, and brand asset uploads.
compliance/admin/security, /admin/audit-logSecurity overview, audit log, RBAC matrix, redaction, and retention cleanup.
contact/contact, /communications/inbox, /api/contactPublic contact API, signed-in contact form, admin inbox, rate limit, and lead notification queueing.
customers/customers, /customers/[providerCustomerId], /billing/customersCustomer list, provider customer detail, customer search, and billing relationships.
docs/docsReplaceable in-product customer help center with typed starter content and hash-based section navigation.
notifications/communications/outbound, /communications/outbound/settings, /communications/outbound/templatesEvent registry, templates, preferences, outbox, delivery logs, in-app notifications, and Resend webhooks.
cms/content/*, /blog/*, /changelog/*, /case-studies/*, /team/*, legal pagesCMS content, Editor.js canvas, public rendering, SEO, scheduling, revisions, and local recovery.
privacyGlobal consent banner and marketing footer preferencesVersioned cookie choice, preference management, and first-party attribution-cookie enforcement.
settings/settings, /settings/website, /settings/seoWebsite settings, SEO settings, localization, billing settings, waitlist settings, defaults, and normalization.
team/admin/team, /team, /team/[id]Staff invites, custom roles, member access, permission mapping, and public team directory.
waitlist/waitlist, /admin/waitlist, /api/waitlist/*Launch modes, public signup, confirmation, admin operations, CSV export, and conversion tracking.

How to decide what becomes your product

ModuleKeep or adapt whenFirst customizationHigh-risk boundary
accountCustomers manage their own identity, preferences, sessions, or deletion.Decide which profile fields and account controls your product exposes.Identity ownership and irreversible deletion.
analyticsOperators need product, revenue, usage, or credit signals.Define decisions and metric semantics before changing charts.Sensitive-data masking and unbounded aggregation.
billingThe product charges through Stripe or Lemon Squeezy.Choose provider, enabled models, and catalog; then prove test checkout and projection.Money, signatures, duplicate events, refunds, and entitlements.
brandingOwners change identity without deploying code.Replace code defaults, then configure runtime assets and appearance.Public uploads, metadata, and cross-surface consistency.
cmsMarketing or product teams publish structured content.Choose content kinds, workflow, validation, and public routes.Sanitized rendering, publication state, and scheduled work.
complianceOperators need audit, RBAC visibility, security posture, or retention controls.Define retention and access policies that match your legal obligations.Admin authorization, personal data, and destructive cleanup.
contactCustomers or leads need an owned support/contact path.Set recipient ownership, form fields, spam controls, and response workflow.Public abuse, personal data, and notification side effects.
customersOperators support customer and billing relationships.Choose visible fields, filters, masks, and support actions.Personal/financial data and growing queries.
docsYour users need an in-product help center.Replace all six starter sections with your own user workflows and support paths.Publishing stale or internal-only instructions.
notificationsBusiness events must reach users or operators reliably.Select events, recipients, channels, templates, and retry ownership.Duplicate sends, secrets, privacy, and dead letters.
privacyThe public product uses required Google Analytics and optional attribution.Review purposes, retention, visitor copy, and every provider script before enabling tracking.Consent validity, third-party scripts, and regional requirements.
settingsOwners configure behavior without code changes.Define safe defaults and decide whether each setting belongs in env or database.Invalid configuration and authorization of mutations.
teamMore than one staff member administers the product.Define canonical roles, feature access, invite ownership, and public team visibility.Privilege escalation and invite lifecycle.
waitlistAccess is staged, invite-led, or demand-tested.Choose launch mode, captured fields, confirmation, export, and conversion path.Public abuse, exports, and personal data.