All of PaceStreak is open source
The app, the API, both sites and the infrastructure notes are now public on GitHub under AGPL-3.0. What that took, and what was checked first.
Update, 17 October 2026: every repository is private again except
statusand.github, which have to be public. This post describes 2 October, when all eight were public.
Until today only two PaceStreak repositories were public: the
status page and the org’s .github repo,
both because they stop working otherwise. As of today all eight are, at
github.com/PaceStreak:
app, the product, a React PWA;api, FastAPI, Postgres, Redis and the worker;webandblog, the two static sites;infra, the topology, decisions and runbook;pacestreak, the root that pins them all together;- plus
statusand.github, which already were.
Why
PaceStreak asks people to log things they would not tell most friends: their weight, what they eat, their mood, and the habit they are trying to break. The security page and the privacy policy say what happens to that data. Now the code that does it is there to check against them. A claim like “habits are never shown to anyone else” is easier to believe when the query that builds a leaderboard is one click away.
Everything was already licensed AGPL-3.0, which was always the plan: anyone running a modified PaceStreak as a service has to offer their users the source too.
What was checked before flipping the switch
Making a repository public publishes its whole history, not just its current files, so the history was what got checked:
- Secrets. Every commit in every repository was scanned with
gitleaks, and every path ever
committed was checked for
.envfiles, keys and certificates. Nothing. Production credentials have only ever lived in environment variables on the server and in GitHub Actions secrets, and keys are injected as PEM environment variables rather than files, which paid off here. - Authorship. Commit messages were cleaned of tool-generated trailers, and the root repository’s submodule pins were rewritten to match, so every historical pin still resolves to a real commit.
- The security policy. Each repository’s
SECURITY.mdused to explain that it existed because the org-wide one doesn’t apply to private repositories. That reason is gone; the files stay, so the policy travels with a fork.
What doesn’t change
Reporting a vulnerability still goes to hello@pacestreak.com, never a public issue. Nothing about how data is stored or who can see it changes; that was never protected by the code being hidden, and it shouldn’t have been.
Contributions are welcome. Open an issue first for anything bigger than a typo; CONTRIBUTING.md says which repository owns what.
AlzyWelzy
Building PaceStreak. GitHub
Related
Security & PrivacyScanning barcodes without the camera permission
The app's Permissions-Policy says camera=(). Barcode scanning shipped anyway, by reading a photo instead of a video stream, and the lookup sends the barcode and nothing else.
1 min
Security & PrivacyFive reactions and a coach's overview
Kudos can now be one of five preset reactions, with nothing typed and nothing to moderate. And coaches get one screen for everyone who shares their training with them, consent checked exactly as before.
1 min
Security & PrivacyEmailing you your own data, carefully
The monthly backup email can now carry the export itself. It was held back for a privacy reason, then built behind a second opt-in with a plain warning. Here's the trade-off and how it's guarded.
1 min