Traction Studio AI · Codefi · Product Designer · Sept 2025 – present

Designing the handoff from a conversational AI into a structured product

Onboarding sequence
Scale dashboard
Updated navigation & patterns
RoleFirst and only designer
Team4-person engineering team, 1 PO
SurfaceTraction Studio AI
StatusGA
In short

I own the handoff between a conversational AI and the structured product it becomes. I own it alone.

Scope: 0→1, solo. The entire paid surface.

Pattern: reframed a required wait as onboarding, four separate modules as one shared system, and now I'm designing for a model that can be confidently wrong.

Verification: the onboarding sequence shipped. Scale and the AI patterns are still in progress, with no outcome data yet.

As the only designer on Traction Studio AI, Codefi's AI-native founder platform, I designed how a conversational assistant hands its work off to a structured SaaS surface, then built that surface's entire paid experience from scratch alongside our PO.

Product Designer AI-native product 0→1

Three chat-based modules feed one SaaS product

Traction Studio AI starts founders in Build, where Ideation and Ready to Raise both run as chat. From there they cross into Scale, a full SaaS surface with a CRM, sales funnel, build board, investor relations, and now agents. Ready to Launch sits on the far side of that crossing, a third chat surface where founders work through go to market planning.

Every artifact a founder produces in chat has to become structured state in the SaaS. Most AI products are either fully conversational or fully structured, not both. This one had to be.

Three small chat cards feed a single larger structured panel, a simplified poster version of the chat-to-SaaS handoff.
01 Product decision · Shipped

Turning a required wait into onboarding

A founder finishes Build and crosses into Scale for the first time. Standing that environment up, and migrating everything they made in chat into structured state, takes engineering 5 to 60 seconds. The initial request was a loading screen.

SurfaceBuild → Scale, first run
RoleSole designer
Window5–60 seconds
StatusShipped

The core decision

The request was a loading screen. Before building it, I asked what the wait was actually for, why the range was that wide, and what would be different on the other side of it. Two things came out of that. Founders arrive at Scale having never seen it, so onboarding was going to be the next thing asked of me anyway. And they are already stopped, already expecting the product to appear. Putting the orientation in the window collapsed two pieces of work into one, and meant neither had to be built twice.

So the spinner became a 5-slide onboarding sequence. That is the exact window engineering needed, spent on the thing the founder needed next.

  • Reframes a stated requirement ("loading screen") into a value-additive moment ("onboarding")
  • Solves two unmet needs at once: the engineering latency buffer, and first-time orientation to a surface the user has never seen
  • Five slides maps to five tabs: the sequence runs one tab per slide, in the order a founder meets them
  • Creates a reusable pattern for any future moment where the product does heavy backend work
A founder holding an open laptop, staring at a blank screen with no sign anything is happening. crosses into Scale screen goes blank
A founder waiting on a blank screen.
The 5-slide onboarding sequence that replaces the loading state.
The 5-slide onboarding sequence, replacing the loading state.

The continue button stays disabled if a founder gets through the slides first, because there is nowhere to send them yet. The tooltip is for the people who skip onboarding, hit a dead button, and would assume it was broken. It says the environment is still being set up and nothing about why, because the why is our problem.

02 Product design, 0→1 · In progress

Four modules, designed as one system

Once a founder crosses the handoff, Scale is where they actually run the company.

SurfaceScale, Traction Studio AI
RoleOnly designer, with the PO
ScopeSales, ops, investor relations, MVP tracking, agents
StatusIn progress

The problem: four features that happen to share a login

Sales, ops, investor relations and MVP tracking were being specced as separate modules, with agent features layering in as the product's agentic direction firmed up. Scoped independently, each would have arrived with its own table pattern, its own empty state, its own idea of what a destructive action looks like.

The founder pays for that in relearning cost every time they switch context, which is constantly.

A founder trying to hold four separate mismatched panels at once as they slip out of her arms. four separate tools switching between them all day
One founder, four separate tools.

The decision: one shared system across all four

Working closely with our PO, pressure-testing the PRD, surfacing flow problems and iterating collaboratively to final designs, I designed the entire paid surface from scratch as one system: a shared component library across all four modules, down to full light/dark theming, so a pattern learned in one place holds in the next.

ScopeSales, ops, investor relations, MVP tracking, agents, on one shared component system
OwnershipEvery screen in the paid surface, 0→1, with the PO on scope and requirements
BoundaryI didn't conceptualise Scale itself, that's the PO's call. I own the UI and UX conceptualisation of everything inside it
Got wrong earlyBrought the PO changes that were mostly aesthetic, layouts that felt more responsive, before asking why things were specced the way they were. A few were right. Most were me redesigning around a constraint I hadn't bothered to find out about. I ask first now
StatusIn progress

The research I pushed for, and why losing that argument was right

I wanted to do more research before designing. The team was in ship-1.0-and-iterate mode, and I lost that one. They were right, and working out why changed how I choose a method.

Research has a shelf life, and the length of it depends on how fast the ground moves. Construction estimating hasn't changed in decades, so what I learned there held for three years. This is the opposite case. Since I joined, general AI chat tools got good enough that "a structured system beats a chat window" stopped being our differentiator, and the product has moved because of it. Research done in month one would have described a market that no longer existed by month six.

So the method follows the domain. Stable context: research, design, iterate, launch. Context moving underneath you: build, ship, watch what breaks, iterate. Choosing the wrong one of those costs about the same either way, and I had been treating the first as the professional default, when it is one of two options.

Scale's shared component system across sales, ops, investor relations, and agents, light and dark.
Scale's shared component system across sales, ops, investor relations, and agents, light and dark.

Guided compliance form

The form had been written for founders of any kind, so software founders were being asked whether they had physical store locations, and to pick a category from a list they had never seen. Both are support tickets waiting to happen. I argued for contextual examples and pre-filling what we already knew.

In progress

Making the assistant findable

It sat tucked in a corner where it read as a help widget, so founders were not finding the most useful thing in the product. Moved it and gave it a soft glow, so founders find it on their own.

Shipped

Pricing: three ways to cover a cost, and why one line won

Scale runs a live environment per founder, costing real money from the moment it starts. We wanted it running the second someone entered, because agents producing something on arrival is the value. So the cost lands before anyone knows whether that user pays.

The model before this was a flat fee per project, with one step free so a founder could judge the output before paying. It assumed someone committed enough to a single idea to put several hundred dollars behind it largely sight unseen. Early-stage founders are shopping between several ideas at once, and that assumption broke first.

Three options were on the table for what replaced it. Absorb it, and run instances for people who had not paid. Raise the price of Build to subsidise it, then charge again for actually using Scale. Or one price at one gate. I argued for the last, and my reason was as much marketing as product: I was going to be the person selling this, and a page that advertises one number then asks for a second the moment you finish a step converts worse and explains worse. A pricing model has to be sayable in one sentence.

How disagreements get settled here

There are no reworked-it-twice stories on this page, and that is not because nobody pushes back. I work with our PO as a co-owner of the spec: approaches, trade-offs and the reasons for and against get talked through before I open a file.

Disagreement surfaces as a conversation about the spec, before anyone has drawn anything. Rework still happens, when user sessions say it should, and then we run the same conversation again with better information. What has not happened here is rework caused by never having had the conversation, which is the clearest difference between this job and the last one.

Where this stands
Scale is still in progress. The system and surface are designed end to end.

Those decisions assume the product gives the founder a right answer. A model-driven one can't.

03 AI-native patterns · Shipping in pieces

Designing for a model that can be wrong

A conversational product makes a promise a deterministic one doesn't have to: that the thing on screen might be confidently incorrect. That is an interface problem before it is a model problem.

SurfaceTraction Studio AI, across chat and Scale
RoleSole designer
ScopeAwareness, structure, transparency
StatusShipping in pieces

Three patterns, applied across the product

These are defaults I apply wherever the model touches the interface, and they're the part of this job with the least existing convention to borrow from.

The same question came up larger when the product's agentic direction was being set. I argued it should automate what a founder can already do by hand, and stop short of running the company for them. The test is whether someone can still answer for a decision the product made for them. That position held, and it is the line I would defend hardest on any AI product.

Confidence scores were the obvious pattern and we turned them down, on positioning grounds. Traction Studio should read as a programme a founder is working through, and a percentage beside the output breaks that frame in one glance. Once it reads as general-purpose AI, it competes with general-purpose AI.

  • Contextual awareness indicators: showing the user what the assistant currently knows about them and their company, so a wrong answer traces back to a specific, checkable input
  • Structured input scaffolds: the blank box gets replaced with something shaped to answer into. The product is a sequence, and an answer that wanders off its step produces output built on the wrong inputs
  • Transparency messaging for hallucination mitigation: saying plainly, at the moment output is generated, where it came from and that it should be checked before anyone acts on it
An analyst nodding along to a panel, not noticing that one marked row on it is wrong.
Someone reading AI output and pointing at the part that looks right.
The three patterns in the product: contextual awareness indicators, structured input scaffolds, and transparency messaging.
The three patterns in the product: contextual awareness indicators, structured input scaffolds, and transparency messaging.
04 Traction Studio AI · Product design · In progress

Beyond the prototype

Every module started as a light, functional prototype. Turning that into a shippable product was its own body of work, spread thin across the whole surface.

SurfaceTraction Studio AI, across every module
RoleSole designer
ScopeNavigation, layout, and interaction patterns
StatusIn progress

The rest of the surface

The rest of a 0→1 product is ordinary by comparison, and it is most of the surface. Navigation was the biggest of it: targets too small to hit reliably, hover states that behaved differently depending on where you were, and a layout that did not survive a phone. The fix was one consistent idea applied everywhere, so finding a tool stopped depending on having found it once already.

Then layouts from placeholder to real content, and patterns applied across the surface that had only ever existed on one screen. None of it reduces to a decision worth its own chapter, which is why it is here: it is the volume of work between a working prototype and something you can hand a founder.

A first-time user surrounded by many small unfamiliar screens, meeting all of them at once.
A new user meeting the whole product at once, most of it ordinary screens.
Prototype-stage screens next to their shipped versions, across navigation and core layouts.
Prototype-stage screens next to their shipped versions, across navigation and core layouts.
The other half of this job

Codefi: the growth strategy I wrote, and the paid motion I ran

The tooling behind both

Codefi: product, growth, then the tooling to do both faster

Next case study

ConGenius: three years as the only designer