Skip to content

faw01/create-mf2-app

Repository files navigation

mf²

version downloads license

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.

Website →

Quick Start

bunx create-mf2-app my-app
cd my-app
bun run dev

Prefer 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

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

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.

Built for Agents

.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.

Security

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.

CLI

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.

Deploy

Each app deploys as a separate Vercel project:

  1. Import your repo at vercel.com/new
  2. Set the root directory (apps/app, apps/web, or apps/api)
  3. Add environment variables from .env.production
  4. Push to main and Vercel rebuilds only affected apps

Documentation (apps/docs) deploys via Mintlify; the backend via bunx convex deploy.

Documentation

Commands, environment setup, and the full stack reference live at mf2.dev/docs.

Contributions welcome — see the Contributing Guide.

License

MIT © Ocarina Labs

About

Move fawking fast and break nothing. The production-ready SaaS monorepo with auth, payments, database, AI, analytics, and email. Ship your startup in one command.

Resources

License

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors