create-megamono
Plan a new workspace with named applications, styling, and service choices.
Create a new repository with the applications, shared packages, and local services you need. Use adopt instead if you already have a workspace.
Create your workspace
Check the workspace requirements before starting. These examples select npm explicitly. From the directory where you keep your projects, run:
npx create-megamono my-workspace --package-manager=npmFollow the prompts to add applications, name them, and choose styling, a database adapter, and local services. You can start with packages only and add applications later.
To preview a specific setup before creating files:
npx create-megamono my-workspace --package-manager=npm --apps=site,api --styling=chakra --dry-runExplore the result
After creation succeeds, open the new directory and list its projects:
cd my-workspace
npm exec -- nx show projectsInspect an application's tasks with npm exec -- nx show project <project>, replacing <project> with a name from the list. Run its development target to start working. The repository structure guide explains the generated folders.
Command options
For scripts and repeatable setups, choose explicit options instead of prompts:
Usage: create-megamono <name> [type[:name] ...] [options]
App types:
web Next.js product, dashboard, or admin web app
api NestJS HTTP API or backend service
worker Cloudflare Worker for edge or background work
mobile Expo React Native app for iOS and Android
desktop Tauri desktop app
apple Native Swift/Xcode app (macOS required)
android Native Kotlin/Compose app (JDK and Android SDK to build)
site Next.js marketing, documentation, or public site
extension Browser extension
Use positional descriptors or --apps=<comma-separated descriptors>, not both.
Names are optional; repeated types need distinct names.
Interactive menus: arrows to navigate, Space to toggle services, Enter to continue.
Interactive apps: add, name, edit, or remove instances before continuing.
Next, optionally add publishable TypeScript packages (suggested when no apps are selected).
Options:
--apps= Explicitly create without applications
--packages=<names> Named TypeScript libraries under packages/; empty skips setup
--package-scope=<name> npm scope (default: workspace name)
--package-access=<mode> restricted (default) or public; does not publish
--styling=<choice> chakra, emotion, tailwind, panda, stylex, css-modules, inline
--router=pages|app Next.js router for web/site apps (default: pages)
--local-packages=yalc Use locally published packages and their dependency closure
--package-manager=<name> npm, pnpm, yarn, bun
--interactive=false Disable guided prompts
--database-adapter=<id> none, prisma, drizzle
--services=<ids> postgres, redis, clickhouse, typesense
--service-runner=<id> none, springbar
--springbar Shortcut for --service-runner=springbar; never starts services
--dry-run Print the plan without creating a workspace
--version [--json] Print installed build identity
--help, -h Show help without prompts, installs, or writes
Examples:
create-megamono toolkit --packages=core,client --package-access=public --local-packages=yalc --interactive=false
create-megamono studio site:marketing extension:grids extension:guides api web:admin
create-megamono studio --apps=site,api --styling=chakra --local-packages=yalc --interactive=false --dry-runNext steps
Add applications, create a shared library, or organize repository documentation. Native applications also need their platform's toolchain and signing setup.