create-meridian-app
v2.4.0
Published
Create a new Meridian project or manage an existing one
Readme
create-meridian-app
CLI for creating and managing MeridianJS projects. Scaffold a new project interactively, or manage an existing one with sub-commands for dev, production start, builds, database migrations, code generation, and the admin dashboard.
Create a New Project
npx create-meridian-app
# or
npx create-meridian-app my-appThe interactive wizard prompts for:
- Project name
- Database URL
- HTTP port (default:
9000) - Whether to include the admin dashboard
- Optional modules (Google OAuth, SendGrid, Resend, SES, S3)
- Whether to seed demo data
CLI Commands
Once a project is created, the meridian CLI is available locally in the project:
Development
npm run dev
# or
meridian devStarts the API server with NODE_ENV=development and, if @meridianjs/admin-dashboard is installed, starts the dashboard server. Loads .env automatically.
Production
npm start
# or
meridian startStarts the API server with NODE_ENV=production. Same process as dev but without development-only behaviour (schema auto-sync is disabled via autoSyncSchema: false in config).
Build
npm run build
# or
meridian buildRuns tsc --noEmit to type-check the project.
Database
# Sync schema (adds missing tables/columns, never drops)
npm run db:migrate
meridian db:migrate
# Generate a migration file
npm run db:generate add-due-date
meridian db:generate add-due-dateCode Generation
Scaffold boilerplate files for common patterns:
meridian generate module <name> # New module in src/modules/
meridian generate workflow <name> # New workflow in src/workflows/
meridian generate subscriber <event> # New subscriber in src/subscribers/
meridian generate job <name> # New scheduled job in src/jobs/
meridian generate route <path> # New API route file
meridian generate plugin <name> # New local plugin in src/plugins/
# Alias
meridian g module my-featureAdmin Dashboard
# Serve the dashboard standalone (separate from API)
meridian serve-dashboard
meridian serve-dashboard --port 3000User Management
meridian user:create --email [email protected] --role super-adminScaffolded Project Structure
my-app/
├── src/
│ ├── main.ts Entry point
│ ├── api/
│ │ ├── middlewares.ts Route-level middleware config
│ │ └── admin/ File-based API routes
│ ├── modules/ Custom domain modules
│ ├── workflows/ DAG workflows with compensation
│ ├── subscribers/ Event subscribers
│ ├── jobs/ Scheduled background jobs
│ ├── links/ Cross-module link definitions
│ └── admin/
│ └── widgets/
│ └── index.tsx Dashboard widget extensions
├── meridian.config.ts Framework configuration
├── .env Environment variables
├── .env.example Environment variable template
├── package.json
└── tsconfig.jsonProject package.json Scripts
| Script | Command | Description |
|---|---|---|
| npm run dev | meridian dev | Development server |
| npm start | meridian start | Production server |
| npm run build | meridian build | Type-check |
| npm run db:migrate | meridian db:migrate | Sync database schema |
| npm run db:generate | meridian db:generate | Generate migration |
| npm run seed:demo | (if opted in) | Seed demo data |
License
MIT
