Skip to main content
Xem is open source under the GPL-3.0 licence, and contributions are welcome: bug reports with steps to reproduce, focused pull requests, and documentation fixes.

Get the code

Everything lives in one repository. There are no submodules and no second checkout.
To run the whole stack on one machine, use the same installer as self-hosting: python3 devops/swarm/install.py. To work on the web app alone, follow Client setup.

Before you open a pull request

Run the checks for the component you changed. CI runs the same ones.
  • Web app: make test-frontend (TypeScript and Jest).
  • API: make test-backend (Go tests).
  • Self-hosting installer: python3 -m unittest discover -s devops/swarm -p 'test_*.py'.
  • Docs: npx mint broken-links in docs/.
If a change touches both the API and the web app, put both sides in the same pull request.

Guidelines

  • Keep pull requests focused on one change, and explain why it is needed.
  • Discuss larger changes in an issue first.
  • Never commit credentials or local .env files, and keep real keys out of examples.
  • Accessibility fixes, clearer guides and reproducible bug reports are as valuable as new features.

Get in touch

Open an issue on GitHub or email team@xem.email.