The desk: drafted proposals beside the owner's revenue. A drafted email card open on mobile, one tap from send.

Product design · AI · Solo

Synchronise AI

Designing how a person approves what an AI wants to do on their behalf.

Timeline
2026, ongoing
Team
Solo founder
Role
Research, product design, design system, production code
Sample
18 accounts · 10 workspaces · 660 proposals

Long story short

An AI that acts on your business has to ask permission. Nobody has designed that yet.

Synchronise watches a small business's connected tools and stages fully-drafted actions, emails, replies, ad changes, for the owner to approve. No agent holds a send button. Approval is the product.

I built it, shipped it to real owners, and watched what they did. Most proposals were never touched at all. And when one was approved, 61% of the time it had been rewritten first. Approval is not a yes-or-no. It is authorship.

01

Research

More than 100 conversations across user testing, sales calls and customer interviews, plus dogfooding the product to run its own outreach.

02

Design

One projection module behind five surfaces, thirty-seven kinds of action collapsed into eight verbs, risk typed so the build fails without it.

03

Shipped

Production code, measured in the open, then cut: sixteen features deleted or gated once the data said nobody touched them.

Proposals staged660

Across every workspace, six weeks.

Never opened402

Not rejected. Never touched at all.

Approved after editing61%

The finding the redesign turned on.

Kinds of action37

Collapsed into eight verbs.

Surfaces, one contract5

They cannot drift apart.

Producers earning nothing27

158 proposals, zero approvals. Cut.

The question

How might we give a small business owner an employee they can afford, without handing an agent the keys to the business?

01 — The research

I sold it, used it, and asked about it, because no single signal tells the truth.

Before any of those numbers existed the question was narrower: is this a real pain for a specific person, and can that person actually adopt it? I took it to the exact profile I believed it was for rather than to whoever would take a call, and ran more than 100 conversations across moderated user testing, sales calls and customer interviews.

A segment had to pass both tests. Plenty of owners agreed the idea sounded useful. Far fewer were already doing the work badly at 10pm with a workaround they were embarrassed by. And a segment can have the pain and still be unable to adopt, with nothing connected and no moment in the day the product fits. Those were the expensive ones to learn, because the enthusiasm in the call was real and it went nowhere.

I found the prospects and drafted the outreach using the product itself, so every sales call was also a user test. Interviews tell you whether someone likes an idea; they are much worse at telling you whether the value repeats. Working in it against a real deadline was the only thing that surfaced the second and third week failures, the mornings where the queue stopped being worth opening.

Method: User testing, sales calls, customer interviews, dogfooding, product analytics
Scale: 100+ conversations
Tests a segment had to pass: Real pain · Able to adopt
Interviews

Tell you what someone says they want. Blind to what they will actually open on an ordinary Tuesday.

Product analytics

Tell you exactly what they did. Blind to why they did it, and silent on everyone who never arrived.

Dogfooding

Shows where it breaks under a real deadline, and whether the value repeats. Blind to everyone who is not me.

Sales

Tells you what someone will hand money over for, which is a different question again from what they enjoy.

Where they disagreed

Running all four continuously, rather than treating research as a phase that ended before building started, meant the four could be read against each other. Where they agreed I built with confidence. Where they disagreed was worth more: the features people asked for warmly in an interview and then never touched in the product became the clearest signal in the project, and the one the rest of this case study follows. Selling taught the other half. Repeating a pitch to someone with no reason to be generous is the fastest way to find which words carry, so the messaging was not written so much as cut down, by people declining to buy, until only the parts that landed were left.

02 — The wall

The wall was not traffic. It was the first decision.

I instrumented the funnel end to end before trusting any of it. Acquisition was fine: 17% of visitors reached sign-up. The collapse happened after the product was in their hands.

Of 18 people who created an account, 3 ever approved or dismissed a single card. I had been designing a queue. The unsolved problem was the first act of trust.

Sources: Product analytics, application database
Window: 4 Jun – 18 Jul 2026
Acquisition → first decision · n = 166
Landing visitors166
Reached sign-up2816.9%
Created an account1810.8%
Signed in148.4%
Set up a workspace106.0%
Made one decision31.8%
Proposals never touched, by workspace
Operator (mine)41.7%
Workspace 287.2%
Workspace 390.2%
Workspaces 4–11100%
What that distinction meant

These cards were not rejected. They were never opened. Dismissal is feedback; silence is noise. Designing against a dismissal rate would have optimised the wrong signal entirely.

03 — The pattern

Approval is not a choice. It is a rewrite.

Every agent product ships the same control: accept or reject. When I looked at what people actually did with an approval, 61% of approved drafts had been edited first.

So the binary was wrong. I made editing a first-class state, auto-saving on blur and distinct from execution, so someone can take authorship of a draft without firing it. A human edit also freezes the agent from re-proposing over the top of it.

Signal source: Decision ledger, n = 83 approvals
What an approval actually was
51Edited, then approved
32Approved as drafted
Cover — inline edit Jitter loop: a draft being edited in place, the Saving indicator resolving to Saved, nothing sending.
The caveat, stated

This window is dominated by one heavy operator. Treat 61% as the shape of the behaviour, not a population rate.

04 — The control

Say what it will do. Then make them mean it.

Two things must be true before someone lets software act for them: they must know exactly what happens, and they must not be able to do it by accident.

The consequence line is derived from the same payload the executor runs, so the preview cannot drift from the effect. Anything with a wide blast radius arms before it fires, and the button never reports success before the server confirms.

The control opposite is the real interaction. Press it twice.

Approve, armed — live
High blast radius Pause underperforming ad set

Pause “Winter Retarget — AU” in Meta Ads. You can resume it any time.

Meta Ads · spend last 7d ↗ Stripe · attributed revenue ↗ Ledger entry — no link available
On the third citation

When the system cannot build a real link to the record, it shows the evidence without one. It never invents a source to make the row look complete. The link is optional at the type level, which is where that guarantee belongs.

The Synchronise desk: a lane of drafted proposals beside the owner's revenue and the people who replied.
Every proposal leads with what it will do, in the owner’s language, before any control.
Replies from real people sit beside the drafts. The queue has to earn attention against them.
The owner’s money, not the product’s activity. The scoreboard that measured us got deleted.
The desk, running. Captured from the product against a seeded demo business, so the interface is real and the customers are not. Proposals sit to the left with what they will do; the owner’s own numbers and the people who actually wrote back sit to the right, because the queue has to earn attention against them.

05 — The system

Consistency enforced by the compiler, not by a library.

Thirty-seven kinds of proposal, five surfaces, one designer. A component library would not have held, because surfaces drift when the rule lives in a document nobody reads.

So the visual language is a single projection module. Every card collapses into eight verbs, each with a fixed palette, icon and present-participle loading state, and every surface renders from that one contract. Risk is typed so that adding a new kind of action fails the build until someone declares its blast radius.

Artefacts: Design spec, projection module, 45 tokens
Kinds of action37
emaildm_replysocialpage+33
Verbs they become8
Sending…Posting…Filing…
Surfaces, one contract5
queuemobilehomesharedetail
Fields in the card contract27
Token references in code4,289
Purpose-built detail shapes8
A drafted outreach card selected on mobile: the why, the full email, and approval as the only path to send.
Same lanes, same order, same verbs. Rendered from the one projection, not rebuilt.
One contract, another surface. Mobile is not a second implementation of the queue. It reads the same projection the desktop desk does, so the two cannot drift: change the projection and both move together.

06 — Removed

Three things I shipped, measured, and deleted.

The queue's real failure mode is volume, not accuracy. Twenty-seven of the producers I built earned zero approvals across 158 proposals. Supply was never the constraint.

Each of these is in version control with its reason attached.

The removal ledger
9633cadb13 Jul 2026

Deleted the dismiss-reason chips.

Shipped to learn why people rejected a draft. Across 147 dismissals it captured a reason zero times. A feedback control nobody uses is not neutral, it is a tax on the exact moment you are asking for trust.

783a9 Jul 2026

Reverted a full landing restructure inside 24 hours.

A ten-section rebuild that read as a longer page, not a clearer one. Shipping it was the fastest way to see that; reverting it the next morning was cheaper than defending it.

4f0c30b017 Jul 2026

Removed the home scoreboard the day after adding it.

It measured the product's activity rather than the owner's business. A metric that flatters the software is worse than no metric.

07 — On the numbers

What holds at this sample size, and what does not.

This is six weeks of data from 18 accounts. It is early, and I would rather say so than present it as more.

What holds at this sample size are shapes, not rates: proposals die in silence rather than rejection, approval is usually a rewrite, and most of the supply I built earned nothing. Those findings are consistent across every workspace and survived being checked against the raw ledger rather than a dashboard.

What does not hold are percentages with decimal points. My own workspace is the majority of recorded decisions, so every rate here describes a heavy operator with a thin corroborating sample behind them. There is a tempting week-on-week trend in the approval rate that I have left out entirely, because I cannot attribute it to any change I made.

Auditing the instrumentation before trusting it changed four numbers materially: a page-view event firing on my own machine, decision events emitted server-side that read as user interactions, an onboarding property null in 85% of rows, and a generation event inflating unique users by more than two orders of magnitude. Every figure above survived that audit. The ones that did not are not here.

Learnings & impact

What the work changed about how I build.