Two repositories that are public on purpose
Everything in the PaceStreak org is private except the status page and the org's .github repo. Here is why neither should be 'fixed'.
Update, 17 October 2026: after a spell with every repository public (2 October), only
statusand.githubare public; see All of PaceStreak is open source. The reasoning below still explains why these two have to be.
Almost every PaceStreak repository is private. Two are public, and both look like mistakes to anyone tidying up. They are not.
The status page
status.pacestreak.com is built from the status repository by Upptime,
served by GitHub Pages. A status page exists for the moment when everything
else is down, and it has to be readable by anyone, without logging in, from
anywhere.
A private repository cannot serve a public GitHub Pages site on the free
plan, and a status page behind a login would be useless in exactly the
situation it exists for. So status is public, and so is its history of
checks. There is nothing secret in it: response times and up/down states for
public URLs.
The .github repository
A GitHub organisation’s .github repository does two jobs:
- Its
profile/README.mdbecomes the organisation’s public profile page. - Its health files (security policy, contributing guide and so on) apply by default to the org’s public repositories.
Make it private and the profile page stops rendering, and the shared health
files stop applying. So .github is public.
The consequence for private repositories
Shared health files never apply to private repositories, whatever the
visibility of .github. That is why every private PaceStreak repository
carries its own copy of SECURITY.md. It looks like duplication. It is the
only way the file shows up.
Both facts are now written into the project notes with the reason, because “this repo shouldn’t be public” is the sort of tidy-up that feels obviously right until it breaks something.
AlzyWelzy
Building PaceStreak. GitHub
Related
InfrastructureA status page that watches the whole stack, finally
app and api had no DNS records for most of their existence, so there was nothing to monitor - which meant status.pacestreak.com kept quietly not telling the whole story even after both went live. Fixed, plus a lesson in why a 200 from the app proves nothing about the API behind it.
2 min
InfrastructureWhere PaceStreak is now, and what stands between it and launch
A status report: what is built across the API, the app and the sites, what's tested, and the one unresolved decision (where the API runs) that everything else is waiting on.
2 min
InfrastructureHow much one small server carries
A load test of signed-in users doing what the app does all day, the first capacity numbers, and why production numbers from India say more about distance than about the server.
2 min