Note
First off, thank you for taking the time to contribute to the Stacks ecosystem 💙
All projects are written using at least one (or all) of the following techologies: TypeScript, Bun, Vite, Vue, and Tauri.
Early on, it's important to note that while some of the technologies may be new to you, don't get discouraged. With basic JavaScript, HTML and CSS skills, you will get by learning on-the-fly, as you review some of the examples within the codebases. Every project is very approachable (and readable).
Head over to the repository on GitHub and click the Fork button in the top right corner.
After the project has been forked, run the following commands in your terminal:
gh repo clone stacksjs/stacks
Every project has the same steps to get started:
# Check if you have the `./pkgx.yaml` deps installed locally
# otherwise, given `pkgx` is installed, run
dev
# next, install `./node_modules`
bun install
# now, that you are set up you may run any of the following
bun dev
bun build
bun test
Check out each project's ./package.json
and you will find a few more handy scripts.
All of the tests are stored within the ./tests
project folder.
When adding or updating functionality, please ensure it is covered through the test suite. Ensure so by running bun test
, or buddy test
within Stacks contexts.
We use semantic commit messages to automate package releases. No worries, you may not be aware what this is or how it works just—the CLI will guide you. The commit process was automated to some degree, simply run bun run commit
in your terminal and follow the instructions.
For example,
# Add all changes to staging to be committed.
git add .
# Commit changes
bun run commit
buddy commit # inside Stacks context
# Push changes up to GitHub
git push
By following these minor steps, Stacks is able to automatically release new versions & generate relating local & remote changelogs.
When you're all done, head over to the repository, and click the big green Compare & Pull Request
button that should appear after you've pushed changes to your fork.
Don't expect your PR to be accepted immediately, or even accepted at all. Give the community time to vet it and see if it should be merged. Please don't be disheartened if it's not accepted. Your contribution is appreciated more than you can imagine, and even an unmerged PR can teach us a lot! Please nudge us in Discord, if you think it slipped our attention!
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub.
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
Two things are true: Stacks OSS will always stay open-source, and we do/would love to receive postcards from wherever Stacks is used! 🌍 _And we also publish them on our website.
Our address: Stacks.js, 5710 Crescent Park #107, Playa Vista 90094, CA, USA
Made with 💙