Landing pages that improve themselves.
Episode is a platform for marketing teams and agencies. It reads a brand, builds a campaign page in minutes, then keeps improving it by testing variants and promoting the ones that convert, with the marketer in control. I'm the freelance product designer on it, and I own the front end: I design the flows and ship them in React and TypeScript. It's in private beta with paying customers.
I own product design end to end: information architecture, the interaction model, the design system and the marketing site. The core problem is trust in an agentic product, so most of the work lives at the edges of generation, a brand-confirm step before any credits are spent, a loader that draws the page section by section during the wait, and an optimize model that shows what the automation is doing and lets the marketer take back control at any time.
One rule anchors the system: a single accent color marks the one primary action or a live signal, and a customer's own brand color only ever appears as data. It keeps a dense, automated app feeling like a calm starting point rather than a control panel.
Episode is a React 19 web app, shipped in five languages. I don't just hand off mockups, I design and prototype the harder flows directly in the codebase, the generation loader, the brand-confirm step and the Studio shell, using Claude, Claude Code and Cursor. When the prototype is the real app, timing, empty states and error paths get designed against real data instead of faked in a static frame and lost in handoff.
Episode is in private beta, so the unreleased flows and the full design-system rules aren't public yet. If you want a walkthrough of the parts that aren't on this page, tell me a little about who you are and I'll set one up.