Who this section is for
You want to build from source
Maybe to run on Windows or Linux desktop (where prebuilt binaries aren’t published yet), or to try a change before opening a PR.
You want to contribute
Bug fixes, new privacy-label parsers, additional locales, or new dashboard widgets.
You're integrating with the API
Building tools on top of privacytracker’s
app/api/** routes — e.g. piping snapshots into your own data pipeline.You want to understand internals
The data flow, the three crash-safe runners, the focus-driven feature-flag system, or the translations workflow.
Where to start
1
Build from source
Clone the repo, install Node 24, and run
npm run dev. Full walkthrough in Build from source.2
Read the architecture overview
Architecture covers the codebase shape, the seven-step scrape→snapshot→diff→notify loop, the SQLite model, and the three crash-safe bulk runners.
3
Understand the feature-flag system
Every user-facing surface is gated by a focus model: audience × goals × accessibility. Feature flags explains the resolver, the storage model, and how to add a new flag.
4
Contribute translations
locales/en.json is the source of truth. Other locales round-trip through Crowdin. See Translations for the workflow.Tooling
Day-to-day commands you’ll actually use:Repo layout at a glance
Reporting issues
github.com/privacykey/privacytracker/issues. Bug reports use thebug_report.yml template; security reports follow SECURITY.md.