Quick Start
Download the source, start a local app, and sign in with your development accounts.
By the end of this guide, you will have a local MuseMVP app and be able to sign in to its workspace. Real payments, OAuth, and storage can wait until you need them.
Before You Start
- Git and access to the source repository using the GitHub account granted access after purchase.
- Node.js 22 or newer and pnpm 10.26.2, the version pinned by the template.
- Local D1 is provided by Wrangler. Docker and Postgres are not required.
The app runs on port 3000. If that port is taken, Next.js moves to the next free port, and sign-in works on any localhost port in development.
1. Get the Source
Clone using the GitHub account with repository access:
git clone https://github.com/musemvp/musemvp.git
cd musemvp
pnpm installIf SSH is configured, you can use [email protected]:musemvp/musemvp.git. Run the remaining commands from the repository root, where pnpm-workspace.yaml lives.
2. Initialize Your App
Local Development
pnpm muse:init --app cloudflare
pnpm dev:cfInit writes apps/web-cloudflare/.env.local and .dev.vars, applies local D1 migrations, and creates your development login accounts. Running it again keeps your values and custom variables. The CLI uses --app cloudflare; the folder is web-cloudflare. Configure remote D1/R2 later in Cloudflare Deployment.
3. Open the App and Sign In
When the server is ready, open http://localhost:3000. Visit /auth/login, select password sign-in, and use either account:
| Account | Password | Explore |
|---|---|---|
[email protected] | musemvp | Workspace and account settings |
[email protected] | musemvp | Workspace and admin user management |
These assume unchanged seed defaults. If you edited MUSE_SEED_EMAIL or MUSE_SEED_PASSWORD, use your configured domain and password. These accounts are for development only.
Init sets MAIL_PROVIDER=console, so registration and sign-in codes print in the dev server terminal; search for [mail:console]. Real delivery requires Cloudflare email credentials. After editing .env.local, re-run pnpm muse:init --app cloudflare to refresh .dev.vars.
Check Your Result
- The public homepage opens without a server error.
- The user account can open
/appand/app/settings/general. - The admin account can open
/app/admin/users. - Signing out returns to the public site; revisiting
/appasks you to sign in.
Common Problems
| What you see | What to try |
|---|---|
| GitHub reports repository not found | Check that your GitHub account has accepted access, then check HTTPS/SSH credentials |
pnpm is not found | Run npm install -g [email protected], then reopen the terminal |
| Password sign-in fails | Re-run pnpm muse:init with the same --app (it recreates missing seed accounts), check the seed password, and use the password form |
| Port 3000 is occupied | Use the port Next.js picked; sign-in works on any localhost port in development. Set NEXT_PUBLIC_SITE_URL to that port only when testing mail links or OAuth |
| Missing generated content types | Start pnpm dev:cf or run pnpm build:cf to generate Fumadocs sources |
Run pnpm muse:doctor to see which features are ready, running on a local stand-in, disabled, or missing; AI agents can use pnpm muse:doctor --json. Avoid --force on an existing environment: it can replace configured values and signing secrets.
Next: Make It Yours
Continue with Brand and App Settings. Add Email, Payments, and Storage as needed.
Working with an AI coding agent? Your repository includes docs/getting-started.en.md: the whole path from a fresh clone to production, a table of every step that needs you in person (API keys, OAuth apps, wrangler login), and the MCP servers that save the most manual work. Ask your agent to read it with AGENTS.md first.
Your own private repository and future upstream merges are covered separately in Updating Your Project.