MuseMVP

MuseMVP Base: Next.js for Node and Cloudflare. MuseMVP Flare: an AI SaaS template that runs entirely on Cloudflare. Authentication, billing and administration included.

Product
  • Home
  • Pricing
  • Templates
Resources
  • Docs
  • Blog
  • Changelog
Legal
  • Privacy
  • Terms
  • Community
Open-Launch Top 1 Daily WinnerOpen-Launch Top 1 Daily WinnerVerified DR - Verified Domain Rating for musemvp.comVerified DR - Verified Domain Rating for musemvp.comMuseMVP - Featured on Startup FameMuseMVP - Featured on Startup FameFazier badgeFazier badgeLiftOff award badgeLiftOff award badge

© 2026 MuseMVP. All rights reserved.

MuseMVP
  • Pricing
  • Docs
  • Blog
  • Changelog
Buy MuseMVP Flare
MuseMVP Docs
MuseMVP Docs
OverviewTech StackGet SourceQuick StartProject Structure
DatabaseAPIAuthenticationBillingObject StorageEmail
Deployment

Project Structure

Find pages, domain logic, deployment configuration and tests without crossing ownership boundaries.

This structure comes from standalone musemvp-flare. The marketing site's Next.js folders are not the starter's source of truth.

Repository map

musemvp-flare/
  .agents/skills/                # repository agent workflows
  .env.example                  # committed deployment variable names
  apps/web/
    components.json             # shadcn/Base UI configuration
    public/logo.png             # product mark
    public/showcase/            # sample AI outputs for landing pages
    src/
      components/ui/            # application UI primitives
      components/ai/            # studio composer, controls, media, showcase
      components/brand.tsx      # brand and locale links
      components/theme.tsx      # appearance menu
      hooks/use-mobile.ts       # responsive layout helper
      routes/                   # TanStack pages and API route
      modules/                  # public/auth/workbench/billing/ai
      server/                   # bindings, HTTP router, files, jobs, limits
      server/routes/            # one module per API area
      content/                  # paired en/zh MDX
      lib/                      # requests, locale, SEO and cn
    vite.config.ts
    wrangler.jsonc              # local Worker configuration
  packages/
    ai/ auth/ billing/ cli/ config/ db/
    i18n/ mail/ shared/ storage/ testing/ ui/
  scripts/check-contracts.mjs
  tests/api/ tests/e2e/ tests/unit/ tests/fixtures/
  docs/                         # architecture, billing, deployment evidence

Where to implement a change

RequirementOwnerAlso verify
Name, support address, quotas, planspackages/config/src/index.tsPublic copy, catalog and validation
Home/pricing layoutmodules/public/home.tsx, pricing.tsx and copy.tsLanguages, mobile menu, disabled billing
AI studio or modelmodules/ai/*, packages/ai/src/openai.ts, text.ts, catalog.ts, speech.ts, video.tsOpenAI defaults, explicit alternative adapters, prices, refusals and mock mode
Authentication formmodules/auth/page.tsxVerification, OAuth, CAPTCHA, redirects
Workspace featuremodules/workbench/<feature>.tsxInvalidation, feedback, roles
Shared presentationcomponents/ui and src/styles.cssBase UI behavior, focus, dark theme
HTTP contractroutes/api.$.ts → server/api.ts → server/routes/<area>.tsZod, identity, Origin, ownership
Data and schemapackages/db/src and migrationsAtomic D1 batches, idempotency, SQL risks
Resource identities/local configurationtarget-resources.ts / wrangler.jsoncTarget separation and precedence

App paths in the table are relative to apps/web/src. The full naming file is packages/cli/src/target-resources.ts.

Package ownership

  • config owns identity, quotas, gateway choices and catalog, never secrets.
  • db owns Drizzle schema, D1 queries, atomic ledger writes and migrations. React does not execute SQL.
  • auth creates Better Auth and its plugins; server/platform.ts injects app bindings.
  • billing owns provider contracts, signatures and money/adapters; modules/billing/service.ts orchestrates effects.
  • ai owns model catalogs, provider interfaces and the image, video and speech engines as pure TypeScript; modules/ai binds them to D1, R2 and Queues.
  • storage and mail own file and mail behavior and binding contracts.
  • cli owns init, doctor, plan, deploy, verify and ignored target state.
  • i18n owns base messages, derivative overrides and Paraglide settings.
  • ui currently exports cn and table helpers. Presentation components are app-local; the removed @musemvp/ui/components is not the customization entry.
  • shared and testing hold reusable foundations/test support.

Follow a real request

Workspace files.tsx calls lib/client.ts. server/api.ts authenticates and hands the request to server/routes/files.ts; server/files.ts composes @musemvp/storage and queries.addFile. UI must not bypass server ownership, and packages must not import app modules.

For typed internal reads inspect createServerFn in modules/workbench/functions.ts. Page guards live in routes/$.tsx; APIs still need independent authentication.

Generated and local files

Route trees, src/paraglide, Wrangler types and build output are generated. Root .env, app .dev.vars, .muse and .wrangler contain environment/state and stay ignored. Inspect support bundles rather than sharing whole folders.

Continue with API and Theme.

Quick Start

Install, initialize local D1, sign in, and verify files and captured mail.

Brand Configuration

Customize identity, logo, quotas and copy, then check public and signed-in surfaces.

On this page

Repository mapWhere to implement a changePackage ownershipFollow a real requestGenerated and local files

One payment. Tax included.

MuseMVP Flare

TanStack Start on Cloudflare, with four AI studios built in.

$69

Buy MuseMVP Flare