Open at both ends
One register of beers that anyone can improve, and checkins you keep on a server you choose. A permanent beer id is all that ties the two together.
What's in the bottle
One register, improved by everyone.Publish one JSON file with your own beers. First-hand, so it always wins.
brewery-feedTranscribe beers in the scriptorium, until the brewery takes over.
submission-feedA small daemon. Pulls both feeds, validates them against the spec, opens a pull request per brewery and merges it.
validate → pull requestA git repository. Every beer is a folder with a JSON file, and the folder's path is its id — for good.
A nightly snapshot of the register.
Read index/beers.json. No API key, no scraping.
Wrong ABV? Fix it and send a pull request.
Who drank what
Kept where you say.Point the app at a server: your own, a friend's, or ours. The app looks up beers in the codex itself.
OAuth 2 + PKCEKeeps your account and your key. Signs each checkin with it and publishes your feed. Anyone can run one.
server-apiSigned, immutable, published in a plain JSON feed. The beer is just its codex id.
checkin-feedPull feeds from every server, check every signature, merge.
pull · verify · mergeFollow you from any server. Cheers back.
federatedMoving house? Export your key and point the app at another server — your checkins keep their ids.
Read the specs