Live · v1.0 · Deployed April 24, 2026 · Captures flowing

The smallest build, the deepest thesis.

Built April 24, 2026 · One day · Three files · Deployed · Chicago

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.

schema.sql
The captures table
Supabase Postgres. 9 columns: id, content, source_url, annotation, source, beat_tag, status, captured_at, synced_to_ob. Two indices for the hot paths (unsynced lookups + status filter). RLS on, anon-key write. It's a personal tool, the simplest auth model is the right one.
bookmarklet.js
Desktop capture
36 lines of vanilla JS. Lives on the Chrome bookmarks bar. Click it: captures selected text + page URL, prompts for an optional note, POSTs to Supabase REST. Signal-green confirmation toast. Total interaction: one click + optional one-line note. No new tab, no page jump.
iOS Shortcut
Mobile capture
3 actions in the iPhone Shortcuts app: Receive Input → Ask for Input → Get Contents of URL. Lives in the iOS Share Sheet. Hit any "Share" button anywhere (Safari, Mail, Twitter, Notes), pick "HO Capture", optionally add a note. Same Supabase REST endpoint as the bookmarklet, same row format.

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:

Capture Open Brain Editor's Queue Content Desk HumanOperator's feed

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)

  1. I'm reading a Stratechery post. Ben writes a paragraph that connects to something I want to remember.
  2. I select the paragraph (or skip selection; the bookmarklet captures URL alone if no selection).
  3. I click the HO Capture bookmark. A prompt appears: "Add a note? (leave blank to skip)". I type "matters for the K-shaped piece" and hit enter.
  4. POST to Supabase. Signal-green toast: "Captured." Total elapsed: ~6 seconds. I'm back in the article.

Mobile flow (one tap)

  1. I'm reading the same post on my phone via Safari.
  2. I tap the Share button → "HO Capture" in the share sheet.
  3. 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:

Morning
Schema + Supabase. Spun up a new Supabase project. Wrote the 9-column captures table. RLS on. Anon-key write policy (personal tool, simplest auth is the right auth). Two indices for the hot paths. Verified row inserts via the dashboard.
Midday
Bookmarklet. 36 lines of vanilla JS. Selection capture, URL fallback, prompt for annotation, POST to REST endpoint, success/failure toast via DOM injection. Tested on five real pages. Worked first try after one auth-header fix.
Afternoon
iOS Shortcut. Built in the Shortcuts app: Receive Input → Ask for Input → Get Contents of URL with the same REST endpoint and headers. Tested from Safari, Twitter, Notes. Works from anywhere with a Share button.
Evening
SETUP.md. Wrote the install instructions for both surfaces. The setup doc is longer than the code. Saved to desk-assets/ for future-me when I forget how the iOS Shortcut was wired.

What's built

1
day to deploy
3
files (schema · bookmarklet · shortcut)
36
lines in the bookmarklet
9
columns in the captures table
2
capture surfaces (web + iOS)
downstream consumers

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:

↻ I'll add a "30 days in" capture-frequency dashboard once it's been live a month.

What I'd do differently

What unlocked the speed

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

See how Capture feeds the rest →

Content Desk

The marketing operating system that consumes Capture's output. Five Claude Code skills, voice gate, the dual-output principle that requires a working capture layer to function.

Read the build →