map.totalgood.org

Self-hosted vector map tile server based on a fork of the official openfreemap project.

Live from this server's /planet tiles · pan and zoom to explore · open the full camera map →
map data © OpenStreetMap contributors

Interactive API docs (Swagger UI) →

Tile JSON

Each area exposes a TileJSON document describing where its tiles live.

PathReturns
GET /{area}TileJSON for the latest deployed version of {area}
GET /{area}/{version}TileJSON pinned to a specific version string
curl https://map.totalgood.org/monaco

Vector tiles

PathReturns
GET /{area}/{version}/{z}/{x}/{y}.pbfgzip-compressed Mapbox Vector Tile (application/vnd.mapbox-vector-tile). Missing tiles return an empty 200, not a 404.

You won't normally build these URLs by hand — point a MapLibre/Mapbox GL style at the TileJSON URL above and the client handles it. CORS is open (Access-Control-Allow-Origin: *) on every endpoint.

Static assets

PathContents
/fonts/…Glyph ranges (PBF) for text rendering
/sprites/…Icon sprite sheets (PNG + JSON)
/natural_earth/…Low-zoom background data

Example: MapLibre GL

A TileJSON URL is not itself a style — reference it as a vector source's url and add your own layers (or use a prebuilt style, see below). This is exactly what powers the map at the top of this page:

const map = new maplibregl.Map({
  container: 'map',
  style: {
    version: 8,
    glyphs: 'https://map.totalgood.org/fonts/{fontstack}/{range}.pbf',
    sources: {
      ofm: { type: 'vector', url: 'https://map.totalgood.org/planet' },
    },
    layers: [
      { id: 'water', type: 'fill', source: 'ofm', 'source-layer': 'water', paint: { 'fill-color': '#a7cbe8' } },
      { id: 'roads', type: 'line', source: 'ofm', 'source-layer': 'transportation', paint: { 'line-color': '#c9ccd1' } },
      // ...
    ],
  },
  center: [-117.08684, 32.75364], // City Heights, San Diego
  zoom: 10,
});

For a full cartographic style (roads, labels, POIs) out of the box, use one of openfreemap-styles and point its sources at this server instead of the public tiles.openfreemap.org instance.

This is not the public OpenFreeMap instance

This is an independent, self-hosted deployment. For the free public instance with no setup required, see openfreemap.org.