Toolflow
AI tools marketers could actually use, before anyone knew what that meant
Role
Product designer
Product
AI workspace for marketers
Stage
Post-MVP




Home and chat. Two ways into the same session — pick a tool, or just start typing.
What I walked into
The product was live and people used it daily, so nothing could pause while I worked. Whatever I redesigned had to ship next to what was already there without the two halves looking like different products.
Toolflow turned raw LLMs into tools a marketer could run without writing a single prompt. Take a ready-made one from the marketplace, or build your own on a canvas — text generation, data extraction, transcription, loops, wired together into a workflow you could rerun and share.
Two things made it harder than it sounds. The product was organised the way it had been built, mirroring the backend rather than how a marketer thinks about work. And the interactions it needed — a variable living inside a prompt, a node that feeds the next one, a non-programmer describing a data structure — didn't exist anywhere yet. Nothing to copy.
One more thing worth saying plainly: there were three of us, and one developer. Everything I designed went straight to him. If I left a state undecided, he'd decide it himself.
How I worked
Short steps, checked often
The rhythm was a day per iteration. That’s only possible if nobody’s guessing.
I taught Alfie, our product cofounder, to write user stories — which turned out to help me as much as him, because reading them was how I learned the product from the user’s side. From there: a rough sketch to make sure we pictured the same thing, then wireframes, then design. Each stage a day, four or five hours.
Sounds like overhead. It’s the opposite — the sketch exists so you don’t spend a day designing the wrong idea.
The Podcast-to-Blog screen from sketch to final
Making the case, not just the screens
Neither cofounder had worked with a designer before, so part of the job was building a shared language for it — why a design system pays for itself, why structure matters before pixels.
For bigger decisions I’d research first and bring a deck. The chat feature was the clearest example. Everyone was putting chat first that year, and I argued against it for this product: mixing dialogue, tool settings and results into one thread overloads people, power users lose speed, multitasking gets hard. My analogy at the time was that it’s like cramming Photoshop into a chat window.
Then I compared four approaches and recommended a hybrid, with a scoped MVP so we could start small. The deck wasn’t there to win an argument — it was so we could disagree about the same thing.

From the chat deck: four approaches compared, and where each one fits.
Untangling what belonged to what
The product treated the tool, the session and the generated assets as one blurry thing, which is exactly how it worked underneath.
They're not one thing, though. A tool can be rerun, and rerunning it makes a new session. Assets belong to the session, not the tool. Once I split them apart and gave each its own place on screen, the layout stopped needing explanation — proximity did the work.
That's the pattern I keep running into with early products, and I ended up writing about it separately: interfaces built on the developer's mental model instead of the user's.

Splitting tool, session and assets — and giving each generation step its own status.
New mechanics, familiar shapes
The product ran on MUI. Where the library fit, I used it — tabs, fields, buttons, avatars. Where it almost fit, I extended it and kept its naming and props, so ChipCustom behaved like a Chip and the developer didn't have to learn a second system.
Where it didn't fit at all, I built from scratch: nodes, input and output boxes, node headers, the field types for the data extractor — plain text, paragraph, list, group of fields, list of groups, each collapsible. But even then the variants followed the same logic, so new pieces landed in the codebase as extensions rather than exceptions.
My favourite small thing: the node component has a Tested state. The founder was firm that nothing should be a black box, and this is where that turned from a principle into a property. During generation each step reports for itself — transcribing, extracting quotes, drafting — with a stop button, so you always know what's running and what's already done.

Nodes on the canvas, each carrying its own state.
What shipped
All of it. I wasn't drawing proposals — everything I designed either already existed and needed rethinking, or was in development while I worked on it. Marketplace, home, the workspace with its asset panel, the builder with five node types, and the design system underneath.
The company has pivoted more than once since, which is what early stage looks like. The product I designed is gone. But the shape of it — tools you assemble instead of prompts you retype, a person checking each step — is roughly where a lot of AI products have landed now.
I came into a live, messy product and left it clearer than I found it, without ever stopping it to do that. That's the part I'd do the same way again.



History moved out of the profile and into Home, next to the tools you'd already used. The middle screen shows how it went — new sidebar, old interface still around it.

