stacksy-cli
v1.0.0
Published
Interactive project scaffolding CLI for modern full-stack applications. Scaffold production-ready projects with Next.js, auth, databases, ORMs, UI libraries, payments, and more — in seconds.
Maintainers
Readme
🚀 Quick Start
# Run directly with npx (no installation required)
npx stacksy-cli create
# Or install globally
npm install -g stacksy-cli
stacksy create my-app✨ Features
- 14 Frameworks — Next.js, Remix, Nuxt, SvelteKit, Astro, Vite (React/Vue/Svelte), Angular, Express, Fastify, NestJS, Hono, Gatsby
- 10 Auth Solutions — Auth.js, Clerk, Better Auth, Lucia, Supabase Auth, Firebase Auth, Kinde, Auth0, Passport.js, AWS Cognito
- 15 Databases — PostgreSQL, MySQL, SQLite, MongoDB, Redis, Supabase, Neon, PlanetScale, Turso, CockroachDB, and more
- 9 ORMs — Prisma, Drizzle, TypeORM, Sequelize, Kysely, Knex, Mongoose, MikroORM, Objection.js
- 20 UI / Styling — Tailwind CSS, shadcn/ui, MUI, Chakra, Mantine, Ant Design, DaisyUI, Radix, NextUI, and more
- 7 Payment Providers — Stripe, Lemon Squeezy, Paddle, PayPal, Razorpay, Mollie, Square
- 8 Storage Solutions — Uploadthing, Cloudinary, AWS S3, Cloudflare R2, Supabase Storage, Firebase Storage, MinIO, Vercel Blob
- 10 Email Services — Resend, SendGrid, Postmark, Mailgun, AWS SES, Nodemailer, Plunk, React Email, Loops, Brevo
- 10 Analytics — Vercel Analytics, PostHog, Mixpanel, Google Analytics, Plausible, Umami, Amplitude, Segment, Fathom, OpenPanel
- 7 Testing Tools — Vitest, Jest, Playwright, Cypress, Testing Library, Supertest, MSW
- 8 Dev Tools — ESLint, Prettier, Biome, Husky, lint-staged, commitlint, Docker, GitHub Actions
- Smart Compatibility Engine — Automatically validates and resolves conflicts between selections
- TypeScript / JavaScript — Choose your preferred language
- 4 Package Managers — npm, pnpm, yarn, bun
📦 Installation
Using npx (Recommended)
No installation required — run directly:
npx stacksy-cli createGlobal Installation
# Using npm
npm install -g stacksy-cli
# Using pnpm
pnpm add -g stacksy-cli
# Using yarn
yarn global add stacksy-cli
# Using bun
bun install -g stacksy-cliThen run from anywhere:
stacksy create my-appRequirements
- Node.js ≥ 18.0.0
- One of: npm, pnpm, yarn, or bun
📖 Usage
Create a New Project
stacksy createThis launches the interactive wizard that guides you through:
- Project name & description
- Framework selection (grouped by Full-Stack, Frontend, Backend)
- Language preference (TypeScript or JavaScript)
- Package manager (pnpm, npm, yarn, bun)
- Feature selection — pick categories you want:
- Authentication
- Database
- ORM / Data Layer
- UI / Styling
- Payments
- File Storage
- Analytics
- Testing
- Developer Tooling
- Individual tool selection for each feature (filtered by framework compatibility)
- Review summary and confirm
- Scaffolding — project files, dependencies, env vars, and git init
With a Project Name
stacksy create my-appOptions
| Flag | Description |
| ----------------------- | ------------------------------------------- |
| --no-install | Skip automatic dependency installation |
| --no-git | Skip git repository initialization |
| -t, --template <name> | Use a predefined stack preset (coming soon) |
Example
stacksy create my-saas --no-gitDiagnose a Project
stacksy doctorChecks your environment for:
- Node.js version
- Available package managers
- package.json presence
- Environment variable files
Add a Feature (Coming Soon)
stacksy add auth
stacksy add database
stacksy add paymentsRemove a Feature (Coming Soon)
stacksy remove auth🏗️ What Gets Generated
When you run stacksy create, you'll get a complete project with:
my-app/
├── src/
│ ├── app/ # App routes & pages (framework-specific)
│ ├── components/ # Reusable components
│ ├── lib/ # Shared utilities (auth, db, email, etc.)
│ └── styles/ # Global styles
├── tests/ # Test files (if testing selected)
├── e2e/ # E2E test files (if Playwright/Cypress selected)
├── public/ # Static assets
├── .env.local # Environment variables (auto-generated)
├── .env.example # Template for env vars
├── .gitignore
├── package.json # With all selected dependencies
├── tsconfig.json # TypeScript config (if TS selected)
├── next.config.mjs # Framework config (varies)
├── tailwind.config.ts # Tailwind config (if selected)
├── prisma/schema.prisma # Prisma schema (if selected)
├── drizzle.config.ts # Drizzle config (if selected)
├── vitest.config.ts # Vitest config (if selected)
├── playwright.config.ts # Playwright config (if selected)
├── eslint.config.js # ESLint config (if selected)
├── .prettierrc # Prettier config (if selected)
├── Dockerfile # Docker config (if selected)
├── .github/workflows/ # GitHub Actions CI (if selected)
└── README.mdExact structure varies based on your framework and feature selections.
🧠 Architecture
Stacksy is built with a layered, modular architecture:
CLI Entry (Commander) → Prompts (@inquirer/prompts) → Config Engine → Builders → File System| Layer | Purpose | | -------------------- | ------------------------------------------------------- | | Registry | Declarative catalog of all technologies with metadata | | Prompts | Interactive user input collection | | Config Engine | Translates selections into a resolved configuration | | Compatibility | Validates tech combinations, auto-fixes conflicts | | Builders | Generates files, dependencies, and env vars per feature | | Package Managers | Abstracts npm/pnpm/yarn/bun install commands |
🔧 Development
# Run the CLI in dev mode
pnpm dev
# Run directly with arguments
node bin/cli-entry.js create my-test-app
# Run with debug output
DEBUG=1 node bin/cli-entry.js createProject Structure
Stacksy/
├── bin/
│ └── cli-entry.js # CLI entry point
├── src/
│ ├── builders/ # Code generation for each feature
│ │ ├── framework/ # Framework scaffolding (14 frameworks)
│ │ ├── authentication/ # Auth integration code
│ │ ├── database/ # Database driver setup
│ │ ├── orm/ # ORM schema & config generation
│ │ ├── ui/ # UI library setup
│ │ ├── payments/ # Payment integration
│ │ ├── storage/ # File storage setup
│ │ ├── email/ # Email service config
│ │ ├── analytics/ # Analytics integration
│ │ ├── testing/ # Test config generation
│ │ ├── tooling/ # Linting, CI/CD, Docker
│ │ └── env/ # .env file generation
│ ├── commands/ # CLI command handlers
│ │ ├── create/ # Main scaffolding command
│ │ ├── add/ # Add feature (planned)
│ │ ├── remove/ # Remove feature (planned)
│ │ └── doctor/ # Project diagnostics
│ ├── core/ # Engine modules
│ │ ├── compatibility/ # Validation rules
│ │ ├── config-engine/ # Config builder
│ │ ├── context/ # Session state
│ │ ├── execution-plan/ # Build step ordering
│ │ └── registry/ # Registry facade
│ ├── package-managers/ # npm/pnpm/yarn/bun abstraction
│ ├── prompts/ # Interactive prompt modules
│ │ ├── project/ # Name, description, package manager
│ │ ├── framework/ # Framework & language selection
│ │ ├── features/ # Feature category & tool selection
│ │ └── integrations/ # Additional integration config
│ ├── registry/ # Technology catalog
│ │ ├── frameworks/ # 14 framework definitions
│ │ ├── authentication/ # 10 auth solutions
│ │ ├── databases/ # 15 databases
│ │ ├── orms/ # 9 ORMs
│ │ ├── ui/ # 20 UI libraries
│ │ ├── payments/ # 7 payment providers
│ │ ├── storage/ # 8 storage solutions
│ │ ├── email/ # 10 email services
│ │ ├── analytics/ # 10 analytics platforms
│ │ ├── testing/ # 7 testing tools
│ │ ├── tooling/ # 8 dev tools
│ │ └── integrations/ # 6 integrations
│ └── utils/ # Shared utilities
│ ├── logger.js # Terminal output & formatting
│ ├── spinner.js # Progress spinners
│ ├── filesystem.js # File operations
│ └── validation.js # Input validation
├── package.json
└── README.md📋 Supported Technology Matrix
Frameworks
| Framework | Category | Ecosystem | | ------------- | ---------- | --------- | | Next.js | Full-Stack | React | | Remix | Full-Stack | React | | Nuxt | Full-Stack | Vue | | SvelteKit | Full-Stack | Svelte | | Astro | Full-Stack | Multi | | Vite + React | Frontend | React | | Vite + Vue | Frontend | Vue | | Vite + Svelte | Frontend | Svelte | | Angular | Frontend | Angular | | Gatsby | Frontend | React | | Express | Backend | Node.js | | Fastify | Backend | Node.js | | NestJS | Backend | Node.js | | Hono | Backend | Node.js |
Compatibility Rules
Stacksy automatically enforces compatibility:
- shadcn/ui requires Tailwind CSS and a React-based framework
- DaisyUI requires Tailwind CSS
- Mongoose requires MongoDB
- Prisma/Drizzle require a SQL database
- lint-staged/commitlint require Husky
- Framework-specific auth (e.g., Auth.js works best with Next.js)
- Vue UI libraries only available for Vue frameworks
- ESLint + Biome conflict detection
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide before submitting a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
⭐ Support
If you find Stacksy helpful, please consider giving it a star on GitHub. It helps others discover the project!
