The ultimate boilerplate generator for "AI-Native" development with React, Tailwind v4, and Firebase or Supabase.
This project is a personal command-line interface (CLI) designed to automate the creation of modern web projects. Instead of manually configuring each tool, this generator deploys a robust, scalable architecture that is immediately understood by AI assistants (Cursor, Claude Code, Google AntiGravity, etc.).
A copy of the license is included in the LICENSE file inside the my-stack-generator.zip archive.
This project is distributed under the GNU Affero General Public License (AGPL). In summary:
- You are free to:
- Use, copy, and distribute the software, including commercially.
- Modify the source code and share your modifications.
- You must:
- Provide access to the complete source code (including your modifications) if you make the software available to others, especially over a network.
- Keep the same license (AGPL) for any distributed or network-accessible modifications.
- You may not:
- Impose further restrictions beyond those of the AGPL.
- Remove or alter the license notices.
Important: You must read the full LICENSE file before using, modifying, or distributing this project. This summary and the rest of this documentation are for informational purposes only and do not constitute legal advice or override the terms of the license. Only the LICENSE file is legally binding.
The goal is to eliminate "setup fatigue." With a single command, you get a production-ready environment that follows current best practices.
- Framework: React (via Vite) for maximum speed.
- Styling: Tailwind CSS v4 (high-performance engine).
- Backend: Firebase or Supabase pre-configured.
- Language: JavaScript or TypeScript (your choice).
- Architecture: Feature-Based Design (Organization by business domains).
- π TypeScript support β Generate projects in TypeScript with strict config out of the box.
- π§© Modular features β Select optional features (Router, State, Lint, Tests, Auth, UI).
- π€ Non-interactive mode β Automate project creation with
--yesand CLI flags. - π Dry-run mode β Preview what files will be created without writing anything.
- πΎ Presets β Save and reuse your favorite project configurations.
- π Auth components β Get a working login form + auth context out of the box.
- π¨ shadcn/ui integration β Accessible, pre-styled components ready to use.
The generated architecture follows a Feature-Based logic. Instead of grouping files by "technical type" (all components together, all hooks together), we group them by feature.
src/features/: The core of the application. Each folder (e.g.,auth) contains its owncomponents,hooks, andservices.src/lib/: Centralized configurations (e.g.,firebase.config.tsorsupabase.config.ts).src/components/: Global and reusable UI components (Button, Input, Card).src/hooks/: Global hooks shared across multiple features.src/pages/: Route-level page components (when Router feature is selected).src/stores/: Zustand state stores (when Zustand feature is selected).
Before installing, ensure you have the following:
- Node.js: version 18.0.0 or higher.
- Package Manager: npm, pnpm, or bun.
Follow these steps to install the command globally on your machine:
Go to the Releases section of this repository and download the file: my-stack-generator.zip. Make sure to choose the latest stable version (currently v3.0.0).
After downloading, extract the contents of my-stack-generator.zip.
Open your terminal and navigate to the extracted my-stack-generator folder using the following command (replace {path-to-my-stack-generator} with the actual path):
cd [path-to-my-stack-generator]/my-stack-generatorRun one of these following commands to register mystack on your computer:
npm install
npm linkpnpm install
pnpm linkbun install
bun linkWe recommend using bun
To create a new project with the interactive wizard, simply run:
mystackThe terminal will guide you through these questions:
- Project name β Name of your project folder
- Package manager β npm, pnpm, or bun
- Backend β Firebase or Supabase
- TypeScript β Enable TypeScript support (strict config included)
- Features β Select optional features from the list below
- Install dependencies β Auto-install or do it later
When creating a project, you can select any combination of these optional features:
| # | Feature | What it adds |
|---|---|---|
| 1 | React Router | react-router-dom, page components in src/pages/, App with <BrowserRouter> navigation |
| 2 | Zustand | zustand state management, example store in src/stores/useAppStore.ts |
| 3 | ESLint + Prettier | eslint v9 flat config, prettier, scripts lint and format in package.json |
| 4 | Vitest | vitest, @testing-library/react, jsdom, config file, setup, example test, scripts test and test:ui |
| 5 | Authentication | Auth context with Firebase/Supabase listener, login form with email/password, useAuth hook |
| 6 | shadcn/ui | components.json configured, auto-init post-install. Add components with npx shadcn add button |
For automated pipelines, scripts, or CI/CD, use --yes to skip all prompts and pass options as flags:
# Minimal: generates a default project (npm, Firebase, JS)
mystack init --yes --name my-app
# Full control: specify everything
mystack init --yes --name my-saas \
--pm pnpm \
--backend supabase \
--typescript \
--features router,zustand,eslint,vitest,auth
# Preview without creating files
mystack init --yes --name my-app --dry-runAvailable flags:
| Flag | Description | Default |
|---|---|---|
-y, --yes |
Non-interactive mode | false |
-n, --name <name> |
Project name | my-awesome-project |
--pm <pm> |
Package manager (npm, pnpm, bun) |
npm |
-b, --backend <backend> |
Backend (firebase, supabase) |
firebase |
--typescript |
Enable TypeScript | false |
-f, --features <list> |
Comma-separated features | none |
--preset <name> |
Use a named preset | none |
--dry-run |
Show what would be created without writing | false |
Presets let you save and reuse your favorite project configuration:
# List all available presets
mystack presets
# Use a built-in preset
mystack init --yes --preset enterprise --name my-appBuilt-in presets:
| Preset | PM | Backend | TypeScript | Features |
|---|---|---|---|---|
default |
npm | Firebase | No | β |
enterprise |
pnpm | Firebase | Yes | router, zustand, eslint, vitest, auth |
minimal |
npm | Firebase | No | β |
fullstack |
pnpm | Supabase | Yes | router, zustand, eslint, vitest, auth, shadcn |
When TypeScript is enabled (via --typescript or the interactive prompt), the generated project includes:
tsconfig.jsonwith strict mode and all recommended compiler optionstsconfig.node.jsonfor Vite configurationvite.config.tsinstead ofvite.config.js- All source files in
.tsx/.tsformat typescript,@types/react, and@types/react-domas dev dependencies- Feature-specific files (stores, auth context, tests) are also fully typed
Automated actions performed by the script:
- Creation of the complete folder structure.
- Generation of configuration files (React, Tailwind v4, Firebase or Supabase).
- Generation of base UX assets (favicon.svg, site.webmanifest).
- Creation of a modern, accessible home page (
App.jsxorApp.tsx). - Generation of
.env.examplefor easy configuration. - Optional: TypeScript configuration, Router setup, State management, Linting, Testing, Auth components, shadcn/ui.