create-trio-app
v0.1.0
Published
CLI generator for production-oriented Next.js modular-monolith projects.
Maintainers
Readme
create-trio-app
Standalone generator for production-oriented Next.js modular-monolith projects.
Quick start
pnpm create trio-app my-appThis scaffolds ./my-app, then runs pnpm install, pnpm db:generate, and
git init inside it. Skip any of those with the flags below.
Requirements
- Node.js >= 24
- pnpm 10+
Commands
Create a project
create-trio-app <target-dir> [options]| Option | Description |
| --- | --- |
| --name <package-name> | npm package name (defaults to the target directory name) |
| --skip-install | do not run pnpm install |
| --skip-migrations | do not run pnpm db:generate |
| --skip-git | do not run git init |
| --force | overwrite conflicting files |
| --dry-run | print the file list without writing |
Add a module
create-trio-app add module <module-name> [--project <path>] [--force] [--dry-run]Scaffolds a new module under modules/<module-name>/ (domain, application,
infrastructure, transport, plus index.ts) and registers it in
sheriff.config.ts. --project defaults to the current directory.
Other
--help/-h— show usage--version/-v— print package version
What's in the generated app
- Next.js App Router with strict TypeScript
- Drizzle ORM + Postgres
- Kernel module and composition roots
- Minimal admin and users modules
- UI primitives
- Vitest test setup
- Sheriff architecture guardrails
Product modules (messaging, memberships, payments, AI workflows, etc.) are
intentionally excluded from v1 — add them with add module or by hand.
Local development
pnpm install
pnpm build
node dist/cli.js ../my-app --skip-install --skip-git --skip-migrations
node dist/cli.js add module billing --project ../my-appUseful scripts:
pnpm dev— run the CLI from sources viatsxpnpm check— lint, typecheck, and testpnpm test— Vitest onlypnpm test:coverage— Vitest with V8 coverage outputpnpm audit:prod— audit production dependenciespnpm pack:dry-run— verify npm publish contentspnpm format— Biome write mode
Release
Releases are manual. This project intentionally does not use Release Please or conventional-commit release automation.
pnpm version patch --no-git-tag-version
pnpm check
pnpm pack:dry-runCommit the version bump, merge to main, then run the release workflow from
GitHub Actions. The workflow verifies the package, checks that the version is
not already published, and publishes to npm with provenance using NPM_TOKEN.
