Build Daily

Tinley Park · June 27, 2026

Sunday, June 21, 2026

mood: momentum

Build the pipeline once, then it carries every app after it.

The day the SageDaily app could actually reach a phone on its own, and builddaily.io started mailing me a readership report every morning.

Shipped

  • SageDaily mobile pipelines, live — got the full build-and-distribute path working both ways: Android builds and lands in Firebase App Distribution, iOS builds, signs, and uploads to TestFlight from a Mac running as a persistent build agent. Push code, get a testable app — no manual steps
  • builddaily.io readership email, automatic — built a nightly job that reads the site's real analytics and emails me a clean readership digest every morning: visitors, which articles got read, which links got clicked. Re-architected it onto the same proven data pipeline the gasket site already uses, so there's one pattern, not two
  • builddaily.io link + article tracking, complete — finished the custom analytics so I can finally see which posts people actually read and which links they use, not just raw page counts
  • Mobile CI/CD, written down and reused — turned everything I learned wiring up the SageDaily pipeline into a reusable playbook, then immediately ported the same pipeline to paiddaily.io's app — one Apple membership covers both, no new cost
  • Gasket estimate settings, to production — shipped a settings panel for estimates (group the line items, set a discount that sticks, change status by hand) and promoted the whole estimate stack to production

Notes

The mobile pipeline was a week of small, specific pain — an old Ruby that couldn't encrypt, a lockfile missing platforms, a self-hosted runner fighting the toolchain, an app icon rejected for being a pixel short. None of it interesting on its own. But the moment it ran green, I wrote the whole thing down as a playbook and the second app inherited it for almost free. That's the trade with infrastructure: you pay the full price once, then every product after rides it.