The smallest build, the deepest thesis.
The other builds in this portfolio took weeks. This one took a day. It's also the one feeding everything else. Three files (a SQL schema, a 36-line bookmarklet, and an iOS Shortcut) became the input layer for the whole content ecosystem. Built three days after I rewrote what HumanOperator's actually is: not an editorial publication for similar minds, but a personal news feed where the act of consumption + reaction IS the content. Capture is the technical realization of that pivot.
The origin
April 21, 2026. I'm sitting with the question: what is HumanOperator's actually for? The original framing was "publication for practitioners navigating the AI transition," true but indistinct from a hundred other Substacks. The real version surfaced when I wrote it down: HumanOperator's is a personal news feed. Mine. Public. Branded. Made for me, made for people like me. Like a Substack × Flipboard × personal journal. But the content is the things I'm consuming + the thoughts those things trigger, not original essays generated from a blank page.
That reframe immediately exposed a missing piece. I'm always consuming content: podcasts in the car, YouTube on the couch, Substack on the train, articles on my phone in line at the pharmacy. Every consumption session triggers thoughts: connections, disagreements, ideas worth writing about. Currently those thoughts evaporate. They go nowhere. Or they go private into Open Brain via a clunky workflow that takes 90 seconds and breaks the consumption flow.
The whole HumanOperator's pivot fails without one new capability: real-time capture of the source + my reaction to it, from any surface, with near-zero friction. So I built it.
The thesis
Capture is the comments section turned inside out. Instead of leaving my reaction in someone else's thread where it disappears, I capture it on my own surface where it becomes the seed for my public output. The reader becomes the author. The response becomes the work.
That's the deeper thesis. The shallow version ("capture friction is the bottleneck of content production") is true, but it's the why not the what. The what is rotating the comment-on-someone-else's-content move 180°: from passive participation in someone else's thread to active production on your own surface. Same atomic unit (a reaction to something you read or heard), different ownership of where it lands.
If a thought worth keeping requires more than one tap to land somewhere recoverable, you will lose 80% of those thoughts. The system that fixes this isn't a CMS. It's a one-tap path from anywhere to a permanent home.
The architecture: three files
That's it. Three files. No app, no React, no auth wall, no admin dashboard. The whole system fits in your pocket and on a bookmarks bar.
Where it sits in the system
This tool isn't a standalone product. It's the upstream end of a pipeline that runs through every other build, and specifically the layer that made the HumanOperator's pivot to "personal news feed" technically possible:
A capture lands in Supabase with synced_to_ob = false. A sync skill picks it up, embeds the content, writes it to Open Brain as a semantic memory. From there it enters the Editor's Queue on editor.humanoperators.ai, where I review, tag to one of the five HO's beats (HIL Desk · Future of Work · Ops Desk · Founder's Desk · Field Reports), and approve for the next Content Desk pass. /desk-story elicits the full piece using the captured source + my original reaction as seed material. /desk-write drafts. /desk-voice gates. Then it ships to the HO's feed as a public dispatch.
The pipeline is identical to the one I described in the HumanOperator's case study. The difference: now it has a real input end. Before Capture, the pipeline started at "I sit down to write something." After Capture, it starts where consumption actually happens, on my phone in line at the pharmacy.
Every capture also flows downstream into Career Desk's bullet candidate flagging. A capture that contains achievement evidence ("led 4-person migration that recovered scraper reliability from 30% to 95%") lands in the bullet library wiki, ready for the next resume run. Same data, three downstream consumers.
The dual output, again. Content Desk's principle, that every session produces (1) content + (2) system training, starts here. Capture is what makes the second output possible. Without a permanent home for raw material, there's nothing to enrich. This tool is small because it has to be small. The whole point is that capture cost approaches zero.
How it actually works
Desktop flow (one click)
- I'm reading a Stratechery post. Ben writes a paragraph that connects to something I want to remember.
- I select the paragraph (or skip selection; the bookmarklet captures URL alone if no selection).
- I click the
HO Capturebookmark. A prompt appears: "Add a note? (leave blank to skip)". I type "matters for the K-shaped piece" and hit enter. - POST to Supabase. Signal-green toast: "Captured." Total elapsed: ~6 seconds. I'm back in the article.
Mobile flow (one tap)
- I'm reading the same post on my phone via Safari.
- I tap the Share button → "HO Capture" in the share sheet.
- Optional annotation prompt. Done.
What I don't do: open a new app, log in, find the right Notion database, pick a tag schema, write a property in seven required fields. The system gets out of the way because the system is three files.
The build, hour by hour
One day. Started morning, deployed by evening:
What's built
What success looks like
Unlike the other builds, this one IS deployed and captures are flowing. What I'm watching for to validate the thesis:
- Capture cadence: 5+ captures per week sustained. Below that, I'm not actually using it; the friction-killer didn't kill enough friction. Above 10/week, the thesis is doing real work.
- Surface mix: mobile captures equal to or greater than desktop captures within 30 days. Mobile reading is where most thoughts happen. If iOS captures are <30% of total, the iOS Shortcut isn't placed where I'd actually use it.
- Open Brain enrichment: sync skill running weekly, captures landing as semantic memories, /desk-story surfacing them on related queries. The end-to-end pipeline (capture → sync → surface) closes the loop.
- Downstream usage: at least 1 in 5 published Content Desk pieces should reference a capture from 2+ weeks earlier. That's the proof that captures are doing more than collecting dust. They're feeding work that wouldn't have happened otherwise.
- Bullet library hits: at least 3 captures per month flagged as Career Desk bullet candidates. Achievement evidence I notice in the moment, not at resume-revision time.
↻ I'll add a "30 days in" capture-frequency dashboard once it's been live a month.
What I'd do differently
- Build the Open Brain sync skill the same day. Captures are flowing into Supabase but the embed-and-write-to-Open-Brain skill is a separate ship. Without it, captures pile up unsynced and the downstream enrichment never happens. Should have been one day's work for the whole pipeline, not just the input end.
- Add a tag-suggest layer at capture time. Right now
beat_tagis set later, in the editorial queue. But I have the source URL, the selected text, and an annotation field at capture time. Claude could suggest one of the 6 content pillars + 5 voice signatures with one cheap classification call. The capture would land already-tagged, the editorial queue would shrink. - RLS with anon-write was lazy. It works for me because nobody else knows the URL. It would fail under any real adversarial pressure. Should have used a Supabase Edge Function with a shared secret, same model as Family Care Desk's
x-cron-secretpattern. Would have added 30 minutes to the build. - Browser extension over bookmarklet, eventually. Bookmarklets are scoped by browser security (no DOM context permissions, weird CSP behavior on some sites). A real extension gets keyboard shortcuts, persistent UI for the toast, optional pre-fill of selection metadata. Bookmarklet was the right call for day 1; extension is the right call for v1.1.
What unlocked the speed
- Supabase REST out of the box. No backend to write. No auth boilerplate (anon key + RLS off is one config). The schema is the API. Three Postgres columns become three JSON fields in the POST body. Zero glue code.
- Bookmarklet as a deployment model. No app store, no extension review, no signing certificate. Paste a URL into your bookmarks bar. Done. The right deployment surface for a personal tool that needs to evolve fast.
- iOS Shortcuts as a no-code mobile capture layer. Apple gave us a programmable Share Sheet for free. Pointing it at a REST endpoint takes 3 actions. No iOS dev environment, no TestFlight, no certificate.
- Choosing the smallest possible system. The temptation in week 1 of any project is to build the dashboard, the admin UI, the analytics page. None of those existed on day 1. They still don't. The captures table has a status column for editorial workflow, but I review the queue from the Supabase Table Editor. That's enough until it isn't.
The lesson: small builds, deep thesis
The other four builds in this portfolio are weeks-long. This one is a day. They look incommensurate, but they aren't; they're operating at different scales for different reasons. Career Desk needs a real codebase because it's an agent that has to handle scraping, classification, generation, and HITL across hundreds of jobs. Family Care Desk needs 10 tables and 5 Edge Functions because it's serving 7 family members across SMS, voice, and web in two languages.
Capture needs three files because the entire thesis is capture cost approaches zero. A capture system that took weeks to build would refute its own argument by existing. The shape of the build is part of the message.
Builders ship at multiple tempos. The portfolio is stronger when it shows both: the multi-week systems with real architectural depth AND the one-day tools that fix something specific. Reading these five builds together, the signal is range: I don't apply the same template to every problem.
One-day buildCaptureSupabaseBookmarkletiOS ShortcutInput architectureOpen BrainPersonal tool