Live on the App Store

Coway Map

Rain-aware walking navigation for Singapore. Instead of the fastest route, Coway Map finds the path that keeps you driest, through covered walkways, overhead bridges, underpasses and indoor links, or the one that keeps you out of the sun.

Service region: Singapore

Sheltered route to Suntec City: 97% under cover, against 35% on the direct line
Route broken into covered and open stretches
Live rain radar over the route before setting off
Shaded mode keeping the walk out of the afternoon sun
Step-by-step navigation that says where the roof ends

Drag or swipe to browse the app

1,236 km

of covered walking network, from LTA, OpenStreetMap and HDB data

16% → 37%

of a central walk under cover, fastest route against sheltered, over 40 test routes

+3%

median extra walking the sheltered route asks for that cover

5 months

from first commit to the App Store, built on my own

The problem

Singapore's equatorial climate brings near-daily downpours, so the city is laced with covered linkways, overhead bridges, underpasses and MRT concourses. Regular maps only show the quickest path; locals instinctively take the route that keeps them dry. Coway Map turns that instinct into an algorithm.

Mapping the roofs

The sheltered network is only partly available as routable open data, so I built one: LTA's covered-linkway and overhead-bridge polygons, OpenStreetMap shelters and HDB block footprints, laid over government footpaths and joined into a walking graph of more than 100,000 edges.

Each path is classified by how much of it runs under a roof: 80% or more counts as fully covered, 50% or more as mostly covered, and rules handle the rest, such as indoor and underground links. Every covered segment keeps the source it came from, so any one of them can be corrected.

Routing through stations

Many of the driest routes run underground, and there is no open data for station interiors. Instead of rebuilding them, each MRT station is a portal: its exits are joined through a virtual underground concourse, so a route can pass through the station under cover.

Malls get the same treatment, with inferred entrances and opening hours, so a route never sends you through a passage that is shut.

Pricing the rain

Every path is priced by its walking time and how exposed it is. The Sheltered route sets w to 2, which would accept a walk three times as long to stay covered.

A sweep of 80 test routes against the live graph showed it never needs to: the worst detour was 1.22×, and in central Singapore the sheltered route raised the covered share from 16% to 37% for a median 3% more walking. The router is limited by the roofs that exist, not by how far it will detour, so coverage is what to grow.

cost = time × (1 + w × (1 − protection))

Shade from buildings

Rain comes and goes; the sun doesn't. For every path the model stores how tall the buildings beside it are against their distance, on each side, and works out where the sun is when you ask for a route.

Building shade is kept apart from recorded roofs, so a route can tell which of its cover is surveyed and which is computed. The Shaded route accepts up to twice the walk, and isn't offered after sunset.

Around the walk

MRT and bus journeys with walking legs that start at the right station exit. A live Transit tab with bus arrivals and crowding at nearby stops, each service's buses on the map, and MRT service advisories. NEA's rain-area overlay, rain alerts for pinned places and PUB flood alerts.

A Contribute tab where people map covered paths as they walk, check paths that need a field visit and report blocked ones. A change needs two contributors or an admin review before it reaches the routes.

Shipping it

One backend serves both apps. Accounts run on Supabase, including Sign in with Apple, and the iPhone app went live on the App Store on 24 August 2026.

Backend

Routing engine & data pipeline: FastAPI, PostgreSQL/PostGIS.

Web

Map, routing & contribution hub: Next.js, React, MapLibre GL.

Mobile

iOS on the App Store: Expo / React Native.

Curious about Coway Map?