Contributing
Thanks for your interest in contributing. Quiver is a small, focused starter kit — contributions that keep it that way are most welcome.
What belongs here
Quiver is a starter template, not a general-purpose framework. Good contributions:
- Fix bugs in the framework internals (
src/framework/) - Improve test coverage or fix flaky tests
- Correct or expand documentation
- Fix tooling (Vite config, Vitest, Playwright, VitePress)
Things that are better done in your own fork:
- App-specific pages, components, or state modules
- Swapping out Arrow.js for another UI library
- Adding a backend or auth system
If you're unsure whether something belongs, open an issue first.
Reporting a bug
- Check existing issues — it may already be reported.
- Open a new issue with:
- What you expected to happen
- What actually happened
- Minimal steps to reproduce
- Node.js version and OS
Suggesting a feature
Open an issue describing the problem you're trying to solve before writing any code. This avoids effort on changes that don't fit the project's scope.
Submitting a pull request
1. Fork and set up locally:
bash
git clone https://github.com/<your-username>/quiver
cd quiver
npm install2. Create a focused branch:
bash
git checkout -b fix/route-scoringOne concern per PR. Avoid mixing bug fixes with refactors or unrelated doc edits.
3. Make your changes and run the tests:
bash
npm test # unit tests
npm run test:e2e # end-to-end testsBoth suites must pass before opening a PR.
4. Match the existing code style:
- No unnecessary comments — only add one when the why is non-obvious
- No new abstractions beyond what the change requires
- Keep components, composables, and state modules in their respective folders
5. Open the PR:
- Link the related issue if one exists
- Describe what changed and why, not just what the code does
- Keep the diff small — reviewers are humans
Development scripts
| Command | Description |
|---|---|
npm run dev | Start the Vite dev server |
npm test | Run unit tests (Vitest) |
npm run test:e2e | Run end-to-end tests (Playwright) |
npm run docs:dev | Start the documentation site locally |