Transforming Lumo
Making a powerful backend behave like the product it already was.

Most founders reach us at the same moment. The product works, but it doesn't look like it works. Vibe-coded, mid-build, maybe freshly rebranded, a launch on the calendar, and a front-end that quietly undersells everything running underneath it.
That was Lumo.
Lumo is an AI automation platform for managing TikTok Shop affiliate creators: the discovery, outreach, sampling and tracking that agencies currently run across hundreds of creators in sprawling spreadsheets. Missed follow-ups, fragmented process, chaos. Powerful infrastructure built to end all of it, behind a front-end that didn't yet say so.
They came to us mid-build, launch pending, freshly rebranded. The backend was genuinely strong. The interface hadn't caught up.
The product had a shape it wasn't using
We started in the codebase, not the interface. Extracting context directly from the code gave us an exact read on what Lumo already did: no discovery calls, no hand-holding, no roadmap to derail. The team kept shipping; we got up to speed without taking their time to do it.
What it revealed was that every module was really one stage of a single journey: a creator moving from discovered to contacted, responded, sampled, posting and performing. The loop was already in the data. The interface didn't reflect it. Worse, the modular build siloed each function, so users had to hold the process together themselves, jumping between sections to move a single creator forward.
Most products carry a structure like this: a logic that's true in the code but invisible on screen. Finding it is the first thing we do, and it's usually where the biggest unlock hides. For Lumo it reframed the entire job. Not a reskin. Making the product behave like the single engagement engine it already was underneath.
“What really stood out was the attention to detail: the consistency of the design system through to the thoughtfulness of the micro-interactions. Otto clearly invested real time understanding the problem space before putting pen to paper, and it shows in the confidence and clarity of the final output.”
Tom StanleyCo-founder | LumoFoundation now. Lifecycle once users speak.
With launch close, we made a deliberate call about sequence. Phase one: install the system, optimise what was already built, get the product consistent and launch-ready. No backend rewrite, no derailed roadmap. Phase two, the deeper engagement-lifecycle layer, waits until the product is live and real usage is in. Build the foundation now. Let the users decide what comes next.
The whole engagement ran async, on the team's schedule, with minimal check-ins, because the context came from the codebase, not from their calendar. They kept building the business. We handled the design.
What was in scope
One engagement, end to end:
- Codebase context extraction: a full read of the product from the code, not a briefing.
- Strategic product decisions: the call on the product's shape, and the phasing of what to build now versus later.
- An enterprise-grade design system: production-ready, installed directly in the stack.
- High-impact UX: existing flows tightened, clarified and made consistent.
- A brand-aligned landing page and auth: the first thing users and investors see, on-brand from the first screen.
- Code-level implementation specs: handed over ready to build, no translation gap.
- A walkthrough video per feature, plus full handover documentation, so the team ships it without us in the room.
What we installed

Production-grade components and specs, not a Figma file someone has to rebuild in code. A Tailwind-aligned theme, light and dark mode, full state coverage, and navigation rebuilt to follow the order the work actually happens. Every screen is geared to move the creator one step further down the lifecycle, so the product always tells the user what to do next. Code-level specs and a walkthrough video per feature meant the team shipped it without a handoff gap.
This is the part founders underestimate. You wouldn't hand a salesperson the codebase. Making your developers do the design is the same trade in reverse. It isn't their training and it isn't their job, so the debt compounds quietly until it costs you: deals that stall, customers who don't trust the surface, raises that get harder. A foundation built once is the cheap option. Rebuilding a product that scaled on the wrong base is the expensive one, and every feature you ship from here inherits the brand instead of fighting it.
The result
Lumo hasn't launched yet, so the proof here isn't a metric. It's a position. The product goes into its launch window as one thing instead of a set of working screens: consistent brand, navigation that follows the work, foundations every future feature inherits, and a clear story to put in front of investors and partners, built on top of what the team had already made, not in place of it.
What that's worth isn't theoretical for us. We've installed these same foundations across startups that have collectively raised over $30M, reached 7- and 8-figure valuations, and onboarded 50K+ users. Lumo launches from that same base. Phase two layers in the full engagement loop, on the team's schedule, once the users have spoken.
“He was collaborative, receptive to feedback, and always came back with solutions better than what we'd imagined. If you get the chance to work with Otto, take it. He's the kind of designer who genuinely elevates a project.”
Tom StanleyCo-founder | LumoBuildOS isn't just design. We're builders. Over half a decade across brand, marketing and product, with a holistic view of what it takes to scale a product to launch and beyond.
Discover what's holding your product back.
A focused read of what's making your product read as early, and what to fix first.
Book a call