Nine years on one product – from a brand mark to the data plumbing underneath.
It started with a maze
The first thing I built for Meiro wasn’t Meiro. It was an app ranking the reach and popularity of celebrities in Spain. A month later the founders asked me to make the brand instead. Meiro means “maze” in Japanese, and we wanted a mark that didn’t look like every other blue tech company – at the time there were plenty.
I met the co-founders – Pavel, Jana and Vojta – in South Moravia, along with the early crew. I joined with a longtime friend, Jirka, and we started on Meiro Integrations, the connectors-and-loaders layer that moves data in, transforms it, and pushes it back out. The CDP followed. I’ve been on the product ever since.
From Material UI to a system of our own
We built the first version on Material UI. Right call – we needed a product fast, with no budget for a design system. A year in, the first real users arrived, the team and the Figma library both grew, and the defaults started to fight us. Meiro had its own data concepts, its own interaction density, and a mix of technical and non-technical users Material was never meant to carry. So I built a design system that actually matched the product.
The first hard thing was the segmentation builder: full propositional logic – nesting, parentheses, negations – without making the screen feel like a SQL editor.
I built it shoulder to shoulder with the front-end developers, our CEO and CTO. From there the toolkit grew – smart segments, customer profiles, and identity stitching, a touchpoint map of how someone became a known customer – alongside consent and governance, analytics dashboards, and the connectors that pull data in and push it back out.
Real customers, real load
Around three years in we built Meiro Events – first-party event capture that survives privacy changes and works across browsers – added a second brand colour, and quietly unified the UI to fix the dents a few years of fast shipping had left.
By then Meiro was running for serious customers: BCA, Indonesia’s largest private bank; Chemist Warehouse, Australia’s biggest pharmacy retailer; Der Touristik, one of Europe’s largest travel groups; and at home in Czechia, Komerční banka and Direct pojišťovna. An early one was Kiwi.com, the Czech travel-tech company behind algorithmic cheap-flight routing. Watching people build segments by the hundred and automate on top of them was the best UX test we had – and most of what I learned went straight back into the product.
The brand, briefly
The maze gave us something to draw from that wasn’t a cloud icon. I kept the brand alive throughout – decks, the website, motion, and yes, setting the business cards – all the bits that escape the screen.
Meiro Pipes – more code than Figma
The turning point arrived the way these things do: Vojta – our CTO then, Head of R&D now – came back from the Christmas break thoroughly fed up and vibe-coded the prototype for a new generation of the CDP. It started with Pipes: the infrastructure layer that captures events from web, mobile and server, resolves identity in real time, and routes data to a warehouse, analytics, or activation.
Working on Pipes felt different. The prototype already held a lot of product thinking in code, so I wasn’t opening a clean Figma file – I was stepping into a moving system. That suited me: I started out as a front-end developer and had been drifting toward a design-engineer role anyway. On Pipes I spent more time in code than in Figma, refining states and flows where the complexity actually lives.
Pipes is for data teams, so the priority was data health: is data flowing, are events valid, what’s incomplete, what to fix next – raising a problem without raising a panic.
A lot of that went into Piper, Meiro’s AI assistant. Rather than bolt a chat box onto the corner, I kept Piper next to the work: explaining errors, suggesting schema mappings, guiding setup inline.
Onboarding is deliberately on rails – spin up a demo instance, create a pipe, connect a destination – so you’ve touched source, transform, identity and routing before you’re left alone with it.
Engage and Audiences: same engine, different driver
Engage and Audiences are for marketing and growth teams, not engineers. Audiences holds the persistent single view of each customer – the identity graph and governance Pipes writes to – and the segmentation built on top. Engage turns those profiles into journeys and campaigns across email, push, SMS, WhatsApp, web banners and paid media. By the time a marketer opens Engage the instance is already wired up; they shouldn’t be thinking about plumbing, just about what they can do right now.
What makes this interesting is that it’s the same engine underneath – one data layer, one identity graph, one governance model, no ETL between the products – but the people on top need opposite things.
Engineers want observability and control; marketers want confidence and momentum. Even Piper switches hats – the error-spotter from Pipes becomes a guide here, suggesting segments, drafting journeys, and explaining results in plain language.
Outcome
Nine years on, the result is one product language with two kinds of user – broad enough to hold infrastructure, profiles, segmentation, journeys, activation and AI assistance without every surface feeling like a separate app stapled to the last. Three product lines ship on it today, carrying banks, retailers and travel groups at serious scale. And the maze from 2017 is still on the door.
It changed how I work, too. Meiro began as a brand job, became a long product-design collaboration, and now leans into design engineering – getting close enough to the product to shape it where the real complexity lives. The Spanish celebrities, in hindsight, were a decent place to start.