MuseMVP Docs
Configuration

Brand Configuration

Replace the name, logo, homepage copy, and app settings with your product's identity.

Make the running app feel like your product. Start with the name and logo, then edit the homepage copy and choose the features you want to expose.

Before You Start

Finish Quick Start and keep the local server running. Prepare your product name, a short description, logo, and support address. File paths are relative to your selected application's root.

1. Set Your Product Name

Open packages/config/src/i18n.ts. In both locale entries, replace:

FieldWhere your users see it
appNameLogo label and product identity
summary, description, keywordsPublic metadata and product descriptions
docsAliasDocumentation title

Keep the existing locale keys and surrounding structure. Give English and Chinese their own descriptions rather than changing only one language.

2. Replace the Images

Replace these files in your selected app's public/ directory:

FilePurpose
icon.pngHeader logo and default email logo
favicon.ico, favicon.svg, favicons/*Browser and installed-app icons; favicons/og.png is the social preview
images/hero-light.png, images/hero-dark.pngHomepage product screenshots

Keep filenames if you want to reuse existing references. Check both light and dark mode screenshots.

3. Write Your Homepage Copy

Put your product copy in both packages/i18n/src/translations/en/mvp.json and zh/mvp.json. Keep default.json unchanged so template updates remain easier to merge.

This example uses the actual homepage keys. Merge it into your existing mvp.json, rather than replacing other copy:

{
  "home": {
    "hero": {
      "mainTitle1": "Acme",
      "mainTitle2": "Turn ideas into finished work",
      "mainDescription": "A workspace for your next product."
    }
  }
}

Use the same keys with Chinese copy in the Chinese file. The same overlay approach works for navigation, FAQ, and mail subjects. See Languages and Translations.

4. Set Your Language and Support Address

Edit your app's .env.local:

NEXT_PUBLIC_SITE_URL="http://localhost:3000"
NEXT_PUBLIC_DEFAULT_LOCALE="en"
NEXT_PUBLIC_EMAIL_SUPPORT="[email protected]"
CONTACT_FORM_TO="[email protected]"

Use zh for a Chinese-first product. Keep the local origin during development; replace it with your HTTPS domain on deployment. Keep .env.local and .dev.vars aligned. Restart the dev server after environment changes.

CONTACT_FORM_TO is the receiving inbox. To actually send contact messages, configure Email.

5. Choose Your App Features

Edit the existing config in packages/config/src/index.ts; do not replace the entire object with a partial example.

What you want to changeSetting
Hide pricing until you are ready to chargepayments.enableBilling = false
Show free or enterprise planspayments.enableFree, payments.enableEnterprise
Require first-login onboardingusers.enableSetup
Show password/social/2FA controlsauth.gates.allowPasswordSignIn, allowSocialSignIn, allowTwoFactorAuth
Default to dark modeui.defaultTheme = "dark", with dark in ui.enabledThemes
Show account deletionusers.showDeleteAccount

Auth display controls are not a substitute for backend permission checks. For prices, use app src/config/saas/pricing-desc.ts and pricing-desc-usage.ts, then connect your gateway.

Remove unneeded homepage sections and navigation links in their components; see Customize Your Landing Page. Setting billing off hides homepage pricing and redirects /pricing home.

Check Your Result

  • Refresh the homepage and confirm the logo, name, and hero copy changed.
  • Switch languages and inspect browser metadata, header, footer, and support address.
  • Test light and dark mode.
  • If billing is off, confirm homepage pricing is hidden and /pricing returns home.

Common Problems

ProblemFix
Header name changed but hero still says MuseMVPEdit home.hero.* in both mvp.json files as well as locale metadata
Environment changes do not appearRestart dev; rebuild deployed apps after changing NEXT_PUBLIC_*
Old favicon remainsHard-refresh or check in a fresh browser session; confirm all referenced icon files
A page is still reachable after hiding its linkRemoving navigation does not remove the route; remove the owning route only if the URL must disappear

Continue with Landing Page, Theme, or App Layout.

On this page