How the record is built
Everything lives in one public repo. No servers, no database — just files, pull requests, and two gates: automated checks confirm the format (all five sections present, links alive), and a human confirms it's real before anything publishes.
Add a story, the developer way
- Copy the template
Copy entries/template.md to entries/NNN-your-story-name.md using the next number.
- Fill in all five sections
Problem, Solution, Artifact, Human, License. The Artifact section must link the working thing.
- Open a pull request
The PR template carries the checklist. An automated check verifies your sections and link health.
- Merge publishes
A maintainer reviews, merges, and the site rebuilds automatically.
Automated checks
What does the entry check do?
On every pull request that touches entries/*.md, it confirms all five required sections exist and requests every link in the Artifact section. Anything missing or dead fails the check, and the results are posted on the PR.
How does the site deploy?
Every push to main builds the React + Vite site and deploys the static output to GitHub Pages at bloomproof.org. The custom domain is pinned by a CNAME file.
Can I run my own copy?
Yes — fork the repo and host it anywhere static files go. That is the point: the record belongs to everyone, so it belongs to no one.
Run your own mirror
Every independent copy makes the record harder to shut down. Three steps:
- Fork the repo
One click gives you your own full copy of every story and the site.
- Enable GitHub Pages
Settings → Pages → deploy with GitHub Actions. Your mirror is live in about a minute.
- Done
Pull from upstream whenever you like to stay current. Tell people your mirror exists.
