Build Daily

Tinley Park · August 2, 2026

Saturday, July 18, 2026

mood: expanding

"In 352 days" is a correct answer to the wrong question.

A live new moon was being described as almost a year away, because the system knew the exact instant an event peaks and nothing at all about how long it lasts. Giving events a real window fixed the readout and unlocked date ranges on everything else. The rest of the day went wide: a public sheet builder, a searchable library of quotes, a rebuilt video feed, and a second product's feed built from scratch.

Shipped

  • Events got a duration — a currently-active new moon read as "in 352 days" because only the exact peak was stored, so the nearest one was always next year's. Events now carry an effective window — real periods where they exist, documented symbolic ones where they don't — and the page leads with what's active now
  • Dates on the chips — active events now show their start and end instead of a single instant, and a stationing planet that was duplicating its own retrograde window is suppressed, collapsing nine rows to five
  • Slow planets show how long they stay — a planet's time in a sign is computed live rather than stored, so those rows had no dates at all; they now scan to the boundary in each direction and report a day-exact range, handling the case where a planet backs out and re-enters
  • A round-up reads by sign again — a fifty-two-minute all-twelve-signs reading was being chopped into six blind chunks, each jumbling up to eleven signs, which left the jump-to-a-sign feature with nothing to work with. Outlines for round-ups are now built from the timestamped captions, one entry per sign the creator actually opens, anchored to a real jump point, with signs grouped rather than dropped when the boundary isn't clean
  • A public sheet builder — elevatedaily.io got an open, no-account tool: pick lines from six curated sets or write new ones, name the sheet, download it. Saving is the one thing that asks for an account. Laid out as a two-pane composing table across the full width, with the paper preview held at a print-safe measure
  • The whole app went full-width — header, footer and body now span the viewport everywhere instead of on one page, with reading text still held to a comfortable measure so prose doesn't stretch
  • A searchable library — rebuilt the affirmations page from six static tiles into a concordance: fourteen hundred verbatim quotes mined from the book canon plus two hundred affirmations, live search with highlighting, filters by pillar, voice and theme, a list-or-wall toggle, and a hand-off straight into the sheet builder. Reworked lines are labelled as adapted, never passed off as verbatim
  • The video feed on builddaily.io works — transcripts are blocked at the source with no free way around it, so each item's "what it covers" is now built from the video's own description and chapters by a local model at no cost. Detail pages play in place under a full-width hero, addresses are clean word-boundary slugs, and the pipeline heals a bad slug on its next pass
  • A second feed, built from nothing — took eightballsports.com from an odds-math service to a content platform: a public feed with a seekable outline, an operator screen, a free poller pulling real creators, sign-in, and a scheduled ingest that keeps running on its own. Landed on a black-and-white eight-ball look
  • The hover title became a real popover — reshaped a caption band into a panel floating above the card with a downward caret, then fixed it reading see-through by giving it a solid, theme-aware fill and letting it escape the card's bounds instead of being clipped by them
  • Traditions, named rather than picked — creators disagreeing about which sign a planet is in aren't wrong, they're using different zodiacs; the answer was to surface the tradition instead of choosing one, and show both where they differ
  • A referee's manual and a league map — a question about officiating youth football turned into a static handbook site and a canonical dataset of Chicagoland leagues and their member programs, projected into both stores from one source of truth

Notes

The "in 352 days" bug is a good example of a model that's precisely right and practically useless. Storing the exact instant an event peaks is the correct thing to store — it's the source of truth, it's what the ephemeris computes, and it's unambiguous. But nobody experiences an event as an instant. A retrograde is a period. A new moon colours a few days. An eclipse has a run-up. Asking "what's the nearest event?" against a set of instants gets a technically correct answer that is nowhere near what a reader means. The fix wasn't to change what's stored — it was to compute a window on the way out, real where real periods exist and documented symbolic ones where they don't, and let the exact instant stay the source of truth underneath. Once events had duration, three other things fell out for free: date ranges on the chips, a way to spot a station duplicating its own window, and the same treatment for planets whose sign placement isn't a stored event at all.