Contributing to Clappr
August 19, 2026 · View on GitHub
Thanks for your interest in Clappr. This guide covers how to report issues, propose changes, and submit pull requests.
Please read and follow our Code of Conduct.
Did you find a bug?
- Search first on Issues to see if it was already reported.
- If not, open a new issue via New issue and choose Bug Report.
- Include as much detail as you can: player version, browser, OS, configuration, and steps to reproduce.
Do you have a question?
Do you want a new feature?
- Open New issue and choose Feature Request before starting large work.
- Describe the problem and the solution you have in mind so maintainers can discuss scope early.
- We may decline changes that significantly increase bundle size or hurt streaming performance.
Did you write a patch?
- Fork the repository and create a branch from
main. - Make your changes and keep the pull request focused.
- Open a pull request with a clear description of the problem and solution.
- Link the related issue when applicable.
Before submitting, make sure CI checks pass locally:
yarn lint
yarn format:check
yarn test
yarn build
yarn build:dist && yarn test:smoke
For a local player demo (http://localhost:8080), run yarn dev. Sibling packages are resolved from source; do not build them first.
Development setup
Requires Node.js ≥ 24 (see .nvmrc; with nvm, run nvm install then nvm use before any yarn command). Yarn 1 enforces the root engines field and aborts every yarn command on older Node versions — including yarn lint, yarn test, and yarn format:check above.
Shared tooling (Babel, ESLint, browserslist, and any dependency used by 2+ packages) lives at the workspace root — see Dependencies and shared config in AGENTS.md before adding or bumping a tool.
See the README for:
Commit messages
Use Conventional Commits:
type(scope): description
Examples: fix(core): restore volume after unmute, docs(player): clarify autoplay options.
Commit messages are validated by commitlint via Husky.
Coding expectations
- Follow ESLint and Prettier (run
yarn lintandyarn format:check). - Test behavior, not implementation details.
- Clean up timers, listeners, observers, connections, media elements, and Blob URLs.
- Do not commit secrets, tokens, or
.envfiles. - Ask maintainers before adding new dependencies — bundle size and maintenance matter in a media player.
- Sourcemaps: an artifact in
dist/gets a map iff it is a package/exportsentry, a documented consumer entry point, or minified — see Releasing → Sourcemaps.
Documentation and plugins
Documentation lives under apps/clappr.io/docs/. See the README Documentation section for the full index.
To build a plugin, start with the Plugin Development Guide.
License
By contributing, you agree that your contributions will be licensed under the BSD 3-Clause License.