Checkpoint
Bobi Labs · personal build
Role
PM-builder · personal build
Duration
Live during the 2026 run · retired to static at the finish
Status
Live · fully static · zero maintenance

The tracker. Per-region progress across base game + DLC, five-state entry cycling, filters, search, and paste-ready export of what's left.
The problem
A full completionist sweep of Elden Ring plus its DLC is a data problem wearing a hobby costume: over 1,000 trackable entries across regions, categories, questlines, talismans, spells, and builds, with two dozen NPC questlines whose steps are permanently missable if done out of order. The existing tooling is wikis in seventeen browser tabs and a spreadsheet that goes stale by the second session.
The run also needed a live co-pilot, not a postmortem: what is left in this region, which questline step is about to get locked out, what does the endgame build actually need. And when the run ended, the tracker should not become a monthly hosting bill for a finished hobby.
The approach
Built as a live tracker during the run: Supabase (Postgres jsonb) with atomic single-key RPC writes for instant status cycling, and JSON datasets per game compiled and cross-checked by scripted multi-source research passes rather than hand-transcribed from wikis.
When the run finished, the backend was retired on purpose. Progress was frozen into a static snapshot, visitor edits overlay it via localStorage, and the whole thing ships as a fully prerendered static build under /elden. No server, no database, nothing to expire or pay for.
The shell is multi-game: Zelda and The Last of Us tabs are scaffolded and seeded, waiting for their runs, and a Games Board tracks playing / up next / backlog / completed.
What shipped
- ▪Region and category views with per-section progress over 1,000+ entries, five-state entry cycling, filtering, search, and paste-ready "export remaining" text.
- ▪24 questlines with per-step missable warnings.
- ▪Builds tab with six verified endgame loadouts (stats, talismans, physick, armor reasoning), finished at NG++ level 285 with the complete DLC.
- ▪Games Board plus scaffolded tracker tabs for the next runs.
- ▪The retirement: frozen progress snapshot + localStorage overlay + fully static export, replacing the live Supabase backend with zero-cost hosting.
Stack & decisions
Next.js + TypeScript
App Router, fully static export, every route prerendered under basePath /elden. Tailwind for the night-sky theme.
JSON datasets
Per-game data compiled by scripted multi-source research passes and verified against the run itself. The dataset is the product; the UI is a lens on it.
localStorage
Visitor edits overlay the frozen snapshot client-side. Your progress is yours, in your browser, with no account and no server-side storage.
Supabase (retired)
Powered the live run with jsonb + atomic single-key RPC writes, then was removed cleanly at the finish. Knowing when a backend should die is part of the architecture.
Outcome
- →The run finished: base game, Haligtree, complete DLC, six saved builds, NG++ at level 285. The tracker is the record of the whole thing.
- →Retired to a fully static portfolio piece with zero hosting cost and zero maintenance, still interactive for visitors.
- →The pattern (static app + localStorage persistence, no accounts, no server) became the template for Bobi Labs' free-tool releases.
Have something we should ship?
60-minute scoping call, then a clear plan for how we'd approach it.


