- Client
- Openhand
- Year
- 2025
- Role
- Lead product designer, agent interaction and prototype
- Team
- Priya Raman, product manager
- Tomás Ferreira, ML engineer
- Hana Lee, content designer
- Three product engineers

The brief
About 4,200 small nonprofits, from food pantries to youth leagues, build their campaign pages in Openhand’s block editor. The median page took 3 hours 10 minutes to publish, and 42% went live without a story block, even though pages with a story raised about twice as much. Openhand wanted AI to write the first draft, and Priya’s framing became the brief: make the first draft cost one sentence, without the org losing authorship.
The constraint
The agent could only place and fill Openhand’s existing 12 blocks, never generate HTML, so every page stayed editable and accessible. It could never invent a number. A made-up “$50 feeds a family for a week” is a trust problem, and for a registered charity it’s a legal one. Every agent action had to be visible and undoable, and each draft had a fixed cost budget.
Decisions
- 1
A cursor, not a chat
Our first prototype was a chat panel beside the editor. You typed, the page changed, and in testing nobody could say what had moved. So the agent got a cursor instead. It picks blocks from the rail and fills them on the canvas one at a time, where you can watch it and step in.
- 2
Pending until you keep it
Agent blocks arrive with a dashed outline and two buttons, Keep and Try another. Try another swaps in a real alternative, like a different headline or a story built around a pull quote, not the same sentence reworded. Nothing publishes until a person has kept every block.
- 3
Numbers come only from you
Every figure in a draft carries its source: “From your brief,” or “From your settings” for gift amounts. When the brief has no number, the goal stays an empty field that says “Add your goal. We won’t guess.” Hana wrote that line, and it built more trust than any disclaimer we tested.
- 4
Move your mouse and it stops
When your pointer enters the canvas, the agent yields mid-step and its cursor reads “Paused, your turn.” Move away or press Let it finish and it picks up where it stopped. The Openhand card on my work wall behaves the same way: hover it and the loop hands you the page.
- Hero
- Goal
- Story
- Photo
- Donate
- Updates
- Team
- Gallery
- Video
- FAQ
- Map
- Sponsors
Rain drips onto the shelves that hold the tools you borrow. A new roof keeps us lending all winter.

What we tried first
The chat prototype wrote a whole page in about 40 seconds. In sessions with eight orgs, six couldn’t say what had changed when it finished, and two published blocks they hadn’t read. Fast, and nobody’s page.
Working block by block on the canvas looked slower on paper, but people read as it went. It also kept us inside Tomás’s cost budget: Try another regenerates one block, never the whole draft.




“I typed one sentence on my lunch break and watched it lay the page out. I swapped the headline because it didn’t sound like us, kept the rest, and we were live before I went back to the counter.”


Outcome
The agent shipped to every org in September 2025. Speed was the headline, but the change I care about is quieter: almost every page now launches with a story, and every number on it is one the org gave us.
- median time to first publish, down from 3 h 10 min
- 38 minmedian time to first publish, down from 3 h 10 minNew campaign pages in the eight weeks after launch, against the eight weeks before.
- of pages launch with a story block, up from 58%
- 91%of pages launch with a story block, up from 58%All published campaign pages over the same two windows.
- fabricated figures in 4,800 audited agent drafts
- 0fabricated figures in 4,800 audited agent draftsHana’s team checked every figure against the org’s brief and settings.
- of agent blocks kept on the first pass
- 71%of agent blocks kept on the first passKept without Try another or an edit, across all drafts since launch.