Note
Stacks is in active development and usable today — every section below is real, runnable functionality. Expect occasional breaking changes while we cut the official 1.0. Feedback and issue reports are welcome.
Stacks is a rapid development framework, where the goal is to help you create & maintain frontends, backends, and clouds—without having to worry about the boilerplate. An all-in-one toolkit that meets all your full stack needs.
- Web & Desktop Applications (including system tray apps)
- Serverless & Traditional APIs
- Cloud Infrastructure Creation & Maintenance
- Interactive CLIs
- Framework-agnostic Component & Function Libraries
- Deployment & Release Manager (CI & CD)
As a developer, Stacks helps you every step along the way—in beginner & expert-friendly ways, allowing you to focus on the what & why of your project, all while enabling you to stay in control & ownership of your (& your users’) data.
“It is the framework’s responsibility to remove patterns that lead to boilerplate code. And Stacks is really good at that.” - Chris
Stacks runs on Bun. You'll need:
- Bun ≥ 1.3.0 — install with
curl -fsSL https://bun.sh/install | bash, or upgrade an existing install withbun upgrade. - macOS, Linux, or WSL — Windows-native is on the roadmap; today the toolchain assumes a POSIX shell.
- Node.js is NOT required. Bun handles the JS/TS runtime, package management, and bundling.
That's it for the framework itself. Individual features (Postgres, Redis, AWS deploys, etc.) bring their own prereqs — each is called out where it matters in the docs.
The fastest path, assuming Bun is installed:
bunx @stacksjs/buddy new my-projectA one-line installer (curl -Ssf stacksjs.com/install | sh) is also planned and will appear here once it lands; for now the bunx form above is the supported install path.
Stacks ships with buddy, a single CLI for everything you'll do day to day. The handful below covers the common workflows; the full reference is collapsed underneath.
buddy dev # start the dev server (frontend, API, dashboard, …)
buddy build # build for production (CLI prompts for what to build)
buddy test # run tests
buddy migrate # run database migrations
buddy make:action UpdateUser # scaffold a new Action (also: model, view, job, …)
buddy --help # show every available commandFor the full command reference, see the collapsible section below or the Buddy CLI documentation.
View the complete Buddy Toolkit
buddy --version # get the Stacks version
buddy --help # view help menu
# please note: you may suffix any command with the
# `command --help` flag to review the help menu
buddy new my-project # creates a new Stacks project
buddy install # installs dependencies
buddy add # adds a stack or dependency
buddy fresh # fresh reinstall of all deps (--force skips the confirmation)
buddy clean # removes all deps (--force skips the confirmation)
buddy setup # sets up the project initially
buddy setup:oh-my-zsh # optional: sets up Oh My Zsh with auto-completions & "aliases"
buddy upgrade # upgrades the Stacks framework (alias: buddy update)
buddy upgrade:dependencies # auto-upgrades package.json deps
buddy upgrade:shell # upgrades the shell integration
buddy upgrade:binary # upgrades the `stacks` binary
buddy upgrade:bun # upgrades to latest project-defined Bun version
buddy upgrade:all # auto-upgrades all of the above
# if you need any more info on any command listed here, you may suffix
# any of them via the "help option", i.e. `buddy ... --help`
buddy dev # starts the dev servers (frontend, api & docs)
buddy dev -i # prompts you to select which dev server to start
buddy dev:api # starts the API dev server
buddy dev:dashboard # starts the Admin/Dashboard dev server
buddy dev:desktop # starts the Desktop dev server
buddy dev:views # starts frontend dev server
buddy dev:components # starts component dev server
buddy dev:docs # starts local docs dev server
buddy dev docs # also starts the local docs dev server (dev takes the server name as an argument)
buddy share # creates a sharable link to your local project
# production servers (the same entries the deploy target runs as services)
buddy serve # starts the production HTTP server (STX views + /api proxy)
buddy serve:api # starts the production API server
# building for production (e.g. AWS, Google Cloud, npm, Vercel, Netlify, et al.)
buddy build # select a specific build (follow CLI prompts)
buddy build:frontend # builds the frontend (aliases: build:views, build:pages)
buddy build:desktop # builds Desktop application
buddy build:functions # builds function library
buddy build:components # builds Vue component library & Web Component library
buddy build:web-components # builds framework agnostic Web Component library (i.e. Custom Elements)
buddy build:cli # builds the Buddy CLI binary
buddy build:server # builds the Stacks cloud server (Docker image)
buddy build:docs # builds the documentation site
# `buddy build:*` aliases
buddy prod:components # alias for build:components
buddy prod:desktop # alias for build:desktop
buddy prod:web-components # alias for build:web-components
buddy prod:frontend # alias for build:frontend
buddy prod:cli # alias for build:cli
buddy prod:server # alias for build:server
buddy prod:docs # alias for build:docs
buddy prod:frontend-static # alias for build:frontend-static
# sets your application key
buddy key:generate
buddy make:component HelloWorld # bootstraps a HelloWorld component
buddy make:function hello-world # bootstraps a hello-world function
buddy make:view hello-world # bootstraps a hello-word page
buddy make:model Car # bootstraps a Car model
buddy make:database cars # prints guidance: tables come from models + migrations, there is no separate create step
buddy make:migration create_cars_table # creates a cars migration file
buddy make:factory cars # creates a Car factory file
buddy make:notification welcome-email # bootstraps a welcome-email notification
buddy make:lang de # bootstraps a lang/de.yml language file
buddy make:stack my-plugin # scaffolds a publishable stack/plugin (new project? use `bunx @stacksjs/buddy new`)
buddy migrate # runs database migrations
buddy migrate:fresh # drops all tables & re-runs migrations (destroys all data; --seed reseeds)
buddy migrate:dns # sets the ./config/dns.ts file
buddy seed # runs database seeders
buddy dns example.com # list all DNS records for example.com
buddy dns example.com --type MX # list MX records for example.com
buddy http example.com/api/hello # sends a GET request & prints the response
buddy http -v example.com/api/get # same, with verbose output
buddy lint # runs linter
buddy lint:fix # runs linter and fixes issues
buddy format # formats your project codebase
buddy format:check # checks formatting without making changes
buddy commit # follow CLI prompts for committing staged changes
buddy release # creates the releases for the stack & triggers the Release Action (workflow)
buddy changelog # generates CHANGELOG.md
# when deploying your app/s to a remote server or cloud provider
buddy deploy # select a specific deployment (follow CLI prompts)
buddy undeploy # be careful: "undeploys" removes/deletes your deployed resources (--yes skips the confirmation)
buddy cloud:remove # removes cloud setup
buddy cloud:cleanup # removes cloud setup & cleans up all potentially leftover resources
buddy cloud:add --jump-box # adds a jump box to your cloud setup
# you likely won’t need to run these commands as they are auto-triggered, but they are available
buddy generate # prompts you to select which generator to run
buddy generate:types # generates types for your components, functions, & views
buddy generate:entries # generates entry files for components, functions, & views
buddy generate:web-types # generates Web Component types
buddy generate:vscode-custom-data # generates VSCode custom data
buddy generate:ide-helpers # generates IDE helpers
buddy generate:component-meta # generates component meta
# generates your application key
buddy key:generate # generates your application key
# manage your environment variables
buddy env:get # get an environment variable
buddy env:set # set an environment variable
buddy env:encrypt # encrypt an environment variable
buddy env:decrypt # decrypt an environment variable
buddy env:keypair # generate a keypair
buddy env:rotate # rotate a keypair
# generate your TypeScript declarations
buddy types:generate # generates types for your components, functions, & views
buddy types:fix # auto-fixes types for your components, functions, & views
buddy domains:add stacksjs.com # adds a domain
buddy domains:remove stacksjs.com # removes a domain
buddy domains:purchase stacksjs.com # purchase a new domain
# handy utilities
buddy doctor # runs health checks on your Stacks installation
buddy list # lists all available Buddy commands
buddy route:list # lists your routes
buddy ports # checks your project for port issues & misconfigurations
buddy outdated # lists outdated project dependencies
buddy env:check # checks your environment configuration & validates setup
buddy tinker # interactive REPL with the Stacks framework preloaded
buddy down # puts the app into maintenance mode
buddy up # brings the app out of maintenance mode
# test your stack
buddy test # runs your test suite
buddy test:unit # runs unit tests
buddy test:feature # runs feature tests
buddy test:types # runs typecheck
# the published @stacksjs/buddy package ships
# `buddy`, `bud`, & `stx` bins; inside this repo
# the CLI is invoked as ./buddy
./buddy freshRead more about the Buddy CLI in the official docs — every command, every flag, every prompt explained.
The Stacks framework is a harmony of several “engines” to build any web and/or desktop application, in highly scalable & privacy-friendly ways. It consists of the following engines:
Develop dynamic UIs with helpers for atomic design, and much more.
- 🧩 Components primitive to develop user interfaces
- 🤖 Functions primitive to develop business logic (and grant your UI superpowers)
- 🎨 UI Kit modern & deeply-integrated components
- 🌐 Web “a routing & templating engine that makes sense”
- 🖥️ Desktop transforms your web app into a desktop app, plus more
- 📝 Documentation markdown-based documentation, auto-generated
- 📚 Library auto-builds & manages component & function libraries
- ⚡️ Powered by Bun, Craft, Headwind
Develop serverless (or server) functions with countless helpers to build scalable & fast APIs.
- 🪄 AI deep AI integrations to simplify building agentic workflow
- 🤖 APIs scalability & maintainability built-in
- 🏎️ Cache unified caching for DynamoDB, Redis and more
- ⚙️ CLIs create beautiful CLIs for Linux, Windows, and Mac (dependency-free binaries)
- 🛍️ Commerce own & grow your own online business with ease (SaaS-optimized)
- 📀 Database DynamoDB, SQLite, MySQL, Postgres, and more
- 👾 Errors native type-safe error handling
- 🗓️ Events functional event (front & backend) communication
- 📢 Notifications emails, SMSs, direct, and push notifications & webhooks
- 🗺️ ORM automated schemas for scale & a pretty API
- 💳 Payments unified API for one-off & subscription billing methods for Stripe
- ⚙️ Queues run any heavy workload in the background
- 🛠️ Query Builder powerful, type-safe SQL query builder
- 💬 Realtime “everything you need to build dynamic real-time apps”
- 🧭 Router smart routing, file-based or Laravel-like
- 🔎 Search Engine smart searching, advanced filtering & sorting, pagination, headless UI
- 💾 Storage a secure-by-default File API that feels right
- 🧪 Tinker a powerful TypeScript REPL
- 🌪️ Validation e2e type-safety (true frontend & backend harmony)
- 🎯 X-Ray all you need to debug, log & analyze
Develop & maintain cloud infrastructure with ease. “Imagine Vercel, Vapor and Forge having been unified.”
- ☁️ Server local development server & production-ready servers out-of-the-box
- ⛅️ Serverless on-demand, auto-scaling, zero maintenance
- ⏰ Alarms built-in cloud infrastructure monitoring to avoid surprises
- 🚏 CDN zero-config, low-latency, request life-cycle hooks, optimized request compressions (Brotli & gzip)
- 🔀 Domain version-controlled & zero-config domain management (e.g. DNS management)
- 🤖 AI fine-tune a foundational model using your application data
- 📧 Email secure & zero-setup easy-peasy@custom-domains.com mailboxes
- 🔐 Firewall native web application firewall support
- 📦 Storage unlimited cloud storage & automatic backups
- 🚜 Maintenance maintain your cloud infrastructure with ease using Buddy & Stacks
- 🚦 Infrastructure as Code version-controlled cloud infrastructure (AWS, Google next?)
Focus on coding, not publishing.
- 🚀 Deployment Manager takes the sweat out of production deployments—zero-setup push-to-deploy
- 0️⃣ Zero Downtime deploy with confidence using a zero-downtime deployment strategy
- 📫 Release Manager libraries (component & function) auto-published to npm, git helpers, and more
Convention over configuration, while staying wholly configurable. No more boilerplate.
- 💎 Automated Upgrades no need to worry about upgrading to the latest versions, Stacks upgrades you
- 🦋 Pretty Dev URLs your-project.localhost instead of localhost:3000
- 💡 IDE Integration auto-completions, inline docs & a powerful IDE setup
- 🪄 Zero-Config yet highly configurable—convention over configuration
- 💅 Linter & Formatter auto-configured & built into your IDE
- 💪🏼 Type Strong built-in e2e type-safety
- ✨ Git Workflows committing with ease
- 🚗 Auto Imports your components & functions, including date, string, array, & object helpers
- ⏩ Code Snippets goodbye to the boilerplate code—thank you Sarah Drasner
- 🔤 Spell Checker be notified once there are typos
- 🛠️ Essential Utilities powers at your fingertips. Collections, VueUse, and more
- 👥 Team Management manage your team & their permissions
- 🧪 Streamlined Testing unit & e2e tests powered by Bun, Vitest & Playwright
No matter whether you are a beginner or an expert, the approachable Stacks design allows you to learn at your own pace, using our thorough documentation covering every aspect of the framework. Stacks is extremely beginner & expert-friendly.
Develop beautiful, reactive, composable UIs without learning a new set of languages. HTML, CSS, and minimal JavaScript—that’s all you need to dive in now! Or TypeScript ✌🏼
An actual rapid application development framework for all Full Stack needs. Next-level simplicity & DX.
./buddy testPlease see our releases page for more information on what has changed recently.
Please see the Contributing Guide for details.
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with others using this package:
Join the Stacks Discord Server
“Software that is free, but hopes for a postcard.” We love receiving postcards from around the world showing where Stacks is being used! We showcase them on our website too.
Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎
We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.
- Laravel many thanks to their community
- Chris Breuer
- All Contributors
And a special thanks to Dan Scanlon for donating the stacks name on npm ✨
The MIT License (MIT). Please see LICENSE for more information.
Made with 💙
