August 19, 2026 · the build log
Build log #2: the week the queue started posting by itself
Last week I built a content engine that handed me copy-paste packs. This week the goal was simple and a little scary: stop copy-pasting. Tap Approve on my phone, and my PC actually posts the thing.
That happened. But most of the work was the unglamorous scaffolding that has to exist before you let a machine post to the internet under your name.
Approve here, publish there
The headline commit is the P2 auto-post relay: I approve on my phone, and the PC publishes to YouTube, Instagram, and Facebook. No more me shuttling files and captions between five tabs.
Getting there meant a chain of less-glamorous pieces:
- YouTube OAuth consent tooling — the part everyone underestimates. Google’s consent flow doesn’t love a headless machine, so I built a link handoff: the PC generates the auth link, I approve the session, and the token lands back where the relay needs it.
- A render farm, v1 — my PC takes raw clips and produces vertical cuts with burned-in captions and thumbnail candidates. This existed on paper last week; now it’s real code doing the tedious 80%.
- Aligning the engine to researched 2026 platform rules — before automating posting, I actually read up on what each platform will and won’t tolerate next year, so the relay isn’t building on rules that expire.
And one design decision I’m glad I made: channel separation. Social is process-only — the behind-the-scenes, the build-in-public stuff. The Marketplace is where things actually sell. Mixing those was tempting and would have made every post feel like an ad. Now the engine structurally keeps them apart.
The blog that can’t go stale
You’re reading the output of another commit. I built a weekly ship-log loop: draft → approve → auto-publish, same approval discipline as everything else. The whole point is that entry #2 exists because the system nagged me into it, not because I remembered. If the blog goes quiet, that’s now a bug, not a mood.
Alongside it: RSS, a sitemap, and a branded og:image — because Facebook link previews for the site were rendering as a sad gray box. Small fix, but a gray box says “nobody’s home.”
The plumbing nobody claps for
The rest of the week was honest-to-goodness cleanup, and I’ll own it:
- The approve path is now index-free. Remember last week’s launch bug — the missing database index that made the first Approve tap look dead? I went back and made the detail sheets watch document streams directly, so that whole class of “the write worked but the screen went quiet” can’t recur.
- I audited the /apps page against the actual repos. Some cards described apps more optimistically than the code did. Now they match: a base-plus-customize model, described accurately.
- Fixed brand names across the site — Chores is C.H.O.R.E.S., the engine is C.R.E.A.T.O.R. — because if I can’t get my own names right, why trust the render farm.
- A test that had quietly rotted: the sleep-diary voice-log test expired after 14 days because it was anchored to a fixed date instead of “today.” Classic. Re-anchored it so it stops failing on the calendar’s schedule.
- Life OS now notifies a parent only on a real login or sign-out — not every time the app is closed and reopened. Nobody wants a push notification for existing.
What’s next
The relay works; now it needs footage to relay. Beat day and shoot day feed the render farm, and the queue graduates from “here’s your pack” to “posted the moment you tapped Approve.” The daily version of this log still lives at Rndm Life Things.
— Tristan, Family Flow LLC