{"id":13429298,"url":"https://github.com/stacksjs/stacks","last_synced_at":"2025-04-12T03:44:58.651Z","repository":{"id":37003075,"uuid":"485650081","full_name":"stacksjs/stacks","owner":"stacksjs","description":"⚛️ Modern full-stack framework. Develop powerful apps, clouds \u0026 framework-agnostic libraries—faster.","archived":false,"fork":false,"pushed_at":"2025-04-12T00:27:09.000Z","size":128507,"stargazers_count":573,"open_issues_count":189,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-12T03:44:11.172Z","etag":null,"topics":["apps","cloud","desktop","framework","library","mobile","progressive","stacks","type-safe","typescript","web"],"latest_commit_sha":null,"homepage":"https://stacksjs.netlify.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stacksjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["stacksjs","chrisbbreuer"],"open_collective":"stacksjs"}},"created_at":"2022-04-26T05:46:57.000Z","updated_at":"2025-04-11T16:39:27.000Z","dependencies_parsed_at":"2023-12-18T21:50:44.476Z","dependency_job_id":"3b98857f-c4e3-49f2-a0e9-3d32e8364e03","html_url":"https://github.com/stacksjs/stacks","commit_stats":{"total_commits":6112,"total_committers":15,"mean_commits":"407.46666666666664","dds":0.3036649214659686,"last_synced_commit":"a32cc579913a3f4e6a025c41beff35f00874f46e"},"previous_names":["openwebstacks/stacks-starter","ow3org/stacks","openwebstacks/stacks-framework"],"tags_count":477,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacksjs%2Fstacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacksjs%2Fstacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacksjs%2Fstacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stacksjs%2Fstacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stacksjs","download_url":"https://codeload.github.com/stacksjs/stacks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514214,"owners_count":21116899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps","cloud","desktop","framework","library","mobile","progressive","stacks","type-safe","typescript","web"],"created_at":"2024-07-31T02:00:33.482Z","updated_at":"2025-04-12T03:44:58.630Z","avatar_url":"https://github.com/stacksjs.png","language":"TypeScript","readme":"![Social Card of Stacks](./public/images/logos/social.jpg)\n\n# Rapid App \u0026 Library Development\n\n[![npm version][npm-version-src]][npm-version-href]\n[![GitHub Actions][github-actions-src]][github-actions-href]\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n\u003c!-- [![Codecov][codecov-src]][codecov-href] --\u003e\n\n\u003e [!WARNING]\n\u003e Stay tuned. Open Beta coming soon.\n\nStacks is a rapid development framework, where the goal is to _help you_ create \u0026 maintain frontends, backends, and clouds—without having to worry about the boilerplate. _An all-in-one toolkit that meets all your full stack needs._\n\n- Web \u0026 Desktop Applications _(including system tray apps)_\n- Serverless \u0026 Traditional APIs\n- Cloud Infrastructure Creation \u0026 Maintenance\n- Interactive CLIs\n- Framework-agnostic Component \u0026 Function Libraries\n- Deployment \u0026 Release Manager _(CI \u0026 CD)_\n\n## Convention Over Configuration\n\nAs a developer, Stacks helps you every step along the way—in beginner \u0026 expert-friendly ways, allowing you to focus on the _what \u0026 why_ of your project, all while enabling you to stay in control \u0026 ownership of your _(\u0026 your users’)_ data.\n\n\u003e “It is the framework’s responsibility to remove patterns that lead to boilerplate code. And Stacks is really good at that.” _- Chris_\n\n\u003c!-- ![Atomic UI \u0026 FX Design](./docs/assets/diagram.png) --\u003e\n\n## Get Started\n\nIt’s incredibly easy to get started with this framework. Simply run the following command in your terminal:\n\n```bash\ncurl -Ssf stacksjs.org/install | sh # wip\n\n# alternatively, if Bun \u003e= v1.2.5 is installed already,\n# you may also get started via:\nbunx buddy new my-project\n```\n\n## Usage\n\nThe following list includes some of the most common ways to interact with the Stacks API.\n\n_Meet the toolkit, Buddy:_\n\n```bash\nbuddy install # installs all dependencies\nbuddy dev # starts one of the dev servers (frontend, API, components, docs, desktop, etc.)\nbuddy share # creates a sharable link of your local project\nbuddy build # follow CLI prompts to select which library (or server) to build\nbuddy commit # follow CLI prompts for committing changes\nbuddy release # creates the releases for the stack \u0026 consequently, publishes them to npm\nbuddy upgrade # auto-update all deps \u0026 the Stacks framework\n\nbuddy make:component HelloWorld # scaffolds a Component\nbuddy make:function HelloWorld # scaffolds a Function\nbuddy make:model Car # scaffolds a Model\nbuddy make:action UpdateCar # scaffolds an Action\nbuddy make:migration create_cars_table # scaffolds a Migration\nbuddy make:view Car # scaffolds a Page (https://my-project.test/car)\nbuddy make:command Inspire # scaffolds a Command\nbuddy make:job SendEmail # scaffolds a Job\nbuddy make:middleware Logger # scaffolds a new Middleware\nbuddy make:notification WelcomeEmail # scaffolds a Notification\nbuddy make:lang de # scaffolds a language file\n\nbuddy list # lists all available commands\nbuddy --help\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eView the complete Buddy Toolkit\u003c/summary\u003e\n\n```bash\nbuddy --version # get the Stacks version\nbuddy --help # view help menu\n# please note: you may suffix any command with the\n# `command --help` flag to review the help menu\n\nbuddy install # installs dependencies\nbuddy add # adds a stack or dependency\nbuddy fresh # fresh reinstall of all deps\nbuddy clean # removes all deps\nbuddy setup # sets up the project initially\nbuddy setup:oh-my-zsh # optional: sets up Oh My Zsh with auto-completions \u0026 \"aliases\"\n\nbuddy upgrade # upgrades all dependencies\nbuddy upgrade -i # prompts you to select which updates to apply (wip)\nbuddy upgrade:dependencies # auto-upgrades package.json deps\nbuddy upgrade:framework # auto-upgrades deps \u0026 the Stacks framework\nbuddy upgrade:search-engine # auto-upgrades configured search engine\nbuddy upgrade:shell # upgrades the shell integration\nbuddy upgrade:binary # upgrades the `stacks` binary\nbuddy upgrade:bun # upgrades to latest project-defined Bun version\nbuddy upgrade:all # auto-upgrades all of the above\n\n# if you need any more info on any command listed here, you may suffix\n# any of them via the \"help option\", i.e. `buddy ... --help`\n\nbuddy dev # starts the frontend dev server\nbuddy dev -i # prompts any of the dev servers (components, functions, views, docs, or api)\nbuddy dev:api # starts the API dev server\nbuddy dev:dashboard # starts the Admin/Dashboard dev server\nbuddy dev:desktop # starts the Desktop dev server\nbuddy dev:views # starts frontend dev server\nbuddy dev:components # starts component dev server\nbuddy dev:functions # stubs functions\nbuddy dev:docs # starts local docs dev server\nbuddy dev docs # also starts the local docs dev server (colon is optional for all commands)\nbuddy development # `buddy dev` alias\n\nbuddy share # creates a sharable link to your local project\n\n# for Laravel folks, `serve` may ring more familiar than the `dev` name. Hence, we aliased it:\nbuddy serve\nbuddy serve:components\nbuddy serve:desktop\nbuddy serve:views\nbuddy serve:functions\nbuddy serve:docs\n\n# building for production (e.g. AWS, Google Cloud, npm, Vercel, Netlify, et al.)\nbuddy build # select a specific build (follow CLI prompts)\nbuddy build:views # builds SSG views\nbuddy build:desktop # builds Desktop application\nbuddy build:library # builds any or all libraries\nbuddy build:functions # builds function library\nbuddy build:components # builds Vue component library \u0026 Web Component library\nbuddy build:web-components # builds framework agnostic Web Component library (i.e. Custom Elements)\nbuddy build:vue-components # builds Vue 2 \u0026 3-ready Component library\nbuddy build:all # builds all your code\n\n# `buddy build` aliases\nbuddy prod\nbuddy prod:components\nbuddy prod:desktop\nbuddy prod:library\nbuddy prod:views\nbuddy prod:functions\nbuddy prod:vue-components\nbuddy prod:web-components\nbuddy prod:all\nbuddy production # `buddy prod` alias\n\n# sets your application key\nbuddy key:generate\n\nbuddy make:component HelloWorld # bootstraps a HelloWorld component\nbuddy make:function hello-world # bootstraps a hello-world function\nbuddy make:view hello-world # bootstraps a hello-word page\nbuddy make:model Car # bootstraps a Car model\nbuddy make:database cars # creates a cars database\nbuddy make:migration create_cars_table # creates a cars migration file\nbuddy make:factory cars # creates a Car factory file\nbuddy make:table cars # bootstraps a cars data table\nbuddy make:notification welcome-email # bootstraps a welcome-email notification\nbuddy make:lang de # bootstraps a lang/de.yml language file\nbuddy make:stack my-project # shares logic with `bunx --bun stacks new my-project`\n\nbuddy migrate # runs database migrations\nbuddy migrate:dns # sets the ./config/dns.ts file\n\nbuddy dns example.com # list all DNS records for example.com\nbuddy dns example.com --type MX # list MX records for example.com (proxies dog)\n\nbuddy https httpie.io/hello\n# http [flags] [METHOD] URL [ITEM [ITEM]]\nbuddy http --help\nbuddy http PUT pie.dev/put X-API-Token:123 name=John # Custom HTTP method, HTTP headers and JSON data\nbuddy http -v pie.dev/get # See the request that is being sent using one of the output options\nbuddy http -f POST pie.dev/post hello=World # submitting forms\nbuddy http --offline pie.dev/post hello=offline\nbuddy http -a USERNAME POST https://api.github.com/repos/httpie/cli/issues/83/comments body='HTTPie is awesome! :heart:'\nbuddy http pie.dev/post \u003c files/data.json\nbuddy http pie.dev/image/png \u003e image.png\nbuddy http --download pie.dev/image/png\nbuddy http --session=logged-in -a username:password pie.dev/get API-Key:123\nbuddy http --session=logged-in pie.dev/headers\nbuddy http localhost:8000 Host:example.com\n\nbuddy lint # runs linter\nbuddy lint:fix # runs linter and fixes issues\n\nbuddy commit # follow CLI prompts for committing staged changes\nbuddy release # creates the releases for the stack \u0026 triggers the Release Action (workflow)\nbuddy changelog # generates CHANGELOG.md\n\n# when deploying your app/s to a remote server or cloud provider\nbuddy deploy # select a specific deployment (follow CLI prompts)\n# buddy deploy:docs # deploys docs to AWS (or other configured provider)\n# buddy deploy:functions # deploys functions to AWS (or other configured provider)\n# buddy deploy:views # deploys views to AWS (or other configured provider)\n# buddy deploy:all # deploys all your code\nbuddy undeploy # be careful: \"undeploys\" removes/deletes your deployed resources\n\nbuddy cloud:remove # removes cloud setup\nbuddy cloud:cleanup # removes cloud setup \u0026 cleans up all potentially leftover resources\nbuddy cloud:add --jump-box # adds a jump box to your cloud setup\n\n# select the example to run (follow CLI prompts)\nbuddy example # prompts you to select which example to run\nbuddy example:vue # runs the Vue example\nbuddy example:web-components # runs the Web Component example\n\n# you likely won’t need to run these commands as they are auto-triggered, but they are available\nbuddy generate  # prompts you to select which generator to run\nbuddy generate:types # generates types for your components, functions, \u0026 views\nbuddy generate:entries # generates entry files for components, functions, \u0026 views\nbuddy generate:web-types # generates Web Component types\nbuddy generate:vscode-custom-data # generates VSCode custom data\nbuddy generate:ide-helpers # generates IDE helpers\nbuddy generate:component-meta # generates component meta\nbuddy generate:all # runs all generators\n\n# generates your application key\nbuddy key:generate # generates your application key\n\n# manage your environment variables\nbuddy env:get # get an environment variable\nbuddy env:set # set an environment variable\nbuddy env:encrypt # encrypt an environment variable\nbuddy env:decrypt # decrypt an environment variable\nbuddy env:keypair # generate a keypair\nbuddy env:rotate # rotate a keypair\n\n# generate your TypeScript declarations\nbuddy types:generate # generates types for your components, functions, \u0026 views\nbuddy types:fix # auto-fixes types for your components, functions, \u0026 views\n\nbuddy domains # alias for `buddy domains:list`\nbuddy domains:add stacksjs.org # adds a domain\nbuddy domains:remove stacksjs.org # removes a domain\nbuddy domains:list # lists all domains\nbuddy domains:update # apply ./config/dns.ts updates\nbuddy domains:purchase stacksjs.org # purchase a new domain\n\n# test your stack\nbuddy test # runs test suite (unit \u0026 e2e)\nbuddy test:coverage # runs test coverage\nbuddy test:types # runs typecheck\n\n# the CLI may be triggered in any\n# of the following syntax:\nstx fresh\nbuddy fresh\nbud fresh\n```\n\n\u003c/details\u003e\n\nRead more here about the Stacks CLI in the documentation.\n\n## Features\n\nThe Stacks framework is a harmony of several “engines” to build any web and/or desktop application, in highly scalable \u0026 privacy-friendly ways. It consists of the following engines:\n\n### Frontend Development\n\n_Develop dynamic UIs with helpers for atomic design, and much more._\n\n- 🧩 **Components** _primitive to develop user interfaces_\n- 🤖 **Functions** _primitive to develop business logic (and grant your UI superpowers)_\n- 🎨 **UI Kit** _modern \u0026 deeply-integrated components_\n- 🌐 **Web** _“a routing \u0026 templating engine that makes sense”_\n- 🖥️ **Desktop** _transforms your web app into a desktop app, plus more_\n- 📝 **Documentation** _markdown-based documentation, auto-generated_\n- 📚 **Library** _auto-builds \u0026 manages component \u0026 function libraries_\n- ⚡️ Powered by Bun, Tauri, UnoCSS, Vite, VitePress and Vue\n\n### Backend Development\n\n_Develop serverless (or server) functions with countless helpers to build scalable \u0026 fast APIs._\n\n- 🪄 **AI** _deep AI integrations \u0026 foundational model access_\n- 🤖 **APIs** _scalability \u0026 maintainability built-in_\n- 🏎️ **Cache** _unified caching for DynamoDB, Redis and more_\n- ⚙️ **CLIs** _create beautiful CLIs for Linux, Windows, and Mac (dependency-free binaries)_\n- 🛍️ **Commerce** _own \u0026 grow your own online business with ease (SaaS-optimized)_\n- 📀 **Database** _DynamoDB, SQLite, MySQL, Postgres, and more_\n- 👾 **Errors** _native type-safe error handling_\n- 🗓️ **Events** _functional event (front \u0026 backend) communication_\n- 📢 **Notifications** _emails, SMSs, direct, and push notifications \u0026 webhooks_\n- 🗺️ **ORM** _automated schemas for scale \u0026 a pretty API_\n- 💳 **Payments** _unified API for one-off \u0026 subscription billing methods for Stripe_\n- ⚙️ **Queues** _run any heavy workload in the background_\n- 🛠️ **Query Builder** _powerful, type-safe SQL query builder_\n- 💬 **Realtime** _“everything you need to build dynamic real-time apps”_\n- 🧭 **Router** _smart routing, file-based or Laravel-like_\n- 🔎 **Search Engine** _smart searching, advanced filtering \u0026 sorting, pagination, headless UI_\n- 💾 **Storage** _a secure-by-default File API that feels right_\n- 🧪 **Tinker** _a powerful TypeScript REPL_\n- 🌪️ **Validation** _e2e type-safety (true frontend \u0026 backend harmony)_\n- 🎯 **X-Ray** _all you need to debug, log \u0026 analyze_\n\n### Cloud Development\n\n_Develop \u0026 maintain cloud infrastructure with ease. “Imagine Vercel, Vapor and Forge having been unified.”_\n\n- ☁️ **Server** _local development server \u0026 production-ready servers out-of-the-box_\n- ⛅️ **Serverless** _on-demand, auto-scaling, zero maintenance_\n- ⏰ **Alarms** _built-in cloud infrastructure monitoring to avoid surprises_\n- 🚏 **CDN** _zero-config, low-latency, request life-cycle hooks, optimized request compressions (Brotli \u0026 gzip)_\n- 🔀 **Domain** _version-controlled \u0026 zero-config domain management (e.g. DNS management)_\n- 🤖 **AI** _fine-tune a foundational model using your application data_\n- 📧 **Email** _secure \u0026 zero-setup \u003ceasy-peasy@custom-domains.com\u003e mailboxes_\n- 🔐 **Firewall** _native web application firewall support_\n- 📦 **Storage** _unlimited cloud storage \u0026 automatic backups_\n- 🚜 **Maintenance** _maintain your cloud infrastructure with ease using Buddy \u0026 Stacks_\n- 🚦 **Infrastructure as Code** _version-controlled cloud infrastructure (AWS, Google next?)_\n\n### CI/CD\n\n_Focus on coding, not publishing._\n\n- 🚀 **Deployment Manager** _takes the sweat out of production deployments—zero-setup push-to-deploy_\n- 0️⃣ **Zero Downtime** _deploy with confidence using a zero-downtime deployment strategy_\n- 📫 **Release Manager** _libraries (component \u0026 function) auto-published to npm, git helpers, and more_\n\n### Developer Experience (DX)\n\nConvention over configuration, while staying wholly configurable. _No more boilerplate._\n\n- 💎 **Automated Upgrades** _no need to worry about upgrading to the latest versions, Stacks upgrades you_\n- 🦋 **Pretty Dev URLs** _your-project.localhost instead of localhost:3000_\n- 💡 **IDE Integration** _auto-completions, inline docs \u0026 a powerful IDE setup_\n- 🪄 **Zero-Config** _yet highly configurable—convention over configuration_\n- 💅 **Linter \u0026 Formatter** _auto-configured \u0026 built into your IDE_\n- 💪🏼 **Type Strong** _built-in e2e type-safety_\n- ✨ **Git Workflows** _committing with ease_\n- 🚗 **Auto Imports** _your components \u0026 functions, including date, string, array, \u0026 object helpers_\n- ⏩ **Code Snippets** _goodbye to the boilerplate code—thank you Sarah Drasner_\n- 🔤 **Spell Checker** _be notified once there are typos_\n- 🛠️ **Essential Utilities** _powers at your fingertips. Collections, VueUse, and more_\n- 👥 **Team Management** _manage your team \u0026 their permissions_\n- 🧪 **Streamlined Testing** _unit \u0026 e2e tests powered by Bun, Vitest \u0026 Playwright_\n\nNo 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 \u0026 expert-friendly.\n\nDevelop 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 ✌🏼_\n\n\u003e _An actual rapid application development framework for all Full Stack needs. Next-level simplicity \u0026 DX._\n\n## Testing\n\n```bash\n./buddy test\n```\n\n## Changelog\n\nPlease see our [releases](https://github.com/stacksjs/stacks/releases) page for more information on what has changed recently.\n\n## Contributing\n\nPlease see the [Contributing Guide](https://github.com/stacksjs/contributing) for details.\n\n## Community\n\nFor help, discussion about best practices, or any other conversation that would benefit from being searchable:\n\n[Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)\n\nFor casual chit-chat with others using this package:\n\n[Join the Stacks Discord Server](https://discord.gg/stacksjs)\n\n## Postcardware\n\n“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.\n\nOur address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎\n\n## Sponsors\n\nWe 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.\n\n- [JetBrains](https://www.jetbrains.com/)\n- [The Solana Foundation](https://solana.com/)\n\n## Credits\n\n- [Laravel](https://laravel.com) _many thanks to their community_\n- [Chris Breuer](https://github.com/chrisbbreuer)\n- [All Contributors](../../contributors)\n\nAnd a special thanks to [Dan Scanlon](https://twitter.com/danscan) for donating the `stacks` name on npm ✨\n\n## License\n\nThe MIT License (MIT). Please see [LICENSE](LICENSE.md) for more information.\n\nMade with 💙\n\n\u003c!-- Badges --\u003e\n[npm-version-src]: https://img.shields.io/npm/v/stacks?style=flat-square\n[npm-version-href]: https://npmjs.com/package/stacks\n\n[npm-downloads-src]: https://img.shields.io/npm/dm/stacks?style=flat-square\n[npm-downloads-href]: https://npmjs.com/package/stacks\n\n[github-actions-src]: https://img.shields.io/github/actions/workflow/status/stacksjs/stacks/ci.yml?style=flat-square\u0026branch=main\n[github-actions-href]: https://github.com/stacksjs/stacks/actions?query=workflow%3Aci\n\n\u003c!-- [codecov-src]: https://img.shields.io/codecov/c/gh/stacksjs/stacks/main?style=flat-square\n[codecov-href]: https://codecov.io/gh/stacksjs/buddy --\u003e\n","funding_links":["https://github.com/sponsors/stacksjs","https://github.com/sponsors/chrisbbreuer","https://opencollective.com/stacksjs"],"categories":["TypeScript","cloud","Resources"],"sub_categories":["Official Resources"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacksjs%2Fstacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstacksjs%2Fstacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstacksjs%2Fstacks/lists"}