The startup-in-a-command monorepo built for the agent era.
One command scaffolds a Turborepo with eight apps across web, mobile, and desktop, 22 shared packages, and agent instructions that already know the codebase. Everything boots with zero keys — a blank env value just disables that integration.
bunx create-mf2-app my-app
cd my-app
bun run devPrefer GitHub? Click Use this template on the template repository.
The CLI prompts for a project name and package manager, copies the template, creates ready-to-fill .env.local and .env.production files, installs dependencies, and makes an initial commit. Fill in API keys as you need them and start building.
apps/
app/ Main SaaS application (Next.js, App Router)
web/ Marketing website
api/ Webhooks, cron jobs, external integrations
mobile/ React Native + Expo mobile app
desktop/ Electron desktop app (macOS, Windows, Linux)
docs/ Documentation (Mintlify)
email/ Email templates (React Email)
storybook/ Component workshop
packages/
backend/ Convex database, auth sync, AI agents, workflows
convex/ Convex + Clerk React provider
storage/ Convex file storage and Vercel Blob
design-system/ 50+ shadcn/ui components with dark mode
design-system-native/ React Native UI components (NativeWind)
auth/ Clerk authentication and route protection
payments/ Stripe via @convex-dev/stripe
ai/ Vercel AI SDK, multi-model routing
analytics/ PostHog event tracking and sessions
cms/ BaseHub headless CMS
collaboration/ Liveblocks cursors and presence
email/ Resend transactional email
feature-flags/ Vercel feature flags with overrides
internationalization/ next-intl translations
notifications/ Knock in-app notification feeds
seo/ Metadata, JSON-LD, Open Graph
webhooks/ Svix outbound webhook delivery
observability/ Sentry error tracking, BetterStack logging
rate-limit/ Upstash Redis rate limiting
security/ Arcjet bot detection, Nosecone secure headers
next-config/ Shared Next.js configuration
typescript-config/ Shared tsconfig
Each app imports only the packages it needs. Five Convex Components (Stripe, Resend, Workflow, Action Retrier, Migrations) ship pre-installed. Stack details at mf2.dev/docs/structure.
.agents/AGENTS.md is the single agent entry point: essential commands, conventions, and pointers to the vendored skills. AGENTS.md, CLAUDE.md, and .claude/CLAUDE.md are one-line anchors that resolve to it, so every agent lands on the same instructions.
| File | Purpose |
|---|---|
.agents/AGENTS.md |
Canonical agent instructions |
AGENTS.md, CLAUDE.md, .claude/CLAUDE.md |
Anchors that resolve to .agents/AGENTS.md |
.agents/skills/ |
40+ vendored skills: Convex, Clerk, Expo, Stripe, shadcn, Turborepo, and more |
.claude/skills/ |
Mirror of .agents/skills/ for Claude Code |
.mcp.json |
MCP servers: Convex, Stripe, Clerk, PostHog, Vercel, Context7, Ultracite |
Tell your agent to use the mf2 skill with your product idea: it maps the requirements onto the scaffold and plans a parallelized build.
Scaffolds ship with supply-chain defenses on: a three-day cooldown on newly published package versions (bun, pnpm, and npm), install scripts blocked by default, registry-only transitive resolution, and Arcjet bot detection with rate limiting at runtime.
Pass the project name and flags to skip the interactive prompts:
bunx create-mf2-app my-app --package-manager bun
bunx create-mf2-app --name my-app --disable-git| Flag | Effect |
|---|---|
[name] |
Set project name (positional) |
--name <name> |
Set project name (wins over the positional) |
--package-manager <manager> |
bun (default), npm, yarn, or pnpm |
--disable-git |
Skip git initialization |
For npm, yarn, or pnpm, the CLI converts workspace:* dependencies, rewrites bun-specific scripts, and adjusts configuration files.
Each app deploys as a separate Vercel project:
- Import your repo at vercel.com/new
- Set the root directory (
apps/app,apps/web, orapps/api) - Add environment variables from
.env.production - Push to
mainand Vercel rebuilds only affected apps
Documentation (apps/docs) deploys via Mintlify; the backend via bunx convex deploy.
Commands, environment setup, and the full stack reference live at mf2.dev/docs.
Contributions welcome — see the Contributing Guide.
MIT © Ocarina Labs