Contributing
Where to get help, share ideas, report bugs, and contribute to Blame.
Blame is open source (AGPL-3.0), and bug reports, documentation fixes, and focused pull requests are all welcome. This documentation lives in the repository too: every page has an Edit this page on GitHub link.
Where to talk
- Chat, help, and show what you built: Discord
- Questions and ideas: GitHub Discussions, in Q&A or Ideas
- Bugs and feature requests: GitHub Issues. For a bug, include the steps to reproduce it, your platform and Blame version, and the relevant logs.
- Security reports: privately, as described in SECURITY.md. Please do not open a public issue.
Contribute code
Start with CONTRIBUTING.md: it covers the development setup, the checks to run, and how the repository is organized. In short:
- For a substantial feature or an architectural change, open an issue or a discussion first, so we can agree on the approach before you write the code.
- Keep each pull request focused on one problem. Explain the problem, the change, and how you verified it.
- Add or update tests for the behavior you change, and run the checks before opening the pull request.
- Use Conventional Commits for commit messages and pull request titles, for example
fix(preview): recover an interrupted session.
Issues labeled good first issue and help wanted are good places to start. Contributions are accepted under the project's AGPL-3.0 license, and everyone taking part follows the code of conduct.
Build from source
Blame is a TypeScript monorepo (pnpm and Turborepo): an Electron desktop app, a React interface, an AdonisJS API, and the agent runtime.
git clone https://github.com/rchrp/Blame.git
cd Blame
corepack enable
pnpm install --frozen-lockfileYou need Node.js 24 and Git. A local MySQL 8.4 database is only needed to work on accounts and hosted services: without an account, the desktop app runs the API on SQLite by itself. CONTRIBUTING.md walks through the rest, and RELEASING.md covers packaging and releases.
Edit these docs
The pages are MDX files in packages/vitrine/content/docs, and each folder's meta.json sets the order of the sidebar. To preview your change, run the website:
pnpm --filter @blame/vitrine devthen open localhost:3000/docs.