---
import Layout from '../layouts/Layout.astro'
import Map from '../components/Map.astro'

import { getCollection } from 'astro:content'
import { getEntry } from 'astro:content'

import { Content as WhatIs } from '../content/index/whatis.md'

//
// const content = await getCollection('index');
// const snippets = {}
//
// for (const cont of content) {
//   const {Content} = await cont.render()
//   snippets[cont.slug] = Content
// }
---

<Layout title="OpenFreeMap">
  <img src="logo.jpg" alt="logo" height="200" class="logo" />
  <h1>OpenFreeMap</h1>
  <div class="icons">
    <a href="https://github.com/hyperknot/openfreemap" target="_blank"
      ><img src="github.svg" alt="github" height="28" /></a
    >
    <a href="https://x.com/hyperknot" target="_blank"><img src="x.svg" alt="x" height="28" /></a>
  </div>

  <WhatIs />

  <h2>How can I use it?</h2>
  <p>(Click below, it's interactive!)</p>

  <Map />

  <!--<p>How to use: <a href="#">In detail</a></p>-->

  <div id="pricing"></div>

  <h2>How can I donate or support this project?</h2>
  <p>
    If this project helps you save on your map hosting costs, please subscribe to one of our support
    plans here:
  </p>
  <div id="support-plans-slider"></div>

  <p>
    On <strong>Gold</strong> level and above, we offer personalised technical support by email. Otherwise,
    support is via GitHub <a href="https://github.com/hyperknot/openfreemap/discussions"
      >Discussions</a
    >.
  </p>
  <p>
    If we ever receive a <strong>Diamond</strong> level supporter, we'll put their logo on this page.
  </p>
  <p>When subscribing to a support plan, you receive an invoice for each of your payments.</p>
  <p>
    Note: if you want to make a single donation, feel free to cancel after the first payment.
    However, please understand that the nature of this project needs recurring donations to cover
    the server costs.
  </p>
  <h2>Is commercial usage allowed?</h2>
  <p>Yes.</p>
  <h2>Who is behind this project?</h2>
  <p>
    I'm Zsolt Ero (<a href="https://x.com/hyperknot">X</a>, <a href="https://blog.hyperknot.com/"
      >blog</a
    >, <a href="mailto:zsolt@openfreemap.org">email</a>). I built <a href="https://maphub.net/"
      >MapHub</a
    > and have been running map hosting in production for 8 years.
  </p>
  <h2>Why did you build this project?</h2>
  <p>
    OpenStreetMap is one of the most important collective projects in history. It began 20 years
    ago, and today, 3 million edits are made each day!
  </p>
  <p>
    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 become too popular. Otherwise, you might
    end up with a $10,000 bill in a single day, as Hoodmaps <a
      href="https://x.com/levelsio/status/1730659933232730443">did</a
    >.
  </p>
  <p>You can try self-hosting, but it requires a big server and a lot of time to get it right.</p>
  <p>
    I waited for years for someone to offer this service but realized that no one was going to do
    it. So, I thought I might use my map hosting experience and build it myself.
  </p>
  <p>
    I'll share more about the reasons in a future <a href="https://blog.hyperknot.com/">blog post</a
    >. Feel free to subscribe.
  </p>
  <h2>How can this work? How can a one-person project offer unlimited map hosting for free?</h2>
  <p>
    There is no technical reason why map hosting costs 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.
  </p>
  <p>
    Financially, the plan is to keep renting servers until they cover the bandwidth. I believe it
    can be self-sustainable if enough people subscribe to the support plans.
  </p>
  <p>
    If this project helps you save on your map hosting costs, please consider subscribing to a
    support plan.
  </p>
  <h2>How can I follow this project?</h2>
  <p>
    X: <a href="https://x.com/hyperknot">hyperknot</a> and <a href="https://x.com/OpenFreeMapOrg"
      >OpenFreeMapOrg</a
    >
  </p>
  <p>
    GitHub: <a href="https://github.com/hyperknot/openfreemap">openfreemap</a> and <a
      href="https://github.com/hyperknot/openfreemap-styles">openfreemap-styles</a
    >
  </p>
  <h2>What is the tech stack?</h2>
  <p>
    There is no tile server running; only Btrfs partition images with 300 million hard-linked files.
    This was my idea; I haven't read about anyone else doing this in production, but it works really
    well. (You can read more about it on <a href="https://github.com/hyperknot/openfreemap"
      >GitHub</a
    >.
  </p>
  <p>There is no cloud, just dedicated servers. The HTTPS server is nginx on Ubuntu.</p>
  <p>
    Special thanks go to <a href="https://github.com/msbarry">Michael Barry</a> for developing <a
      href="https://github.com/onthegomap/planetiler">Planetiler</a
    >. It made it possible to generate the tiles in 5 hours instead of 5 weeks. The map schema is <a
      href="https://github.com/openmaptiles/openmaptiles">OpenMapTiles</a
    >.
  </p>
  <p>
    The <a href="https://github.com/hyperknot/openfreemap-styles">styles</a> are forked and heavily modified.
  </p>
  <h2>Domains</h2>
  <p>
    <code>tiles.openfreemap.org</code> - Cloudflare proxied<br />
    <code>direct.openfreemap.org</code> - direct connection, Round-Robin DNS
  </p>
  <h2>Attribution</h2>
  <p>
    Attribution is required. If you are using MapLibre, they are automatically added, you have
    nothing to do.
  </p>
  <p>
    If you are using alternative clients, or if you are using this in printed media or video, you
    must add the following attribution:
  </p>
  <p>
    <a href="https://openfreemap.org" target="_blank">OpenFreeMap</a>
    <a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> Data from <a
      href="https://www.openstreetmap.org/copyright"
      target="_blank">OpenStreetMap</a
    >
  </p>
  <p>You do not need to display the OpenFreeMap part, but it is nice if you do.</p>
  <h2>License</h2>
  <p>
    The license of this project is <a href="https://www.tldrlegal.com/license/mit-license">MIT</a>.
    Map data is from <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>. The
    licenses for included projects are listed in <a
      href="https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md">LICENSE.md</a
    >.
  </p>

  <!--<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>-->
  <!--<script src="https://unpkg.com/nouislider@15.7.1/dist/nouislider.min.js"></script>-->

  <!--<script src="map_howto.js"></script>-->
  <!--<script src="support_plans.js"></script>-->

  <!--<script src="https://unpkg.com/prismjs@1.29.0/components/prism-core.min.js"></script>-->
  <!--<script src="https://unpkg.com/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>-->
</Layout>
