@monkilabs/backbone
v0.6.0
Published
Scaffold a production-ready Nx monorepo for MonkiLabs projects
Readme
BACKBONE
Scaffold a production-ready monorepo for scalable projects. The interactive CLI lets you pick your stack — monorepo tool, framework, backend, CMS, testing, deployment, and optional packages — then generates a fully wired workspace.
Quickstart
npx @monkilabs/backbone my-appThe CLI walks you through each choice, then scaffolds the project:
cd my-app
npm install
npx nx serve web # Nx
npx turbo dev # TurborepoOptions
| Category | Choices | |----------|---------| | Monorepo | Nx, Turborepo | | Framework | Next.js, Astro | | Backend | Convex, Supabase, Prisma | | CMS | Sanity, Contentful, Strapi, None | | E2E Testing | Playwright, Cypress | | Deployment | Vercel, Netlify, None | | Mobile | Ionic + Capacitor, None | | Packages | UI library (React), Email library (Resend), LLM library |
Unit testing with Vitest and CI with GitHub Actions are always included.
Incompatible combinations
Astro is not compatible with Ionic, Convex, or the UI library (all require React). The CLI prevents these selections automatically.
Requirements
- Node.js ≥ 22.5.0
Project name rules
Must start with a lowercase letter, contain only lowercase letters, digits, hyphens, or underscores, and be at most 214 characters. Reserved names (node_modules, dist, build, test, src, lib, bin, tmp, temp, cache, coverage) are not allowed.
Generated project structure
The exact layout depends on your choices. A typical Nx + Next.js + Supabase project looks like:
my-app/
├── apps/
│ ├── web/ # Next.js or Astro app
│ └── mobile/ # Ionic + Capacitor (if selected)
├── packages/
│ ├── ui/ # Shared UI component library (if selected)
│ ├── llm/ # LLM prompts & tools (if selected)
│ └── email/ # Email templates with Resend (if selected)
├── backend/
│ ├── supabase/ # Supabase config (if selected)
│ ├── contentful/ # Contentful client + type gen (if selected)
│ └── ... # Other backend/CMS integrations
├── convex/ # Convex functions (if selected)
├── e2e/ # Playwright or Cypress specs
├── .github/workflows/
│ ├── ci.yml # Lint, type-check, test
│ └── deploy.yml # Deployment workflow (if configured)
├── nx.json # Nx workspace config (Nx mode)
├── turbo.json # Turborepo config (Turborepo mode)
├── vitest.config.ts
├── tsconfig.base.json
└── package.jsonDeployment
When you select Vercel or Netlify, the generated project includes the corresponding configuration files and a GitHub Actions deployment workflow.
If no deployment platform is selected, a generic CI workflow (.github/workflows/ci.yml) is still generated for linting, type-checking, and testing.
Development
# Build the CLI
npm run build
# Run tests
npm test
# Watch mode
npm run dev # TypeScript
npm run test:watch # Vitest