Thanks for your interest in contributing. This project is an open-source GDPR / RGPD registry;
Pull requests, feature requests, bug reports, and security disclosures are all welcome.
- For non-trivial changes, open an issue first so we can align on scope.
- For security issues, please do not open a public issue, follow the process in
SECURITY.md.
See README.md for the full Quick Start.
- Branch from
main:git checkout -b feature/short-nameorfix/short-name. - Commit messages try to follow Conventional Commits:
feat:,fix:,docs:,chore:,refactor:,test:... - Keep commits focused; one logical change per commit.
- Reference issues in the commit body when relevant (
Closes #123).
Run the full local check set before every push. CI runs the same steps and will fail the PR if any of them fails.
pnpm lint # ESLint across all packages
pnpm format:check # Prettier - no writes
pnpm typecheck # tsc --noEmit across all packages
pnpm build # Production build of shared + backend + frontend
pnpm test # Backend Vitest suite (Postgres must be running)
pnpm --filter @article30/backend test:coverage # backend coverage report (requires Postgres + Redis)- Avoid
anyunless justified with an eslint-disable and a comment explaining why. - Prefer editing existing files over adding new ones.
- Default to writing no comments (only when the why is non-obvious)
- Don't explain what the code does, well-named identifiers already do that.
- Keep functions small and focused. Split when a file grows unfocused.
- Backend: add a Vitest spec under
backend/test/for any new service, controller, or pipeline. - Prefer integration tests against a real Postgres over heavy mocking.
- Frontend: add a Vitest spec under
frontend/test/for components and lib helpers; add a Playwright e2e underfrontend/e2e/for new user flows.
- Prisma schema changes come with a migration (
pnpm db:migrate). -
CHANGELOG.mdupdated under## [Unreleased]. - Docs updated if behaviour changed (
README.md, or an indocs/for larger changes). - No personal data, secrets, or absolute paths introduced.
By contributing, you agree that your contributions will be licensed under the AGPL-3.0-only license.