Build with tsup
All packages are bundled using tsup, powered by esbuild for blazing fast compilation.
Stack is an attempt to create a predictable opinionated software system. It can create backends, frontends, desktop apps, mobile apps, CLI apps and reusable packages that they can share. Stack comes fully ejected — you always own your build and configuration. Stack helps scaffold and link packages!
Stack comes pre-configured with a modern, high-performance stack so you can focus on code, not config.
Build with tsup
All packages are bundled using tsup, powered by esbuild for blazing fast compilation.
Test with Vitest
Unit testing is pre-configured out of the box with vitest for every new package.
React & Vite
Generate shared React component libraries or full-stack Vite frontend applications instantly.
Backend & CLI
Native support for Fastify APIs and robust CLI tools powered by Commander.
Follow these steps to get your first Stack workspace up and running in minutes.
Install the CLI
Manage your workspace by installing the global runner:
npm install -g @stack-dev/cliCreate a New Workspace
Scaffold your entire monorepo structure:
stack create my-new-project
cd my-new-projectGenerate Your First Package
# Create a shared utility librarystack g my-utils --type libraryGenerate Your First App
# Create a vite React appstack g frontend --type viteLink to Your Package
cd apps/frontend
stack l @my-new-project/my-utilsUse stack g <name> --type <type> to generate different architecture patterns:
| Type | Description |
|---|---|
| Library | Vanilla TypeScript package with tsup & vitest |
| React | Component libraries with optional Styled Components support |
| Vite | Full React frontend static applications |
| Fastify | High-performance Node.js backend API scaffolding |
| CLI | Command-line applications powered by Commander |
| Command | Alias | Description |
|---|---|---|
stack create <name> | — | Initialize a new workspace |
stack g <name> | — | Generate a new package (Library, React, Vite, Fastify, or CLI) |
stack link [name] | l | Link a local workspace package |
stack unlink [name] | u | Remove a local package link |
Stack leverages pnpm workspaces for maximum efficiency.
packages/* — Shared libraries and configuration packagesapps/* — Deployment targets (Vite apps, Fastify APIs, CLIs)tooling/* — Shared ESLint, Prettier, and TypeScript configs# Build the entire workspacepnpm run build
# Run in watch mode for developmentpnpm run build --watch
# Smart link a package as a devDependencystack link @stack-dev/core --dev