From custom UI to a system the whole company designs with
Fospha is a marketing measurement platform that shows ecommerce brands what's really driving their growth. I first designed for it in 2016, before it had found its market. When I came back in 2024, the product had great technology and years of customer learning behind it, but the interface was needlessly custom and had no design system underneath. Over two years, first as Product Design Lead and then as Head of Design, I put one in place and extended it to the rest of the company.

- Role
- Product Design Lead (2016–17); Product Design Lead, then Head of Design (2024–26)
- Team
- Product trios with PMs and engineers; Rich Hallows, design systems specialist and my Kindly co-founder; marketing, sales and partner teams
- Timeline
- 2016–2017, 2024–2026
- Tools
- Polaris, Figma, Storybook, Chromatic, Stylelint, Claude Code, Webflow
- Live
- fospha.com ↗
What I owned
Fospha asked me back to help the product team work in the product operating model. I owned the design system end to end, led design in product trios with product and engineering, and later took the system beyond the product to marketing, sales and partners.
- Wrote the business case for a design system and brought in a specialist to build it with us
- Led the move onto Shopify's Polaris, and trained engineers to use it by building alongside them
- Wrote the user interface playbook that set how design and engineering work together
- Set up AI-assisted prototyping and continuous research to decide what to build next
- Created a Claude design system for the whole company, and used it to redesign fospha.com
What we were up against
Users
- The product's UX and content were solid, but the interface was inconsistent and needlessly custom
- Screens solved the same problems in different ways, so customers had to relearn patterns
- Customers already used Shopify every day, but nothing in Fospha felt familiar
Business
- Ship new navigation, filtering, Spark insights, deeper reporting and chart-level filters without piling up more debt
- Prepare a lighter version of analytics for small and medium businesses through TikTok
- Sales, marketing and partners relied on designers for every deck, dashboard and asset
Constraints
- No design tokens: every colour and spacing value was set by hand
- Design and engineering spent about 1.5 days a week on UI reviews, more with QA
- Engineers were new to building with a design system
- A small design team serving the whole company
01Making the case for a design system
Within weeks of coming back, I wrote a business case. The product had moved from Looker to its own React app and was learning fast, with new navigation, filtering, insights and reporting on the way. But with no design tokens, every one of those features added design and front-end debt, and design and engineering were losing about a day and a half a week to UI reviews over colours and spacing.
I argued that tokens would give designers and engineers a shared language, let us improve the product by changing a handful of values instead of hundreds of screens, and free reviews up for customer problems. To build the bridge between design and code properly, I brought in Rich Hallows, a design systems specialist and my co-founder at Kindly, the web agency we set up together. He'd built systems for Barnardo's and the Evening Standard and created Stylelint, a CSS linter downloaded millions of times a month.
02Choosing Polaris
After researching the options, we chose Shopify's Polaris over building our own. Many of our customers run their stores on Shopify, so its patterns were already familiar to them. Polaris also gave us foundations, design and content guidance, patterns, components and tokens on day one, so we could save our own effort for problems unique to Fospha.
The first release on Polaris was an instant step up: consistent filters, cards and controls across the product, and a customisable dashboard customers could shape around their own targets.
fospha/platform-before.webp
fospha/platform-polaris.webp
03Teaching the system by building with it
Engineers hadn't worked with a design system before, so I trained them bit by bit, often co-coding to show which component to reach for, which props to use, and why. I wrote it down as a user interface playbook built on three principles:
- Shared language: one set of foundations, tokens, components and patterns
- Shared source of truth: code, not Figma, with designers owning the coded tokens and components
- Shared platform: everything grounded in the web platform
Stylelint and the Polaris plugin acted as a safety net, flagging hard-coded values and missing layout components. Custom components lived in Storybook, with Chromatic for design review, visual regression and accessibility testing, and Lighthouse to keep the product fast.
04Faster discovery, then our own flavour of Polaris
We worked in product trios and used Teresa Torres' continuous discovery approach to decide what to work on next. Polaris made that faster. AI tools could generate disposable prototypes that already followed Polaris patterns and principles, so we could put realistic ideas in front of customers in days and test more of them.
Only once an idea had been validated through research, release and product analytics did we build something custom: semantic tokens made from Polaris primitives, and our own components, like charts, where Polaris didn't cover our needs. Analytics v2 was organised around customers' jobs to be done: reporting, planning and benchmarking.
fospha/analytics-v2-sitemap.webp
05A Claude design system for the whole company
Next, the rest of the business needed the same consistency without waiting on design. I built a Claude design system with Claude Code and deployed it as an internal web app on Vercel, iterating on it as teams used it. Colleagues could now:
- spin up several variants of a sales deck instead of commissioning a bespoke PowerPoint
- build partner dashboards that showed the platform's value
- create 3D renders, which we used for our stand at ShopTalk
06Redesigning fospha.com
Most importantly, the system underpinned a full redesign of the website. I wireframed the homepage as an interactive prototype, with notes on every section for the Webflow build: a hero that tells the story in three beats, stats that count up as you scroll, sticky storyboards for each of the four product suites, and a section walking through a marketer's week. All the homepage animations were made with the system in Claude.
We also moved our reports out of Canva and onto the website as proper pages, so search engines and AI assistants can find and cite them. A structural template keeps every report consistent: one clear headline, a single key stat, findings in a repeating pattern, and a clear next step.
fospha/site-before.webp
fospha/site-first-redesign.webp
fospha/site-current.webp
fospha/homepage-wireframe.webp
fospha/report-template-wireframe.webp
07Where it started: designing before product–market fit (2016–17)
My first stint was much earlier. Fospha had just acquired the analytics company iJento and was still finding its market. I worked with data scientists to turn large volumes of client data into product, and interviews and paper prototypes with marketing managers pointed us at multi-channel attribution as the problem worth solving.
fospha/early-attribution.webp
Impact
Fospha went from a custom interface with no system underneath to one system running through the product, the material sales and partners make, and the website. Client sessions on Analytics v2 were 40% higher than on v1, and the average customer opened their dashboard 16 times a week. Engineers learned to build with the system, and research and prototyping moved faster because ideas were grounded in it from the start.
What I'd take to the next project
- Adopt before you inventPolaris gave customers familiar patterns from day one. We only built custom once an idea had been validated.
- Teach by building togetherCo-coding with engineers did more for adoption than any documentation.
- AI tools need a system to be usefulPrototypes were only realistic because they were grounded in Polaris and our tokens.
- Put the system where people already workA Claude design system let non-designers make on-brand work without a design queue.