Build Daily

Tinley Park · July 13, 2026

Monday, June 29, 2026

mood: shaping

Show the real date, not the date you happened to look.

Yesterday I built two raw pipelines. Today was about making them watchable — admin surfaces to see the machine run, public surfaces to browse what it produces, and one honest-date fix that mattered more than it looked.

Shipped

  • The Digest surface on PaidDaily — reshaped the creator feed into a dense, video-led card grid with a grid/list toggle, a watch-along layout where the video and its timed breakdown scroll in sync, and a live slice of it featured on the landing page
  • Sage admin console, built out — a full master-detail console to run the pipeline: per-creator content drill-downs, per-video moderation (edit, hide, feature, remove), an ingest-health view, and a queue-depth tile so I can see the machine's backlog at a glance
  • The Astrolabe, rolled everywhere — pushed Sage's new design system across every page, added reader-selectable layouts (Reading / Theater / Focus), and opened the Mystics stream to logged-out visitors so anyone can browse before signing in
  • Honest dates — fixed a real bug where readings showed our decode time instead of the creator's actual publish date; a viewer should see when the creator posted, never when our machine got around to it
  • Killed a hydration bug at the root — chased the recurring React #418 crash to its real cause (day bucketing that drifted between server and browser) and pinned everything to UTC instead of patching the symptom again

Notes

The honest-date fix is the one I keep coming back to. It's a tiny change — read one column instead of another — but it encodes a rule: the reader's reality comes first, not the machine's convenience. If the timeline reflects when my scraper ran, I've quietly made the product about me. If it reflects when the creator posted, it's about them. Same with the React crash: I'd "fixed" it twice before by treating symptoms. The real cause was a date computed one way on the server and another way in the browser. Chase it to the root once and it stops coming back.