PRJ-005 · product-uiux

Masar Transit

Independent product study · Product designer & frontend engineer · 2026

Masar Transit

A transit companion for Amman's BRT and service-taxi network — offline-first, Arabic-first, and honest about uncertainty when the bus data is fuzzy.

Core Philosophy

Transit apps imported from other cities fail in Amman because they pretend certainty that doesn't exist — service taxis don't run on GTFS. Masar's core design decision is to visualize confidence: departures render as probability bands, not fake precise minutes. Riders told us the honesty felt more reliable than the precision of apps that lied.

Arabic isn't a translation layer here; it's the source language. Numerals, mirroring, and line-height were designed RTL-first, then flipped for English — the reverse of the industry default, and it shows in every detail that doesn't break.

Outcomes

  • 21-person diary study across 3 commuter corridors
  • Task success for 'next departure' raised from 46% → 91% vs. baseline apps
  • Full offline route browsing under 180KB of cached data

Deliverables

  • End-to-end product design (research → UI system)
  • Working PWA prototype
  • RTL-first design language

Technical Anatomy

Uncertainty visualization

Each route's headway history builds a per-hour distribution. The UI renders the interquartile range as a band ('6–11 min') with a confidence tint, degrading gracefully to schedule-only data.

Offline-first data layer

Route geometry and stop metadata are pre-bundled and versioned; live layers hydrate over them when the network allows. Workbox serves the shell instantly and revalidates in the background.

registerRoute(
  ({ url }) => url.pathname.startsWith('/routes/'),
  new StaleWhileRevalidate({ cacheName: 'routes-v3' }),
);

RTL-first component system

Every component uses logical properties (margin-inline-start, not margin-left) and direction-aware iconography. The English build is the mirrored variant — Arabic is the default, so RTL bugs are impossible to ship silently.

Back to Index