Contributing
Contributor docs live in the repository, next to the code they describe:
CONTRIBUTING.md— dev loop, test and lint commands, the API contract fixtures, PR title format, the CLA.CONTEXT.md— the domain vocabulary. Read it before naming anything.docs/adr/— architecture decision records: why the app is localhost-only, why rendering shells out to Typst, why the frontend types are held to the backend by fixtures, and so on. Read the relevant one before proposing to change something structural.SECURITY.md— how to report a vulnerability, and which documented designs are not vulnerabilities.
Nothing is duplicated here on purpose: documentation that lives beside the code is the documentation that gets updated with the code.
The short version
Section titled “The short version”- Open an issue before anything large.
- Branch from
main; PR titles are Conventional Commits (CI checks this). - A structural decision gets an ADR in the same PR.
- User-facing behaviour changes update these docs in the same PR.
- Sign the CLA on your first PR — it keeps the project’s licensing options open while your work stays available to everyone under the AGPL.