Best / Maps and tiles

Best open-source Maps and tiles

The best self-hosted map split in the c17.io catalog is MapLibre GL JS for a BSD-3-Clause vector renderer (the published Mapbox embed path), Protomaps when the job is BSD-3-Clause PMTiles rather than a tile cluster, Nominatim when the job is GPL-3.0 geocoding rather than a GL map — /best/maps-tiles is the renderer; geocoding lives on /replace/google-maps, and GraphHopper when the job is Apache-2.0 routing. This is not Mapbox's every geocoding or navigation SKU, or Google Street View. A custom embed stays on uMap. Site search stays on /best/search-engines-self-hosted.

Open the stackStart on Railway

Ranked picks

  1. 1

    MapLibre GL JS

    BSD-3-Clause vector renderer (11,895 stars in the catalog) — the c17 Mapbox GL path.

    When to pick it: A map in the page you already host.

    11,895 stars in the catalog

  2. 2

    Protomaps

    BSD-3-Clause PMTiles (615 stars in the catalog).

    When to pick it: One tile file you host, not a tile cluster.

    615 stars in the catalog

  3. 3

    Nominatim

    GPL-3.0 OSM geocoding (4,521 stars in the catalog) — the c17 Google Maps search path.

    When to pick it: An address lookup, not a GL map.

    4,521 stars in the catalog

  4. 4

    GraphHopper

    Apache-2.0 OSM routing (6,731 stars in the catalog).

    When to pick it: Directions if Mapbox was the route API.

    6,731 stars in the catalog

How they compare

ToolLicenseSelf-hostBest for
MapLibre GL JSBSD-3-ClauseEasyA map in the page you already host.
ProtomapsBSD-3-ClauseMediumOne tile file you host, not a tile cluster.
NominatimGPL-3.0MediumAn address lookup, not a GL map.
GraphHopperApache-2.0MediumDirections if Mapbox was the route API.

Related pages

FAQ

MapLibre or Protomaps?
MapLibre is the renderer. Protomaps is tiles in a file. You usually want both.
Mapbox or Google Maps?
Mapbox is the vector embed — /replace/mapbox. Google Maps is geocoding and routing — /replace/google-maps.
Is this Street View?
No. Street View and live traffic stay behind.
Are these free?
MapLibre and Protomaps are BSD-3-Clause. Nominatim is GPL-3.0. GraphHopper is Apache-2.0. You pay disk and hosting. Template users never pay c17.
How do I deploy it?
Open /stacks/maplibre-tiles. Serve one PMTiles file or a tile URL. Geocoding stays on /stacks/osm-maps.

Stack of the Week

Get one stack a week that replaces a SaaS bill.

Sponsor this page