A feed platform that pushes thousands of products to Google, Facebook, TikTok and price-comparison channels. The power was already there — what was missing was the ability to wield it. I gave the rule types a taxonomy, pulled channel mapping into one table, and moved the preview inside the build.
The product could do anything: merge sources, transform data through 14+ rule types, map to each channel's own schema. None of that power was visible — users couldn't know what would happen before they saved.
Appealing only to expert users capped growth; onboarding cost was high.
Users couldn't see a rule's outcome while building it, and only discovered a missing required field when the export broke.
Reducing complexity without cutting power: presenting 14 rule types and multi-channel mapping without drowning the novice or slowing the expert.


This wasn't a beautification job. First I had to take the rule engine's logic apart, then find where users collided with it.






Until a rule was saved, which products it hit was a mystery — the single greatest source of hesitation.
Users weren't overwhelmed by the number of rule types, but by the absence of a shared logic between them.
Users spent most of their time in the table. Table design isn't a supporting act — it's the main one.
A separate 'simple mode' would have split the product in two; the answer was progressive disclosure.
I ran discovery: I took the rule engine apart, observed users building rules, and reduced every finding to a single design principle.
Every design decision tied back to one of these four goals.
A new user should build their first rule without asking support.
Making a rule's impact visible before it's saved.
Progressive disclosure: depth is one click away for those who want it.
A component system that holds as new channels and rule types arrive.
Rather than splitting the product in two, I built a progressive-disclosure strategy that carries all three levels in one panel.
Not technical; just wants products live on channels. Needs: ready templates and safe defaults.
Optimising channel performance. Needs: to see a rule's impact before saving it.
Running many clients at once. Needs: speed, bulk actions and depth in the table.
The product was never one rule form: source merging, the rule engine, channel mapping and monitoring were separate modules. I mounted them all on one backbone — learn it once, find the same logic everywhere.
I rebuilt the rule-building flow and the panel's information architecture: I split one form into four steps and put the preview at the centre of the flow.
Each decision answers a discovery finding. Not aesthetics — reasoning.



I made all three calls: I synthesized the observations, weighed the alternatives with the product team, and implemented them in the UI.
I validated the stepped flow before colour: at each step, what does the user know, what can't they see, and what can they undo?


In a data-dense interface colour isn't decoration, it's signal. I reduced the palette to states: blue for action, green for success, amber for warning, red for error — everything else neutral.
I built the panel's design system: I defined the table hierarchy, the status colours, the spacing scale and the component behaviours.
Bringing data in, seeing what comes out after rules and mapping, watching the feed's health — the product's spine lives in these three screens.



You don't have to erase complexity — it's enough to make it visible and reversible.
This was my first serious encounter with a data-dense interface, and it taught me that users don't reject power — they reject uncertainty. Giving the rule engine a taxonomy was far harder than designing screens one by one, and far more durable. Starting over, I'd validate that taxonomy with usability testing before it shipped; back then I settled for observation.
A user can do the hard thing. They can't do the thing whose outcome they can't see.
Wherever the user spends most of their time, that's where most of the design should be.
Instead of designing fourteen screens, the job was to find the logic the fourteen share.