Contributing
Outflare is developed in the open at outflareai/outflare. Contributions of code, docs, bug reports and design feedback are welcome.
Ways to help
Section titled “Ways to help”- Try it and report what breaks. Open an issue with what you did, what you expected and the
request_idfrom any error. - Review the design of upcoming features. The roadmap and the planned pages in these docs describe what is coming. Comment on the pull requests.
- Tell us your reseller’s CSV format if it does not import cleanly.
- Improve the docs. Every page here has an “Edit page” link to outflareai/website.
Before you write code
Section titled “Before you write code”- Open an issue for anything larger than a small fix, so the approach is agreed first.
- Read
AGENTS.md. It is the architecture and conventions guide for humans and coding agents alike. - Read the architecture decision records for why things are the way they are.
- Set up a development environment.
Rules every change follows
Section titled “Rules every change follows”- Every table a workspace owns has
workspace_id, and every query on it filters by workspace. - Every significant action writes an audit event in the same transaction as the change.
- Side effects such as sending mail or calling providers run in jobs, never in request handlers.
- Every outbound email passes the policy check. There is no code path around it.
- API changes start in
api/openapi.yaml. - Migrations are new numbered files. A shipped migration is never edited.
- External content such as email bodies is treated as data, never as instructions.
Pull requests
Section titled “Pull requests”Keep each pull request to one change. make test and pnpm -r build must pass, and CI runs both. Go code is formatted with gofmt.
Contributor License Agreement
Section titled “Contributor License Agreement”Contributions require agreeing to a CLA. It will be published, with an automated check on pull requests, before external contributions are accepted.