Skip to main content
Stremio Web is an open-source project and contributions are welcome. This guide covers the different ways you can get involved, the standards we expect, and the licensing terms that govern the project.

Ways to contribute

Report bugs

Open an issue on GitHub to report a bug or unexpected behavior. Include steps to reproduce, the platform, and any relevant logs.

Submit code

Fix a bug or implement a feature. Fork the repository, make your changes, and open a pull request.

Improve translations

Stremio translations are managed in a separate repository. Contribute missing or improved translations there.

Build addons

Addons extend Stremio with new content sources. The addon SDK is the starting point for building your own.

Opening issues

Before opening a new issue, search existing issues to avoid duplicates. When reporting a bug, include:
  • A clear description of the problem
  • Steps to reproduce
  • Expected vs. actual behavior
  • Platform and browser (or Stremio app version)
  • Any relevant console errors or screenshots
Do not spam issues asking for ETAs on open issues. This is explicitly against the project’s code of conduct.

Pull request guidelines

When submitting a pull request:
  1. Fork the repository and create a branch from master.
  2. Make sure your changes address an existing issue, or discuss the change beforehand.
  3. Follow the existing code style — run pnpm run lint before submitting.
  4. Write clear commit messages.
  5. Open the PR against the master branch and fill in the description.
Small, focused pull requests are easier to review and merge than large ones that touch many parts of the codebase.

Technologies used

Familiarize yourself with the stack before contributing:
  • React 18 — UI components and hooks
  • TypeScript / JavaScript — mixed codebase; new code should prefer TypeScript
  • Less — CSS preprocessor for all styles
  • Webpack 5 — build system with Babel and ts-loader
  • stremio-core-web — WebAssembly core that provides all business logic and state via a message-passing transport
  • i18next / react-i18next — internationalization
  • Jest — unit testing
  • ESLint — linting with typescript-eslint and @stylistic/eslint-plugin

Code of conduct

All contributors are expected to follow the Code of Conduct. The key points are: Expected behavior:
  • Use welcoming language.
  • Be respectful of differing viewpoints.
  • Accept constructive criticism.
Unacceptable behavior:
  • Harassment, trolling, or personal attacks.
  • Publishing others’ private information.
  • Submitting PRs that are entirely AI-generated without understanding the code.
  • Spamming issues about missing ETAs.
Contributors may use AI tools as a coding aid, but you must understand and verify all code you submit. PRs that are majority AI-generated content, or that include excessive AI-generated comments and docs, will not be accepted.
Violations may result in contributions being removed or the contributor being banned from the repository.

License

Stremio Web is copyright 2017-2023 Smart Code and is available under the GNU General Public License v2.0 (GPLv2). By contributing, you agree that your contributions will be licensed under the same terms. See the LICENSE.md file in the repository for the full license text.

Build docs developers (and LLMs) love