create-pilotprojects-app
v0.3.5
Published
CLI to scaffold the Pilotprojects monorepo boilerplate
Downloads
167
Maintainers
Readme
create-pilotprojects-app
Scaffold a production-ready monorepo in under a minute — Next.js 15 web app, Expo mobile app, or both, wired together with tRPC, Supabase, Drizzle ORM, and a shared design system.
Usage
# npm
npm create pilotprojects-app@latest
# pnpm
pnpm create pilotprojects-app
# yarn
yarn create pilotprojects-app
# With project name pre-filled
pnpm create pilotprojects-app my-projectThe CLI is interactive — it asks a few questions then scaffolds, installs dependencies, and runs git init automatically.
What's included
Core (always scaffolded)
| Package | Purpose |
| --------------------- | ------------------------------------------------------ |
| @<scope>/api | tRPC v11 routers with a feature-based service layer |
| @<scope>/db | Drizzle ORM + Supabase Postgres — migrations included |
| @<scope>/auth | Supabase Auth helpers for web (SSR cookies) and mobile |
| @<scope>/validators | Shared Zod schemas |
| @<scope>/config | Shared ESLint and TypeScript configs |
Apps (your choice)
| App | Stack |
| ------------- | ----------------------------------------------------------------------------- |
| apps/web | Next.js 15 App Router · Tailwind CSS · shadcn/ui · tRPC client (RSC + client) |
| apps/mobile | Expo SDK 52 · React Native · NativeWind · tRPC HTTP client |
Optional add-ons
| Feature | What it adds |
| -------------------- | -------------------------------------------------------------------------------------------- |
| Design System | @<scope>/ui — Tailwind preset, shadcn/ui components (web), react-native-reusables (mobile) |
| Email | @<scope>/email — Resend SDK + React Email templates |
| Sentry | Error monitoring configured for web and/or mobile |
| PostHog | Product analytics + feature flags |
| Google Analytics | @next/third-parties GA4 script in the web layout |
Interactive prompts
| Prompt | Options | Default |
| ------------------------------ | -------------------------------------------------------- | ----------------- |
| Project name | Any lowercase slug | — |
| Package scope | @<name> | @<project-name> |
| Apps to scaffold | Web only / Mobile only / Both | Web only |
| Environments | development / uat / production (local always included) | production |
| Include design system? | Yes / No | Yes |
| Include Sentry? | Yes / No | Yes |
| Include Resend (email)? | Yes / No | Yes |
| Include PostHog? | Yes / No | No |
| Google Analytics? (web only) | Yes / No | No |
| Package manager | pnpm / npm / yarn | pnpm |
After scaffolding
cd my-project
# Copy local env files and fill in values
cp apps/web/.env.local.example apps/web/.env.local
# Add: SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY,
# DATABASE_URL, RESEND_API_KEY, SENTRY_DSN
# For each additional environment you selected:
# cp apps/web/.env.development.example apps/web/.env.development
# cp apps/web/.env.uat.example apps/web/.env.uat
# cp apps/web/.env.production.example apps/web/.env.production
# Mobile (if selected):
cp apps/mobile/.env.local.example apps/mobile/.env.local
# Start local Supabase (requires Supabase CLI)
supabase start
# Apply database migrations
pnpm --filter @repo/db db:migrate
# Start dev servers (web + mobile in parallel)
pnpm dev
# → web: http://localhost:3000
# → mobile: Expo DevToolsEnvironments
local is always included. The environments prompt lets you pick additional ones:
| Environment | Web env file | Mobile APP_ENV | EAS profile |
| ------------- | ------------------ | ---------------- | ------------------------------------- |
| local | .env.local | local | — |
| development | .env.development | development | development (dev client, simulator) |
| uat | .env.uat | uat | uat (internal distribution) |
| production | .env.production | production | production (App Store / Play Store) |
The mobile app.config.ts and eas.json are generated to include only the environments you selected.
Tech stack
| Layer | Choice | | ----------- | ----------------------------------- | | Monorepo | Turborepo + pnpm workspaces | | Web | Next.js 15 (App Router) | | Mobile | Expo SDK 52 / React Native 0.76 | | API | tRPC v11 + React Query | | Database | Drizzle ORM + Supabase Postgres | | Auth | Supabase Auth | | UI (web) | Tailwind CSS + shadcn/ui | | UI (mobile) | NativeWind + react-native-reusables | | Email | Resend + React Email | | Validation | Zod |
License
MIT
