A Stadia Maps alternative with no per-tile metering

Stadia Maps is well liked for its Stamen styles and low per-tile prices, but its free plan is for non-commercial use only and every tile a visitor loads spends a credit. ExpressMaps allows commercial use on the free plan and charges per map load, so an engaged visitor costs the same as a passing one.

Pricing compared

Stadia bills credits: one per vector or raster tile, four per satellite tile, twenty per static map. To compare with map loads we assume 15 tiles per view, a typical first screen plus a little panning. List prices, November 2026.

Monthly volumeStadia MapsExpressMaps
Free tier200,000 credits, non-commercial use only, no overage100,000 loads, commercial use allowed
100,000 views (1.5M credits)$35 (Starter $20 plus overage)Free
250,000 views (3.75M credits)$80 (Standard)$29
1,000,000 views (15M credits)$230 (Standard plus overage)$99
5,000,000 views (75M credits)$1,000 (Professional plus overage)$399

Stadia plans: Starter $20 for 1M credits then $0.03 per 1,000; Standard $80 for 7.5M then $0.02; Professional $250 for 25M then $0.015. Halve or double the Stadia figures if your maps load 8 or 30 tiles per view. ExpressMaps plans: Free 100,000 loads; Essential $29 for 250,000; Business $99 for 1,000,000; Enterprise $399 for 5,000,000, then $0.05 per 1,000. One map load is one map initialisation; tiles, panning and zooming are not metered. Prices checked 12 November 2026 and may have changed; see the cost calculator for your own numbers.

How the billing differs

Per-tile billing means cost depends on viewport size, screen density and how much people interact. A full-screen map on a retina display can fetch 30 tiles on first paint, and every zoom level fetches more. Stadia is inexpensive per tile, so this works out well for small, static maps and less well for exploratory ones.

ExpressMaps counts one load when the map initialises and nothing after that. The plan tiers are wide enough that most sites sit in one tier all year, and the free tier covers commercial sites.

What stays the same

  • MapLibre GL JS, Leaflet and OpenLayers all work with a style URL.
  • OpenStreetMap data in the OpenMapTiles schema, so custom styles port with source URL changes.
  • No tracking of end users by either service.

What Stadia Maps does that we do not

  • Raster tiles for plain Leaflet without a GL plugin, and the Stamen Toner, Terrain and Watercolor styles.
  • Satellite imagery, static maps in production, geocoding, routing and time-zone APIs.
  • EU-only hosting options on higher plans.

If you need raster tiles or the Stamen designs, Stadia is the better fit. If you need a vector base map with flat pricing and commercial use on the free tier, ExpressMaps is.

Switching from Stadia Maps

For MapLibre users it is a URL change. Leaflet users switch from a raster tile layer to the MapLibre GL Leaflet plugin:

<!-- before (Leaflet raster) -->
L.tileLayer('https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png?api_key=KEY').addTo(map);

<!-- after (Leaflet with vector tiles) -->
<script src="https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.js"></script>
<script src="https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.0.22/leaflet-maplibre-gl.js"></script>
L.maplibreGL({ style: 'https://tiles.expressmaps.com/styles/subtle.json?key=YOUR_API_KEY' }).addTo(map);

The embed generator writes this for any of our ten styles, and the docs cover Leaflet, OpenLayers and React.

Questions people ask

Do you offer raster tiles?

No, vector only. In Leaflet the MapLibre GL plugin renders them; in OpenLayers, ol-mapbox-style does. Both are a few lines of code.

Can I use the free plan on a business website?

Yes. The 100,000 free loads a month carry no non-commercial restriction.

Which of your styles is closest to Alidade Smooth?

Subtle for the muted look, Basic for a plain base, and Darklands for Alidade Smooth Dark.

Start free with 100,000 loads See the live demo