Skip to content
All projects

Days → caught on arrival

finding a tracking bug · across a 10-part headless stack, one observable flow

Case study · DTC · headless Shopify

How Mood kept its data trustworthy across a 10-tool stack

Mood.com is one of the fastest-growing DTC brands in its category, and its marketing reaches far past a normal Shopify store: headless architecture, multiple landing-page systems, several domains, many ad platforms, a growing pile of specialist tools. Every new tool is another data source and another thing that can break. The question that decides whether a fast brand keeps winning is simple: can you still trust your data when your setup gets this complex? Here's how to keep control of it.

The problem

Each tool worked. Together they became a network nobody could see into

Unlike a normal store with one website, Mood had grown into a distributed marketing setup. The customer journey crossed multiple domains, standalone landing pages, different frontend technologies and Shopify itself. Every system fired events on its own; different tools consumed and reshaped the same data. Each tool solved a real problem - together they were hard to watch.

Simple questions got surprisingly hard to answer:

Here's what that costs at speed: without one place to see the whole flow, finding a single issue took hours - often days - of manual detective work. For a brand adding campaigns and tools every month, that's not a tracking annoyance. It's a brake on how fast you can safely scale. You either slow down to stay sure, or you keep moving and stop trusting your own data.

What good looks like

At scale, the thing that matters isn't more tracking. It's one place you can see and control the whole flow

Complex systems will have problems - that's a given. The thing that separates a setup you operate from one that operates you is whether you find issues days later or the moment they happen. Three marks to check yours against:

If your honest answer to "which tool dropped that event?" is "I'd have to dig for a day," you don't have a reliability problem with any one tool. You have a visibility problem across all of them - and adding another tool makes it worse, not better.

What we did

We made one observable flow the team operates, not a web of tools that operate each other

We didn't chase individual tracking bugs. We redesigned the whole data flow around one rule: every event passes through one observable, controllable point before anything downstream receives it. Three moves carried it:

  1. 01

    One central, observable flow. Instead of every tool talking to every other tool, all the important events route through one place where they're monitored before distribution - standardised definitions, consistent transformations, reliable delivery to each ad platform. The job stopped being "collect data" and became "operate the whole marketing data setup."

  2. 02

    Monitoring instead of reactive debugging. Continuous checks across the full setup - event volumes, missing events, pipeline health, cross-domain behaviour, platform delivery, unexpected tracking changes, data anomalies. Finding a bug went from manual detective work to a structured diagnostic: the setup itself points at where the problem started.

  3. 03

    Hold attribution together across domains. Users move between landing pages, funnels, multiple domains, headless frontends and Shopify checkout. We coordinated identifiers, consent, sessions and event forwarding so journeys stay measurable across the whole funnel, wherever it's technically and legally possible.

Underneath sits a marketing data warehouse as Mood's single source of truth, and a tracking architecture standardised enough that the next tool fits into a controlled setup instead of becoming the next thing that quietly breaks.

Technology stack

We don't sell the tools. We design and operate the architecture that makes them work together

Every client needs a different combination of technologies. For Mood we worked across a modern composable setup:

None of these is the product we sell. The product is the architecture that connects them into one reliable marketing data setup - which is why the same approach works whether your stack looks like this one or nothing like it.

The result

A setup complex enough to win on, reliable enough to trust

The outcome wasn't a tidier dashboard. It was an infrastructure that lets a high-growth DTC brand operate a genuinely complex marketing ecosystem with confidence. The team stopped questioning their numbers and got back to improving performance. When something breaks, it's found fast instead of after days of digging. When a new tool arrives, it slots into a controlled architecture. And as the business scales, the data foundation scales with it instead of becoming the next bottleneck.

The takeaway

Past a certain size, the win isn't another tool. It's an architecture you can see and operate

Fast brands don't fail because they picked the wrong tracking tool. They lose trust in their numbers because no one operates the whole setup as one thing. The fix is one observable flow you control - so growth adds capability, not chaos. If your next tracking question would cost you a day of digging, that's the signal to fix the architecture, not to add a tool.

Let's make your data trustworthy enough to decide on

Talk to Dominic