Telecom Platform
From an internet provider website
to a scalable telecom service platform
Bounce rate more than halved.
Site quality index grew by 46%.
The new eSIM flow now handles hundreds of successful requests every day
Eight years inside one product
Miranda is a regional telecom operator with three audiences sharing one interface: residential
customers connecting home internet or mobile, businesses on their own tariffs, and competing
ISPs leasing Miranda's network — because Miranda owns the regional infrastructure.
We built Miranda's original site in 2016. And we stayed on technical support every
year
since — adding new services, new sections, new flows onto an architecture designed
for
something much simpler.
By 2024 the site was a Frankenstein. Some pages were ours. Some were built by Miranda's internal team. Each one was reasonable on its own. Together they were a list of compromises I'd been quietly accumulating.
By 2024 the site was a Frankenstein. Some pages were ours. Some were built by Miranda's internal team. Each one was reasonable on its own. Together they were a list of compromises I'd been quietly accumulating.
When the brief landed — refresh the visuals, add SIM ordering — I thought: finally.
"Just a redesign" is something clients say a lot, and underneath it
there's usually a much bigger project waiting.
After eight years inside this product, I could see the bigger one clearly. So I scoped it that
way and made the case.
The eight years weren't a constraint on this redesign. They were the biggest advantage. I'd watched users struggle. I knew which patterns had aged well and which had started working against themselves around year three. I didn't have to discover the problems. I'd been watching them accumulate.
I just finally had the chance to fix them properly.
The eight years weren't a constraint on this redesign. They were the biggest advantage. I'd watched users struggle. I knew which patterns had aged well and which had started working against themselves around year three. I didn't have to discover the problems. I'd been watching them accumulate.
I just finally had the chance to fix them properly.
The five principles I built around
One visual language across all three audiences.
Not three sub-sites with three identities. One Miranda. Differentiation lives in information architecture, not in colour and type..
Mobile-first as architecture, not viewport.
76% of users were on phones. Every flow had to ship complete on mobile — including the ones with government redirects and split payments. If a flow only worked on desktop, it didn't ship.
Personalisation by region, by user type, by existing services.
An existing mobile customer landing on the internet page shouldn't see the same homepage as a first-time visitor.
Everything online.
Every service that previously needed an office visit — completable in a browser.
Support visible at the point of pain, not in a help menu.
People come to a telecom site with problems — slow internet, billing disputes, outages. Support entry points sit in context: on the speed test page, on the billing page, on the network coverage map.
eSIM: an obstacle course we had to walk people through
Ordering a SIM on this site isn't checkout. It's closer to an obstacle course. Picking a tariff
and a number is just the entrance.
Fragile points
The most fragile point in the whole flow, I thought, would be the government
contract signing — the moment the user leaves our site for an external system, with
a long wait for the response. If we lost them anywhere, it would be there.
I wanted one emotion at the end of this flow: pride. The kind a person feels when
they've
done something complicated on their own and it worked. Telecom flows usually leave you
feeling slightly suspicious of yourself — did I do that right? will my SIM actually arrive?
I wanted the opposite.
What that meant in practice:
Clear stages, always visible. The user knows where they are and how much is ahead.
Microcopy doing real work. Every field explains why it's being asked. Icons as a
second layer of explanation. Visual hierarchy so the order is obvious without
instructions.
An illustrated walkthrough before the government redirect. Annotated screenshots of the
external service, showing where to click and what to expect — so the moment the user
leaves our site isn't the moment they get lost.
No drop on error. If something goes wrong, we explain what happened and what to do next.
Nobody is left holding a code.
Hundreds of successful orders a day. The design held.
The numbers showed me where. The sessions showed me why.
A living product produces new signals every day. Funnels, sales and exit pages show where something is going wrong. Session recordings are often where the unexpected explanation appears.
While reviewing the eSIM journey, I noticed a recurring loop. People chose a tariff, tried to switch to Miranda with their current number — and received an error. They tried again, sometimes several times, then left. Roughly one in five of the sessions I reviewed followed this pattern.
While reviewing the eSIM journey, I noticed a recurring loop. People chose a tariff, tried to switch to Miranda with their current number — and received an error. They tried again, sometimes several times, then left. Roughly one in five of the sessions I reviewed followed this pattern.
I investigated why the system was rejecting them. The answer changed the problem completely: these were already Miranda customers.
They weren’t trying to switch from another operator. They were trying to change their tariff — and the acquisition flow was the closest path they could find.
We replaced the dead-end error with an explanation and a direct route to tariff management in the personal account. Now I’m checking whether users follow that route instead of restarting the same loop.
The immediate fix was small. The larger insight wasn’t: Miranda’s public website was built extensively around winning new customers, but existing ones were also using it to manage their services — sometimes through paths we never expected.
The next step is to support them earlier: explain how to change a tariff, surface personal-account and mobile-app actions in context, and make common subscriber tasks easier to find.
The next step is to support them earlier: explain how to change a tariff, surface personal-account and mobile-app actions in context, and make common subscriber tasks easier to find.
The devil is in the details
While working on the new website for Miranda, I not only created new user journeys, but also
analyzed the old ones and tried to understand what was wrong with them. Why weren’t they working the
way they should?
I analyzed user behavior on the website, their interaction with every page and every form, identified weak points, and fixed them. This is where attention to detail and microcopy plays a crucial role.
I analyzed user behavior on the website, their interaction with every page and every form, identified weak points, and fixed them. This is where attention to detail and microcopy plays a crucial role.
I rewrote every field with the user in mind.
* because what if you're connecting internet for your elderly mother — that address isn't your registered one
*so you can double-check what you're actually ordering
*If nobody fills it in, it isn't research. It's clutter.
The result? A 35% increase in conversion for this service.
The same approach drove dozens of smaller
decisions — the beautiful-number selector alone went through five rounds of figuring out how to even
define "beautiful." Search became a sales channel with contextual results, not a styled lookup. Most
of this work is invisible in the final design. That's the point.
The design that kept changing
Mobile tariff cards went through more iterations than any other element on the site. After
launch. After year one. After year two. They're still changing now.
This isn't a failure of the original design. It was the point.
This isn't a failure of the original design. It was the point.
First version
Second version
Third version
Tariffs are how a telecom operator makes money. Pricing changes. Packages get added. Promotional
structures evolve. The marketing team needs to test what sells — which means the tariff card has
to absorb new content types without breaking the system around it.
So I built the design system to expect this. Same base structure, swappable content modules, predictable spacing rules. New tariff format? It snaps in. Promotional badge? It has a defined slot. A/B test between two card layouts? Both inherit the same typographic and colour rules, so the rest of the page doesn't shift.
So I built the design system to expect this. Same base structure, swappable content modules, predictable spacing rules. New tariff format? It snaps in. Promotional badge? It has a defined slot. A/B test between two card layouts? Both inherit the same typographic and colour rules, so the rest of the page doesn't shift.
A site this size isn't something you design once. The deliverable wasn't a set of screens. It
was a system that could keep evolving for a decade.
The flow worked. Then the wait got longer.
The first version of the eSIM flow was already processing hundreds of successful orders a day. Then a new government identity check made one of its most fragile steps even longer.
I went back to the data and found a clear drop around the wait for approval. Session recordings suggested one explanation: the countdown made people think they had to keep the page open until the check was complete.
We formed two hypotheses. First, let people leave and bring them back when the result was ready. Second, reduce the waiting time itself.
I went back to the data and found a clear drop around the wait for approval. Session recordings suggested one explanation: the countdown made people think they had to keep the page open until the check was complete.
We formed two hypotheses. First, let people leave and bring them back when the result was ready. Second, reduce the waiting time itself.
Then we worked with the external service to bring the response time down from around fifteen minutes to three. Over the next three days, completed orders increased by another 29%, ending with a new daily record. By then, average daily orders were 177% above the initial baseline.
The two changes solved different parts of the same problem: communication removed the uncertainty, while a faster response removed the wait itself.
One Miranda, one design language
The design system was built atomically. Tokens at the base, then primitives, then components, then
patterns. A theme engine that lets the brand evolve without rebuilding components. Forty-plus custom
icons for telecom-specific contexts — network strength, billing states, service types — because
stock icon sets don't cover this territory.
What the numbers said
Six months after launch, Miranda's head of marketing shared the data with us.
Bounce rate — a ~58% reduction.
Mobile service conversion up 35% versus the old site.
Internal site quality index climbed 46% in the first six months and continued climbing.
Mobile service conversion up 35% versus the old site.
Internal site quality index climbed 46% in the first six months and continued climbing.
The number that mattered most to us wasn't on the dashboard, though. It was that ten years into
this partnership — through changes in their leadership, their team, and an internal IT
department that grew up around us — we're still the studio they call when something needs to be
designed.