OpenFreeMap

What is this?

OpenFreeMap is an open and free OpenStreetMap tile hosting service.

It's truly free: there is no limit on the amount of map views or requests you can make or how you use your map. There is no registration page, user database, API keys nor cookies.

It's truly open source: everything, including the full production setup is on GitHub.

Why is this important?

OpenStreetMap is one of the most important collective projects in history. More than 2 million users have contributed to it over 19 years; 3 million edits are made each day.

Unfortunately, when you want to use the map on your website or app, you need to look for a commercial map tile provider and hope your site doesn't get too popular, otherwise you might end up with a $10,000 bill in a single day, like Hoodmaps did *.

You can try self-hosting, but it requires a big server and a lot of time to get it right.

Who is behind this project?

I'm Zsolt Ero (twitter, blog). I've created MapHub and I've been running map hosting in production for 8 years.

How can I use it?

Include MapLibre GL JS in <head>

<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>
<link
  href="https://unpkg.com/maplibre-gl/dist/maplibre-gl.css"
  rel="stylesheet"
/>

And initialize it to a div, like this:

<div id="map" style="width: 600px; height: 400px"></div>

<script>
  const map = new maplibregl.Map({
    style: "https://tiles.openfreemap.org/styles/liberty",
    center: [-74.5, 40],
    zoom: 9,
    container: "map",
  });
</script>

If you've used Mapbox GL before, please migrate to MapLibre. It is based on the last open-source version of Mapbox GL, before it went closed-source. A Leaflet based snippet is coming soon.

For mobile apps, you can do the same with MapLibre Native.

You can also download our processed planet MBTiles and BTRFS images if you want to self-host yourself. Details are in the GitHub at hyperknot/openfreemap.

How can I donate or support this project?

...

How can I follow this project?

The main repo is hyperknot/openfreemap

Styles are at hyperknot/openfreemap-styles

twitter: @hyperknot

twitter: @OpenFreeMapOrg

mastodon zsolt https://elk.zone/sigmoid.social/@hyperknot/followers

mastodon ofm TODO

Is commercial usage allowed?

Yes.

Why did I make this?

Because I waited for years for someone to offer this service, but realised no one is going to make it. So, I thought I might use my map hosting experience and do it.

I'll share more about the why in a blog post in the future, feel free to subscribe on the links above.

How can this work? How can a one person project offer unlimited map hosting for free?

There is no technical reason why vector tile hosting should cost as much as it does today.

Vector tiles are just static files. OK, serving 300 million files is not easy, but at the end of the day they are just files.

Financially, the plan is to keep buying Hetzner servers until they cover the bandwidth. I believe it can work if enough people contribute. If this project helps you save your map hosting costs, please consider our support plans!

What is the tech stack?

The map schema is OpenMapTiles.

The tiles are generated by Planetiler.

There is no tile server running, only BTRFS partition images with 300 million hard linked files.

The server is nginx on Ubuntu.

There is no cloud, just dedicated servers on Hetzner.

Currently using Cloudflare, but it's designed so that it can be changed any time.

Moreover, a lot of work is going into customising the styles at openfreemap-styles.

What about PMTiles?

I would have loved to use PMTiles, they are a brilliant idea!

Unfortunately, making range requests in 80 GB files is just not working in production. They are fine for < 500 MB files, but have terrible latency and caching issues for full planet datasets.

Attribution

If you are using MapLibre, attributions are automatically added.

If you are using this in a printed media or video, please attribute:

OpenFreeMap © OpenMapTiles Data from OpenStreetMap

You don't need to display the OpenFreeMap part, but it's nice if you do.

Licenses

The license of this project is MIT.

Map data is from OpenStreetMap.

OpenMapTiles code is released under the BSD 3-Clause License, design under CC BY 4.0. LICENSE.md.

Styles

Bright

Fork from openmaptiles/osm-bright-gl-style. The OSM Bright GL Style is derived from Mapbox Open Styles. The OSM Bright GL Style’s code is released under the BSD 3-Clause License. The OSM Bright GL Style’s design is released under CC BY 4.0. LICENSE.md.

Liberty

Fork from maputnik/osm-liberty. OSM Liberty is a fork of OSM Bright. The OSM Bright GL Style is derived from Mapbox Open Styles. The OSM Bright GL Style’s code is released under the BSD 3-Clause License. The OSM Bright GL Style’s design is released under CC BY 4.0. LICENSE.md.

Positron

Fork from openmaptiles/positron-gl-style. The Positron GL Style is derived from CartoDB Basemaps designed by Stamen and Paul Norman for CartoDB Inc., licensed under CC BY 3.0. The Positron GL style’s code is released under the BSD 3-Clause License. The Positron GL Style’s design is released under CC BY 4.0. LICENSE.md.

Fonts

Noto Sans is released under the SIL Open Font License, Version 1.1

Icons

The Maki POI icon set is licensed under CC0 1.0 Universal.

The right arrow was derived from Wikipedia, it is public domain.

Natural Earth

Natural Earth map data is in the public domain.

Tools

spritezero-cli is from mapbox/spritezero-cli, licensed ISC.