Products · In production

Five things we built that are running right now.

We used to write case studies about the work. Now the work keeps turning into products.
Each of these started as a real problem, a client's or our own, and became something that runs. That is the same path a product sprint with us takes.

01 — AgentiCMS
The method, productized

AgentiCMS

Agents produce content inside your CMS using the components you already have. When they need a module that doesn't exist, they ask for it, and a development agent builds it.

A content agent finds a missing pricing-table module, a development agent builds it, and the rendered page waits on human approval
The problem

Generate content at volume and the design system erodes. Every new page drifts a little further from the last, until someone rebuilds everything by hand.

Why this is new

An agent can now read a component library and write code that conforms to it, then run that code and keep fixing until the page is right. Three years ago, each of those steps needed a person.

Why it matters here

This is how we deliver every project, packaged as a product. The handoff from content agent to development agent is the same loop our teams run on client work, and a person signs off before anything reaches production.

Same loop as /how-we-work · agent-to-agent handoff · autonomy stops below production

02 — Ricevo
A photographed taxi receipt becoming a categorized, policy-checked expense line in Ricevo
The method turned inward

Ricevo

Travel and expense management. It replaced our Expensify license and now runs in its place.

The problem

Expense tools charge per seat, every month, for a workflow that is mostly reading receipts and applying policy. The awkward receipts end up with a person anyway.

Why this is new

A general model reads any receipt layout, so nobody trains a pipeline per vendor. What's left is a small app, and a small team builds that for less than one year's renewal. If you pay per seat for something like it, that is a four-week project.

03 — Minuta
Minuta on a Mac asking permission to take notes on a call that just started, and the finished summary already written on an iPhone
The method turned inward

Minuta

Notes for Mac and iPhone. It notices when a call starts and offers to record, then writes the transcript and the summary on the device.

The problem

Every meeting note-taker is a bot you invite into the call. Gemini won't join Teams, Zoom won't join Meet, and asking a client to admit TLDR to their own meeting looks amateurish. Whichever one you pick, the record of every conversation you have ends up with that vendor.

Why this is new

Transcription and summarization run on Apple silicon, on the machine itself, and keep working offline. Nothing joins the call and nothing leaves your devices. Recording follows the same ISO 27001 authorization protocol as the rest of our work.

04 — skip·next
Intro-Matic marking the title sequence on an episode timeline, with the skip-intro control showing in the player and the low-confidence titles queued for review
Capability at scale

skip·next

Finds where a film or episode actually starts and ends, so a player can offer skip-intro and next-episode.

The problem

Audio fingerprinting only handles the repeatable cases. Everything else went to a person watching, title by title: cold opens, one-off specials, credits rolling over the action.

Why this is new

A model looks at the frames and decides whether it's a title sequence. That covers the uncertain cases, and the uncertain cases were the reason nobody could automate a whole library before. If you run one, this is what a sprint is for.

05 — Actor-DB
Actor-DB answering a plain-language question about who appears with an actor, with face detections on a frame and a graph of identities
Capability at scale

Actor-DB

Finds every face in a video library, timestamps it to the split second, and lets you ask the library who is on screen when and where.

The problem

Metadata like this used to be slow and expensive: hundreds of hours of people matching faces to names, with plenty of errors along the way.

Why this is new

Running inference on every frame is now cheap enough to do across an entire library. The identities it finds form a graph, so the archive can answer questions in plain language: who appears with whom, where, and when.

06 — The through-line
07 — Start