← All projects
SaaS · ObservabilityGeo-monitoringVue · PrimeVue

MultigeoMonitoring

A SaaS service that monitors availability from dozens of countries. Incident-first: it shows not “all good”, but exactly where the service is down.

Role
Product designer
Timeline
September 2025 — January 2026
Domain
Observability / SRE
Stack
Vue · PrimeVue
MultigeoMonitoring

Context

Monitoring that thinks in geography

MultigeoMonitoring checks domain availability from many selected countries in real time and sends alerts on outages. Ordinary uptime monitoring looks from a single point — but real availability depends on geography, ISP routing and local networks. I owned product design: from analytics and the BRD to architecture, the landing page and UI patterns.

Logic
Incident-first
Data axis
Country
Theme
Dark · teal
Scope
Whole product

Goal

Make the dense “domains × countries” matrix readable

Geo-monitoring produces a dense matrix: dozens of countries against hundreds and thousands of domains. Done naively it turns into an unreadable heatmap that breaks at scale. I had to build an interface where you see “where it’s bad” in a second, and which doesn’t fall apart at 1000 domains.


What I did

Built a geo-centric product from analytics to UI

Incident-first interface: “where it’s bad”, not “all good”

I made errors-only the primary mode, not a secondary tab. The product opens on problems: you immediately see which domains are down and in which countries — an interface for responding, not for reports.

Errors-only as the primary mode
Errors-only as the primary mode

Country as a first-class entity

I rebuilt the data around country as the primary axis: country tokens, ISO codes, flag emojis, careful time zones and date formats. For competitors geo is an extra setting; here it’s the core of the model.

Country tokens and a geo-centric model
Country tokens and a geo-centric model

Progressive disclosure of a dense matrix

I collapsed the unreadable “domains × countries” heatmap into a three-level system with disclosure on demand: at the top, only countries with problems; deeper, the domains inside a country; deeper still, the details of a specific check. So the interface doesn’t fall apart at scale.

Level 1

Countries

Only countries with incidents — errors-only by default.

Level 2

Domains in a country

Expand a country → the list of problem domains inside.

Level 3

Check details

A specific check: what failed, when and how.

Principle

An interface should show not “all good” but “exactly where it’s bad”. Errors-only is the primary mode, not a secondary tab.

Positioning

How it differs from UptimeRobot, StatusCake and BetterStack

Alerts-first

A product for responding, not for reports: it opens on incidents.

Multigeo = the core

Country is the primary data axis, not an extra setting.

Readable at scale

Doesn’t break at 1000 domains thanks to level-by-level disclosure.

SaaS from day one

Billing, roles, teams and an API key are built into the UI already in the MVP.


Outcome

A complex geo-domain turned into a clear product

Out of a dense matrix and “VPN chaos” came a readable incident-first product: a geo-centric model, progressive disclosure, built-in SaaS readiness and a dark landing page matching the positioning.

What I’d do differently

The three-level disclosure was worth testing on real operator shifts, and the incident colour semantics worth taking to strict tokens with a contrast check.


Next