Skip to content

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

  1. Check existing issues — it may already be reported.
  2. 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 install

2. Create a focused branch:

bash
git checkout -b fix/route-scoring

One 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 tests

Both 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

CommandDescription
npm run devStart the Vite dev server
npm testRun unit tests (Vitest)
npm run test:e2eRun end-to-end tests (Playwright)
npm run docs:devStart the documentation site locally