Maps and routing, on your users’ devices.

The whole stack for web apps: worldwide map tiles, routing data and a routing engine that runs in the browser. Download an area once. Every route, travel-time matrix and reachability area after that works offline and costs nothing.

THE WHOLE STACK, ONE PROVIDER

Not just a routing engine. Maps to routes, done.

We build and host worldwide map tiles and routing data, update them every month, and ship the engine that runs them in your users’ browsers. One key, one bill, one integration.

WHAT YOU’D OTHERWISE RUN YOURSELF

  • A planet routing build every month: hours on a 32–64 GB machine with 1–2 TB of fast disk
  • A vector map tile pipeline, styles, fonts and sprites
  • Storage, CDN, keys and usage accounting
  • Keeping engine, data and config versions in sync
Your appYour UI, your style, your users
SDK + routing engineValhalla in WebAssembly · free and open
Vector map tilesWorldwide · ready for MapLibre
Routing dataWorldwide · walk, bike, car · monthly
Global deliveryCached at the edge, near your users

PRIVATE BY ARCHITECTURE

Start, destination and route never leave the device.

There is no routing server to send them to. We can’t log, leak or hand over trips we never receive, and neither can anyone in between.

ON YOUR USER’S DEVICE

  • Start points and destinations
  • Every calculated route and alternative
  • Matrix travel times between stops
  • Routing in airplane mode, once the area is downloaded

WHAT OUR TILE DELIVERY SEES

  • The IP address, as with any website
  • Which areas are downloaded (tiles of roughly 20–30 km)
  • Your project ID, for usage accounting

Route calculations are never sent to us.

GDPR data minimisationLess personal data processed, by design (Art. 5 and 25).
Offline-readyDownloaded areas keep routing without a connection.
Open SDKPrefer your own servers? Self-host the data. No lock-in.

HOW IT WORKS

Download an area once.
Route as often as you like.

  1. 01

    Load an area

    Your app fetches map tiles and routing data for where your users are. Central Amsterdam is 11.5 MB of routing data.

  2. 02

    Route on the device

    The open-source Valhalla engine runs in WebAssembly. Once loaded, routes in that area take milliseconds.

  3. 03

    Pay per app, not per route

    One monthly price covers every download, reroute, alternative, matrix and reachability area. Nothing is metered.

HOSTED ROUTING API

Every reroute is a request, a line on your bill, and your user’s location sent to someone else’s server.

14 reroutes = 14 billed requests

ROUTEWASM

One download. Then unlimited routes in that area, calculated on the device, with nothing sent anywhere.

14 reroutes = 1 download

MAP TILES INCLUDED

Your map and your routes, from one source.

Worldwide vector tiles come with the app, ready for MapLibre and restyled to match your product. The routing data underneath matches the same release.

Loading map…

City walking

Amsterdam · light style

Loading map…

Night mode

Tokyo · dark style

Loading map…

Mountain hiking

Chamonix · terrain style

Routing data downloads only when you ask for your first route on a map.

WHO IT’S FOR

Apps that route again and again.

Ride & hike planners

People drag waypoints and compare options. Each change is a new route. Here, none of them is a billable request.

Build a route planner →

Delivery & field teams

Travel times between every pair of stops, for dispatch and route planning. A 10 × 10 matrix takes milliseconds on a laptop.

Run a matrix in the demo ↑

Travel & outdoor apps

Downloaded areas keep routing in tunnels, mountains and abroad without roaming. Reachability areas show what people can get to in a given time, with no server involved.

Plan offline support → Try an isochrone ↑

WHAT IT REPLACES

What the same app costs elsewhere.

Four example apps at published list prices. RouteWasm is €49 a month for the app and free while you build. Nothing scales with usage.

AppMonthly workMapboxGoogle MapsRouteWasm
Travel guide 2,000 users6,000 routes, 16,000 map loads$0 free tier$0 free tier€49
Field service 10,000 users200,000 routes, 120,000 map loads~$550~$1,700€49
Delivery 300 drivers6,600 plans, 660,000 matrix elements~$1,100~$3,000€49
Consumer app 50,000 users250,000 routes, 1,000,000 map loads~$3,100~$6,500€49

Rounded list prices read on 18 October 2026 in USD, free tiers applied. Small apps often stay inside another provider's free tier; that is a reason to stay there. Mapbox and Google also sell live traffic, geocoding and native navigation, which we don't yet.

Rates, sources and assumptions
  • Mapbox: 100,000 free routes and 50,000 free web map loads a month. Routes $2.00 per 1,000, dropping to $1.20 at volume; map loads $5 per 1,000, dropping to $2.50. Matrix elements start at $2.00 per 1,000.
  • Google Maps Platform: 10,000 free routes and 10,000 free map loads a month. Routes from $5 per 1,000, map loads from $7 per 1,000, cheaper at volume. Matrix elements are priced per element.
  • Stadia Maps: $20 a month for 1M credits, where a route costs 20 credits and a matrix element 10. Its free plan is noncommercial.
  • Geocode Earth starts at $100 per 150,000 requests. GraphHopper starts at €69 a month, request-based.
  • Assumptions: one map load per map view, matrix sizes of 10 × 10 per plan and 22 working days a month. Free tiers are applied per product, as the providers bill them. Traffic, geocoding and advanced SKUs are excluded. Prices are not converted to euros.

PRICING

One price per app.
Everything included.

Billed monthly, cancel any time. Prices exclude VAT.

Free while you build (25 GB of downloads a month) and for non-commercial projects. Commercial use is €49 a month per app, with no download limit. One project key is one app.

  • No metering. No per-route fee, no download allowance, no overage to track.
  • Downloaded data keeps working. Routes on data already on the device never stop.
  • Same key, same code. Nothing changes in your app if you upgrade or cancel.

A city-centre download is about 22 MB: central Amsterdam measured at 10 MB of map and 12 MB of routing data. A small town is closer to 19 MB, a dense city core around 29 MB.

WHAT THE PRICE COVERS

One build a month, one bill a month.

Map delivery at the edge is nearly free. The work is rebuilding a planet routing graph every month and keeping engine, data and configuration in step. That is what the price pays for.

Where the money goes

  • The monthly OSM extract and a planet Valhalla build: hours on a 32–64 GB machine with fast disk
  • Hosting and delivering the worldwide map and routing data
  • Billing, tax and invoices, handled by Stripe as merchant of record
  • Support, incident response and the free tier
  • Keeping the SDK and the engine in step with each release

If you’d rather self-host

  • A VPS at roughly €10–20 a month, plus 1–2 TB of fast disk for a planet build
  • Seven or more hours of build time a month, and a long tail of failure modes: OOM, extract drift, schema changes
  • Your own update and rollback process, and your own support
  • The software is open source; the monthly work is what we take off your hands
  • One price, published. The same data for everyone. No per-route fee and no download meter.
  • Nothing retires under you. Data already on devices keeps working, and new limits never apply backwards.

STRAIGHT ANSWER

Is it right for your app?

Great fit

  • People route many times in the same area
  • Locations are sensitive: health, safety, kids, field data
  • Connectivity is unreliable: outdoors, transit, abroad
  • Small fleets planning stops with matrices
  • You want map tiles and routing from one place, styled your way

Use a hosted API instead

  • One-off long-distance directions anywhere on Earth: the first download would be large
  • Live traffic ETAs
  • Native turn-by-turn navigation SDKs
  • Address search today (it’s on our roadmap)

BUILD IT WITH YOUR CODING AGENT

Paste one line. Get a working map.

One guide covers the SDK, keys, MapLibre, offline behaviour and measuring downloads. The same guide ships inside the npm package.

Open the agent guide
prompt
› Read https://routewasm.dev/llms.txt.
  Add a MapLibre map and on-device
  routing to my app. Start with a
  working map and route, then measure
  cold and warm routes and downloads.

Keep passwords and private keys out of prompts.

NEXT ON THE ROADMAP

The rest of your map stack.

None of these are live yet.

PLANNED

Hybrid routing

A server route for a first visit or a long journey, local routes once the area is downloaded. Server requests would be priced separately and would see their inputs.

RESEARCH

Geocoding packs

Address and place search inside a downloaded area, on the device. A regional index is a few megabytes next to the routing data.

RESEARCH

Transit packs

GTFS stops, timetables and shapes downloaded with the area, and a journey planner that runs in the tab. Real-time feeds stay server-side.

PLANNED

Live traffic

Traffic-aware ETAs through a licensed provider. It needs a server request per route, so it would be priced separately from local routing.

RESEARCH

Native navigation SDK

The same engine behind an SDK for iOS and Android, with turn-by-turn guidance and offline areas.

PLANNED

Offline area downloads

Save an area’s map and routing data together, with a size estimate, progress and storage controls.

PLANNED

Serve from your own CDN

Receive prepared releases for your own bucket and CDN. A fixed-price build and update service is planned; the SDK stays free and open-data licences still apply.

QUESTIONS

Before you start.

Something missing? Ask your coding agent to read the guide.

What am I paying for?

The whole stack, hosted: worldwide vector map tiles and routing data, rebuilt and kept in sync every month, delivered from the edge, plus the SDK that wires them together. Building a planet routing graph takes hours on a large machine every month; we do that so you don’t. The SDK itself is free and open.

Is there a download limit?

On Commercial, no. The price is per app, not per byte: downloads, updates, reroutes, matrices and areas are all included. The free plan includes 25 GB a month. We ask that you don’t mirror the data behind a public CDN or resell it.

How big is an area?

Routing data comes in tiles of roughly 20–30 km. In our demos, one tile ranges from under 1 MB (an Alpine valley) to 22 MB (central Tokyo). Long routes and driving also need coarser main-road tiles. Map tiles stream only the parts people look at.

What counts as one app?

One project key. A second app with its own key is a second project. Use the key on your own domains; adding users or areas does not change the price.

Does clearing browser storage cost me another download?

Yes, it downloads again. It does not cost anything extra: downloads are included in the monthly price. A one-click offline-area download with explicit storage controls is on the roadmap.

How big is the routing engine?

The engine is about 3.9 MB of WebAssembly, or about 0.9 MB compressed with Brotli, which is what browsers normally receive. It loads once and is then served from the browser cache. The first visit also needs map and routing data for the area; after that, local routes add no download.

Can we serve the data from our own infrastructure?

Yes, two ways. Today, the free SDK works with routing data you build and host yourself. We’re also planning a fixed-price build and update service: deliver prepared releases to your own bucket and CDN. End-user tile downloads would reach your infrastructure instead of ours. Your hosting provider still processes network metadata, and open-data attribution and licensing still apply.

Does it really work offline?

Routing does, within downloaded areas, as the demo above shows: its engine has networking switched off. A fully offline app also needs its map, styles, fonts and app files saved. Browsers can clear storage under pressure, and a one-click offline-area download is on the roadmap.

How fast is it?

The first route waits for the engine and the area to download. After that, routes nearby typically take milliseconds to tens of milliseconds on a laptop. Phones are slower; measure on your target devices.

Does this make my app GDPR compliant?

It removes a large category of personal data: trips are never sent to a routing server. Tile downloads still involve IP addresses and the areas requested, and your own accounts and analytics are separate. It helps; it isn’t a certificate. Read the details →

Which platforms are supported?

Modern browsers, PWAs and web-based app shells. Offline behaviour on physical iPhones is still being validated. A native iOS and Android SDK is on the roadmap, not available today.

Do you sell geocoding, transit or live traffic?

Not yet. Geocoding and transit are being built as downloadable packs; live traffic would come from a licensed provider and needs a server request per route. None of them are included in the €49 plan today. If one of them decides your choice, we are not the right product yet.

WHAT SHOULD WE BUILD NEXT?

Tell us what you need.

Offline area downloads, isochrones in the demo, a React component, a data region you care about: we read every request, and they shape the roadmap.

Want to hear when it ships? Tick the box. A few emails a year, never more than one a month, one-click unsubscribe.

Requests go straight to the team. See the privacy policy for how we handle your email.