You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by gi...@apache.org on 2022/12/08 13:48:07 UTC

[incubator-baremaps-site] branch asf-site updated: Automatic Site Publish by Buildbot

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 9db347e  Automatic Site Publish by Buildbot
9db347e is described below

commit 9db347ed6e0613090da725db1d5dc6b042848062
Author: buildbot <us...@infra.apache.org>
AuthorDate: Thu Dec 8 13:48:04 2022 +0000

    Automatic Site Publish by Buildbot
---
 output/about/index.html                            |   62 +-
 output/assets/css/main.css                         |   16 +-
 output/assets/demo.html                            |    8 +-
 output/developer-manual/geocoder/index.html        |  108 ++
 .../how-to-build-with-maven/index.html             |  108 ++
 output/developer-manual/index.html                 |  119 ++
 output/developer-manual/ip-to-location/index.html  |  209 +++
 .../developer-manual/project-structure/index.html  |  116 ++
 .../developer-manual/setup-in-intellij/index.html  |  112 ++
 output/developer-manual/stylesheet/index.html      |  111 ++
 output/examples/contour/index.html                 |  121 --
 output/examples/contour/indexes.sql                |    0
 .../contour/liecthenstein-aster-dem-v2-3857.tif    |  Bin 1966773 -> 0 bytes
 .../contour/liecthenstein-aster-dem-v2.tif         |  Bin 1739201 -> 0 bytes
 output/examples/contour/style.json                 |   31 -
 output/examples/contour/tileset.json               |   29 -
 output/examples/extrusion/index.html               |  140 --
 output/examples/extrusion/indexes.sql              |    5 -
 output/examples/extrusion/screenshot.png           |  Bin 288760 -> 0 bytes
 output/examples/extrusion/style.json               |   31 -
 output/examples/extrusion/tileset.json             |   31 -
 output/examples/extrusion/workflow.json            |   42 -
 output/examples/geoadmin/index.html                |  116 --
 output/examples/geoadmin/style.json                |   31 -
 output/examples/geoadmin/tileset.json              |   29 -
 output/examples/geoadmin/tileset.yaml              |   19 -
 output/examples/geocoding/index.html               |  133 ++
 .../import-contour-into-postgis/index.html         |  155 +++
 .../import-naturalearth-into-postgis/index.html    |  146 +++
 .../database.png                                   |  Bin
 output/examples/import-osm-into-postgis/index.html |  177 +++
 output/examples/index.html                         |   88 +-
 output/examples/ip-to-location/index.html          |  152 +++
 output/examples/naturalearth/index.html            |  113 --
 output/examples/naturalearth/indexes.sql           |  135 --
 output/examples/naturalearth/style.json            |   33 -
 output/examples/naturalearth/tileset.json          | 1360 --------------------
 output/examples/naturalearth/workflow.json         |   32 -
 output/examples/openstreetmap/index.html           |  208 ---
 output/examples/openstreetmap/indexes.sql          |    5 -
 .../openstreetmap/liechtenstein-latest.osm.pbf     |  Bin 2710779 -> 0 bytes
 output/examples/openstreetmap/screenshot.png       |  Bin 262397 -> 0 bytes
 output/examples/openstreetmap/style.js             |   26 -
 output/examples/openstreetmap/style.json           |   26 -
 output/examples/openstreetmap/tileset.json         |  521 --------
 output/examples/openstreetmap/workflow.json        |   42 -
 output/examples/serve-vector-tiles/index.html      |  197 +++
 output/getting-started/index.html                  |  114 ++
 .../getting-started/installing-postgis/index.html  |  130 ++
 .../getting-started/installing-the-cli/index.html  |  132 ++
 output/index.html                                  |   24 +-
 output/installation/index.html                     |  118 --
 output/notes/postgis.html                          |    2 +-
 output/notes/postgis.md                            |    2 +-
 output/sitemap.xml                                 |   43 +-
 output/stylesheet/index.html                       |   81 --
 56 files changed, 2399 insertions(+), 3390 deletions(-)

diff --git a/output/about/index.html b/output/about/index.html
index 004c23c..a38ba87 100644
--- a/output/about/index.html
+++ b/output/about/index.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <title>About - Apache Baremaps</title>
-    <meta name="description" content="Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.">
+    <meta name="description" content="Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.">
     <link rel="stylesheet" href="/assets/css/main.css">
   </head>
   <body>
@@ -13,25 +13,33 @@
           <div class="four columns">
             <header>
               <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
               <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
                    data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
               </p>
             </header>
             <nav>
               <ul>
                 
                 <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
                   
                 </li>
                 
                 <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
                   
                 </li>
                 
@@ -40,18 +48,40 @@
                   
                   <ul>
                     
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
                     
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
                     
-                    <li><a href="/examples/contour/">Contour</a></li>
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
                     
                   </ul>
                   
                 </li>
                 
                 <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
                   
                 </li>
                 
@@ -66,11 +96,12 @@
           <article class="eight columns">
             <h1 id="about">About</h1>
 
-<p>Baremaps is an <a href="https://github.com/baremaps/baremaps/blob/master/LICENSE">open source</a> toolkit for creating vector tiles from <a href="https://www.openstreetmap.org">OpenStreetMap</a> and other data sources.</p>
+<p>Apache Baremaps is an  <a href="https://github.com/apache/incubator-baremaps/blob/main/LICENSE">open source</a> toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources. It offers live reload capabilities that allow cartographers to customize the content and the style of a map. It includes an attribution-free map schema and style that stimulates derived  [...]
 
 <p><a href="/assets/demo.html"><img src="/assets/screenshot.jpg" alt="State of the map" /></a></p>
 
-<p>It is inspired by <a href="https://github.com/openstreetmap/osmosis">Osmosis</a>, but it comes with additional features, such as the ability to:</p>
+<p>Apache Baremaps is inspired by <a href="https://github.com/openstreetmap/osmosis">Osmosis</a>, but it comes with additional features, such as the ability to:</p>
+
 <ul>
   <li>Process data in parallel with the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html">Stream API</a> introduced in Java 8</li>
   <li>Import data faster with the <a href="https://www.postgresql.org/docs/11/sql-copy.html">COPY API</a> of Postgresql</li>
@@ -78,8 +109,7 @@
   <li>Create and serve customized <a href="https://docs.mapbox.com/vector-tiles/specification/">Vector Tiles</a></li>
 </ul>
 
-<p>On the longer run, the aim of the project is to work with a variety of data sources in order to create highly specialized and customized maps.</p>
-
+<p>On the longer run, the project aims to work with a variety of data sources in order to create highly specialized and customized maps.</p>
 
             <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/about.md"><i class="fas fa-edit"></i> Improve this page</a></p>
           </article>
diff --git a/output/assets/css/main.css b/output/assets/css/main.css
index d2a792e..c87ac22 100644
--- a/output/assets/css/main.css
+++ b/output/assets/css/main.css
@@ -735,25 +735,29 @@ label > .label-body {
 /* Lists
 –––––––––––––––––––––––––––––––––––––––––––––––––– */
 ul {
-  list-style: circle inside; }
+  list-style: circle outside; }
 
 ol {
-  list-style: decimal inside; }
-
-ol, ul {
-  padding-left: 0;
-  margin-top: 0; }
+  list-style: decimal outside; }
 
 ul ul,
 ul ol,
 ol ol,
 ol ul {
+  padding-left: 0;
   margin: 1.5rem 0 1.5rem 3rem;
   font-size: 90%; }
 
+nav > ul {
+  margin-left: 0;
+  padding-left: 0; }
+
 li {
   margin-bottom: 1rem; }
 
+li ul {
+  margin-top: 1rem; }
+
 /* Code
 –––––––––––––––––––––––––––––––––––––––––––––––––– */
 code {
diff --git a/output/assets/demo.html b/output/assets/demo.html
index b5269d7..b5f2334 100644
--- a/output/assets/demo.html
+++ b/output/assets/demo.html
@@ -43,11 +43,11 @@
 <header>
   <h2><i class="far fa-map"></i> Baremaps</h2>
   <p>These <a target="_blank" href="https://docs.mapbox.com/vector-tiles/reference/">vector tiles</a> have been crafted with <a href="https://www.baremaps.com">Baremaps</a> and <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> data.</p>
-  <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-     aria-label="Star baremaps/baremaps on GitHub">Star</a>
-  <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
+  <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+     aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+  <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
      data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-     aria-label="Download baremaps/baremaps on GitHub">Download</a>
+     aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
 </header>
 <div id="map"></div>
 <script src='https://api.mapbox.com/mapbox-gl-js/v0.44.0/mapbox-gl.js'></script>
diff --git a/output/developer-manual/geocoder/index.html b/output/developer-manual/geocoder/index.html
new file mode 100644
index 0000000..2f50b19
--- /dev/null
+++ b/output/developer-manual/geocoder/index.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Geocoder - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="geocoder">Geocoder</h1>
+
+<p>TODO</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/geocoder/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/how-to-build-with-maven/index.html b/output/developer-manual/how-to-build-with-maven/index.html
new file mode 100644
index 0000000..9fa1a2c
--- /dev/null
+++ b/output/developer-manual/how-to-build-with-maven/index.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>How to build with Maven - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="how-to-build-with-maven">How to build with Maven</h1>
+
+<p>TODO</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/how-to-build-with-maven/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/index.html b/output/developer-manual/index.html
new file mode 100644
index 0000000..5588af3
--- /dev/null
+++ b/output/developer-manual/index.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Developer Manual - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="developer-manual">Developer Manual</h1>
+
+<p>The Developer Manual aims at helping developers to execute the code, understand the structure and contribute to the project.</p>
+
+<p>Go into the relevant sections to find out more about Apache Baremaps.</p>
+
+<ul>
+  <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+  <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+  <li><a href="/developer-manual/setup-with-intellij/">Set up in IntelliJ IDEA</a></li>
+  <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+  <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+  <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+</ul>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/ip-to-location/index.html b/output/developer-manual/ip-to-location/index.html
new file mode 100644
index 0000000..9ef1f24
--- /dev/null
+++ b/output/developer-manual/ip-to-location/index.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>IP to location - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="ip-to-location">IP to location</h1>
+
+<p>Using data publicly available from the 5 <a href="https://whatismyipaddress.com/rir">Regional Internet Registries (RIRs)</a> 
+we are able to generate a stream of objects detailing Internet resource allocations. We call these NIC Objects 
+(Network Information Centre Objects).</p>
+
+<p>Here is the list of the 5 RIRs.</p>
+
+<ul>
+  <li><a href="https://www.arin.net/">ARIN</a></li>
+  <li><a href="https://www.lacnic.net/">LACNIC</a></li>
+  <li><a href="https://afrinic.net/">AFRINIC</a></li>
+  <li><a href="https://www.ripe.net/">RIPE NCC</a></li>
+  <li><a href="https://www.apnic.net/">APNIC</a></li>
+</ul>
+
+<p>Using the list of NIC objects, we extract those that concern IPv4 address ranges (<a href="https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-documentation/rpsl-object-types/4-2-descriptions-of-primary-objects/4-2-4-description-of-the-inetnum-object">INETNUM</a>)
+, then using the Baremaps Geocoder API, we iterate through the extracted NIC objects to geo-locate each one of them.</p>
+
+<p>The resulting geo-localised IPv4 address ranges are stored in a SQLite database which can be easily queried to geo-locate a specific IP.</p>
+
+<p>A NIC object contains a list of attributes but these attributes are not consistent between each NIC object. 
+We try to use these 4 attributes to query the Geocoder service :</p>
+
+<ul>
+  <li><em>address</em> contains the address of the NIC Object</li>
+  <li><em>descr</em> sometimes contains the address of the NIC Object</li>
+  <li><em>country</em> contains the country code in ISO format (ISO 3166) - <a href="https://www.ripe.net/participate/member-support/list-of-members/list-of-country-codes-and-rirs">RIPE list of country codes</a></li>
+  <li><em>geoloc</em> contains the latitude and longitude which can be used directly</li>
+</ul>
+
+<p>Some NIC Objects contain a reference to an organisation, and the organisation’s NIC Object itself contains the 
+geo-localisation information. However, we don’t make use of that for now.</p>
+
+<p>The <a href="https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-documentation/ripe-database-structure">structure of the RIPE database</a>
+should be applicable to all the RIRs.</p>
+
+<h2 id="generating-the-ip-to-location-database">Generating the IP to location database</h2>
+
+<p>A workflow is a directed acyclic graph of steps executed by Baremaps. To download and import the sample OSM data in Postgres, execute the following <a href="https://raw.githubusercontent.com/apache/incubator-baremaps/main/examples/ip-to-location/workflow.js">workflow</a>.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file examples/ip-to-location/workflow.js
+</code></pre></div></div>
+
+<p>Depending on the size of the OpenStreetMap file, the execution of this command may take some time.
+Eventually, the output produced by the command should look as follows.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[INFO ] 2022-12-08 12:56:05.417 [main] Execute - Executing the workflow examples/ip-to-location/workflow.js
+[INFO ] 2022-12-08 12:56:06.031 [pool-2-thread-1] DownloadUrl - Downloading https://ftp.ripe.net/ripe/dbase/ripe.db.gz to downloads/ripe.db.gz
+[INFO ] 2022-12-08 12:56:06.031 [pool-2-thread-2] DownloadUrl - Downloading https://download.geonames.org/export/dump/allCountries.zip to downloads/geonames-allcountries.zip
+...
+...
+...
+[INFO ] 2022-07-26 09:48:21.368 [main] Workflow - Finished executing workflow examples/ip-to-location/workflow.js
+</code></pre></div></div>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>iploc serve --database iploc.db --port 3000
+</code></pre></div></div>
+
+<h2 id="code-usage">Code usage</h2>
+
+<p>In order to generate the SQLite database that contains the geo-localised IP address ranges you must follow a few steps.</p>
+
+<p>1) First you need to load/build a Geocoder which will be used to query the addresses contained in the NIC objects.</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Geocoder</span> <span class="n">geocoder</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">GeonamesGeocoder</span><span class="o">(</span><span class="n">indexPath</span><span class="o">,</span> <span class="n">dataUri</span><span class="o">);</span>
+<span class="n">geocoder</span><span class="o">.</span><span class="na">build</span><span class="o">();</span>
+</code></pre></div></div>
+
+<p>2) Then you need to generate a Stream of NIC Objects. You can use the Nic Fetcher to automatically download all of the NIC Objects from the 5 RIRs.</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Stream</span><span class="o">&lt;</span><span class="nc">Path</span><span class="o">&gt;</span> <span class="n">nicPathsStream</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">NicFetcher</span><span class="o">().</span><span class="na">fetch</span><span class="o">();</span>
+<span class="nc">Stream</span><span class="o">&lt;</span><span class="nc">NicObject</span><span class="o">&gt;</span> <span class="n">nicObjectStream</span> <span class="o">=</span>
+    <span class="n">nicPathsStream</span><span class="o">.</span><span class="na">flatMap</span><span class="o">(</span><span class="n">nicPath</span> <span class="o">-&gt;</span> <span class="o">{</span>
+        <span class="k">try</span> <span class="o">{</span>
+            <span class="k">return</span> <span class="nc">NicParser</span><span class="o">.</span><span class="na">parse</span><span class="o">(</span><span class="k">new</span> <span class="nc">BufferedInputStream</span><span class="o">(</span><span class="nc">Files</span><span class="o">.</span><span class="na">newInputStream</span><span class="o">(</span><span class="n">nicPath</span><span class="o">)));</span>
+        <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">IOException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+        <span class="o">}</span>
+        <span class="k">return</span> <span class="nc">Stream</span><span class="o">.</span><span class="na">empty</span><span class="o">();</span>
+    <span class="o">});</span>
+</code></pre></div></div>
+
+<p>3) You need to create the IpLoc service, giving the target SQLite database url and the geocoder in the second parameter</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">SqliteUtils</span><span class="o">.</span><span class="na">executeResource</span><span class="o">(</span><span class="n">databaseUrl</span><span class="o">,</span> <span class="s">"iploc_init.sql"</span><span class="o">);</span> <span class="c1">// Init the SQLite database</span>
+<span class="nc">IpLoc</span> <span class="n">ipLoc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">IpLoc</span><span class="o">(</span><span class="n">databaseUrl</span><span class="o">,</span> <span class="n">geocoder</span><span class="o">);</span>
+</code></pre></div></div>
+
+<p>4) Finally insert the stream of NIC objects in the database with the IpLoc service</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">ipLoc</span><span class="o">.</span><span class="na">insertNicObjects</span><span class="o">(</span><span class="n">nicObjects</span><span class="o">.</span><span class="na">stream</span><span class="o">());</span>
+</code></pre></div></div>
+
+<h2 id="notes">Notes</h2>
+
+<p>There are many improvements that need to be worked on to improve the Iploc module, refer to the Github issues with the
+tag <em>iploc</em> if you want to contribute.</p>
+
+<h2 id="references">References</h2>
+<ul>
+  <li><a href="https://www.iana.org/numbers">https://www.iana.org/numbers</a></li>
+  <li><a href="https://www.irr.net/docs/list.html">https://www.irr.net/docs/list.html</a></li>
+</ul>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/ip-to-location/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/project-structure/index.html b/output/developer-manual/project-structure/index.html
new file mode 100644
index 0000000..1005af9
--- /dev/null
+++ b/output/developer-manual/project-structure/index.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Project structure - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="project-structure">Project structure</h1>
+
+<p>The code is structured in a way that makes it easy to understand and to contribute to the project.</p>
+
+<h2 id="modules">Modules</h2>
+
+<p>TODO</p>
+
+<h3 id="baremaps-core">Baremaps-core</h3>
+
+<p>TODO</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/project-structure/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/setup-in-intellij/index.html b/output/developer-manual/setup-in-intellij/index.html
new file mode 100644
index 0000000..761b5bc
--- /dev/null
+++ b/output/developer-manual/setup-in-intellij/index.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Set up in IntelliJ IDEA - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="set-up-in-intellij-idea">Set up in IntelliJ IDEA</h1>
+
+<p>To open the project with IntelliJ, go under file -&gt; open -&gt; …</p>
+
+<p>There are a few pre-created configurations to run the code quickly.</p>
+
+<p>TODO</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/setup-in-intellij/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/developer-manual/stylesheet/index.html b/output/developer-manual/stylesheet/index.html
new file mode 100644
index 0000000..a159a92
--- /dev/null
+++ b/output/developer-manual/stylesheet/index.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Stylesheet - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="stylesheet">Stylesheet</h1>
+
+<p><a href="https://github.com/baremaps/openstreetmap-vecto">OpenStreetMap Vecto</a> is an ongoing effort to build a general-purpose configuration and stylesheet for Baremaps.
+It is used to generate vector tiles and to produce a Mapbox <a href="https://docs.mapbox.com/mapbox-gl-js/style-spec/">stylesheet</a> inspired by <a href="https://github.com/gravitystorm/openstreetmap-carto">OpenStreetMap Carto</a>.</p>
+
+<p><a href="/assets/demo.html"><img src="/assets/screenshot.jpg" alt="State of the map" /></a></p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/developer-manual/stylesheet/stylesheet.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/contour/index.html b/output/examples/contour/index.html
deleted file mode 100644
index eee6066..0000000
--- a/output/examples/contour/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>Contour Lines in Vector Tiles - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="contour-lines-in-vector-tiles">Contour Lines in Vector Tiles</h1>
-
-<p>This example demonstrates how to produce contours from a digital elevation model (DEM) and how to display them with vector tiles.</p>
-
-<p>The approach consists in using the <a href="https://gdal.org/programs/gdal_contour.html"><code class="language-plaintext highlighter-rouge">gdal_contour</code></a> command.
-Therefore, start by installing <code class="language-plaintext highlighter-rouge">gdal</code>:</p>
-
-<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt-get <span class="nb">install </span>gdal-bin
-</code></pre></div></div>
-
-<p>The geotiff present in this directory comes from the <a href="https://asterweb.jpl.nasa.gov/gdem.asp">ASTER</a> dataset.
-We used the following command to reproject the geotiff in the desired projection (e.g. WebMercator) before importing it in the database.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdalwarp -rc \
-  -s_srs epsg:4326 -t_srs epsg:3857 \
-  -dstnodata 0 -of GTiff -co tiled=yes \
-  liecthenstein-aster-dem-v2.tif \
-  liecthenstein-aster-dem-v2-3857.tif
-</code></pre></div></div>
-
-<p>You can now import any GeoTiff DEM as contours in postgis. 
-In the following command, the <code class="language-plaintext highlighter-rouge">-nln</code> argument name the table that contains the data, 
-the <code class="language-plaintext highlighter-rouge">-a</code> argument name the column that contains the elevation, 
-the <code class="language-plaintext highlighter-rouge">-i</code> argument specifies the interval in meters at which contours are generated.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdal_contour \
-  -a elevation -nln aster_dem -i 10 \
-  -f PostgreSQL \
-  liecthenstein-aster-dem-v2-3857.tif "PG:host=localhost user=baremaps password=baremaps dbname=baremaps"
-</code></pre></div></div>
-
-<p>Some index can now be added to the database to improve performances. 
-When available, a smoothing function such as <code class="language-plaintext highlighter-rouge">ST_ChaikinSmoothing</code> can be used to improve rendering of the contours.</p>
-
-<pre><code class="language-postgresql">DROP INDEX IF EXISTS aster_dem_gix;
-CREATE INDEX CONCURRENTLY IF NOT EXISTS aster_dem_gix ON aster_dem USING SPGIST(wkb_geometry);
-</code></pre>
-
-<p>Finally, to preview the map in the browser, run the tile server with the following command. 
-Your changes to the configuration files will be automatically reloaded by the browser.</p>
-
-<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev <span class="se">\</span>
-  <span class="nt">--database</span> <span class="s1">'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps'</span> <span class="se">\</span>
-  <span class="nt">--tileset</span> <span class="s1">'tileset.json'</span> <span class="se">\</span>
-  <span class="nt">--style</span> <span class="s1">'style.json'</span>
-</code></pre></div></div>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/contour/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/examples/contour/indexes.sql b/output/examples/contour/indexes.sql
deleted file mode 100644
index e69de29..0000000
diff --git a/output/examples/contour/liecthenstein-aster-dem-v2-3857.tif b/output/examples/contour/liecthenstein-aster-dem-v2-3857.tif
deleted file mode 100644
index 93f78b7..0000000
Binary files a/output/examples/contour/liecthenstein-aster-dem-v2-3857.tif and /dev/null differ
diff --git a/output/examples/contour/liecthenstein-aster-dem-v2.tif b/output/examples/contour/liecthenstein-aster-dem-v2.tif
deleted file mode 100644
index e9e705c..0000000
Binary files a/output/examples/contour/liecthenstein-aster-dem-v2.tif and /dev/null differ
diff --git a/output/examples/contour/style.json b/output/examples/contour/style.json
deleted file mode 100644
index 1604741..0000000
--- a/output/examples/contour/style.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "version" : 8,
-  "sources" : {
-    "baremaps" : {
-      "type" : "vector",
-      "url" : "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers" : [ {
-    "id" : "background",
-    "type" : "background",
-    "maxzoom" : 24,
-    "paint" : {
-      "background-color" : "rgba(255, 255, 255, 1)"
-    }
-  }, {
-    "id" : "aster_dem",
-    "type" : "line",
-    "source" : "baremaps",
-    "source-layer" : "aster_dem",
-    "layout" : {
-      "line-cap" : "round",
-      "line-join" : "round"
-    },
-    "paint" : {
-      "line-color" : "rgba(181, 169, 152, 1)"
-    }
-  } ],
-  "center" : [ 9.5554, 47.166 ],
-  "zoom" : 14
-}
\ No newline at end of file
diff --git a/output/examples/contour/tileset.json b/output/examples/contour/tileset.json
deleted file mode 100644
index 7999eb5..0000000
--- a/output/examples/contour/tileset.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "tilejson": "2.1.0",
-  "center": [
-    9.5554,
-    47.166,
-    14.0
-  ],
-  "bounds": [
-    9.471078,
-    47.04774,
-    9.636217,
-    47.27128
-  ],
-  "tiles": [
-    "http://localhost:9000/tiles/{z}/{x}/{y}.mvt"
-  ],
-  "vector_layers": [
-    {
-      "id": "aster_dem",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 20,
-          "sql": "SELECT ogc_fid, jsonb_build_object('elevation', elevation::text), wkb_geometry FROM aster_dem"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/extrusion/index.html b/output/examples/extrusion/index.html
deleted file mode 100644
index 6cbc61f..0000000
--- a/output/examples/extrusion/index.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>Extrusion Example - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="extrusion-example">Extrusion Example</h1>
-
-<p>This example builds upon the <a href="https://www.baremaps.com/examples/openstreetmap/">OpenStreetMap example</a> and shows how 3d
-buildings can be extruded with Maplibre. First, start by downloading the OSM data for London in the current directory.</p>
-
-<p>To import London data in the database.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file workflow.json
-</code></pre></div></div>
-
-<p>In the <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/extrusion/tileset.json">tileset.json</a>
-file, notice the SQL query associated with the building layer. Here, the number of levels stored in OSM is multiplied by
-3, which rawly corresponds to the height of a level in meters.</p>
-
-<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">SELECT</span> <span class="n">id</span><span class="p">,</span>
-       <span class="n">tags</span> <span class="o">||</span> <span class="n">jsonb_build_object</span><span class="p">(</span><span class="s1">'building:height'</span><span class="p">,</span> <span class="p">(</span><span class="k">CASE</span>
-                                                          <span class="k">WHEN</span> <span class="n">tags</span> <span class="o">-&gt;&gt;</span> <span class="s1">'building:levels'</span> <span class="o">~</span> <span class="s1">'^[0-9</span><span class="se">\\</span><span class="s1">.]+$'</span>
-                                                              <span class="k">THEN</span> <span class="n">tags</span> <span class="o">-&gt;&gt;</span> <span class="s1">'building:levels'</span>
-                                                          <span class="k">ELSE</span> <span class="s1">'1'</span> <span class="k">END</span><span class="p">)::</span><span class="nb">real</span> <span class="o">*</span> <span class="mi">3</span><span class="p">),</span>
-       <span class="n">geom</span>
-<span class="k">FROM</span> <span class="n">osm_ways</span>
-<span class="k">WHERE</span> <span class="n">tags</span> <span class="o">?</span> <span class="s1">'building'</span>
-</code></pre></div></div>
-
-<p>This property is then used in
-the <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/extrusion/style.json">style.json</a> file to
-extrude the buildings.</p>
-
-<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
-  </span><span class="err">...</span><span class="w">
-  </span><span class="nl">"layers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-    </span><span class="p">{</span><span class="w">
-      </span><span class="nl">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"building"</span><span class="p">,</span><span class="w">
-      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fill-extrusion"</span><span class="p">,</span><span class="w">
-      </span><span class="nl">"source"</span><span class="p">:</span><span class="w"> </span><span class="s2">"baremaps"</span><span class="p">,</span><span class="w">
-      </span><span class="nl">"source-layer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"building"</span><span class="p">,</span><span class="w">
-      </span><span class="nl">"paint"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="nl">"fill-extrusion-color"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rgb(152, 174, 221)"</span><span class="p">,</span><span class="w">
-        </span><span class="nl">"fill-extrusion-height"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-          </span><span class="s2">"get"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"building:height"</span><span class="w">
-        </span><span class="p">],</span><span class="w">
-        </span><span class="nl">"fill-extrusion-base"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
-        </span><span class="nl">"fill-extrusion-opacity"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.9</span><span class="w">
-      </span><span class="p">}</span><span class="w">
-    </span><span class="p">}</span><span class="w">
-  </span><span class="p">],</span><span class="w">
-  </span><span class="err">...</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
-
-<p>To preview this example, start the tile viewer. Here, the cache directive is
-a <a href="https://www.javadoc.io/doc/com.github.ben-manes.caffeine/caffeine/2.2.2/com/github/benmanes/caffeine/cache/CaffeineSpec.html">caffeine specification</a>
-for a 100MB tile cache.</p>
-
-<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev <span class="se">\</span>
-  <span class="nt">--database</span> <span class="s1">'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps'</span> <span class="se">\</span>
-  <span class="nt">--tileset</span> <span class="s1">'tileset.json'</span> <span class="se">\</span>
-  <span class="nt">--style</span> <span class="s1">'style.json'</span>
-</code></pre></div></div>
-
-<p>Well done, a map of London with extruded buildings should now appear in your <a href="http://localhost:9000/">browser</a>!</p>
-
-<p><img src="screenshot.png" alt="Tile viewer" /></p>
-
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/extrusion/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/examples/extrusion/indexes.sql b/output/examples/extrusion/indexes.sql
deleted file mode 100644
index 6990e7b..0000000
--- a/output/examples/extrusion/indexes.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_ways_gin ON osm_ways USING gin (nodes);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_relations_gin ON osm_relations USING gin (member_refs);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_nodes_gix ON osm_nodes USING GIST (geom);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_ways_gix ON osm_ways USING GIST (geom);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_relations_gix ON osm_relations USING GIST (geom);
\ No newline at end of file
diff --git a/output/examples/extrusion/screenshot.png b/output/examples/extrusion/screenshot.png
deleted file mode 100644
index f95080a..0000000
Binary files a/output/examples/extrusion/screenshot.png and /dev/null differ
diff --git a/output/examples/extrusion/style.json b/output/examples/extrusion/style.json
deleted file mode 100644
index 2189120..0000000
--- a/output/examples/extrusion/style.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "version": 8,
-  "center": [
-    0.1278,
-    51.5074
-  ],
-  "zoom": 14,
-  "sources": {
-    "baremaps": {
-      "type": "vector",
-      "url": "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers": [
-    {
-      "id": "building",
-      "type": "fill-extrusion",
-      "source": "baremaps",
-      "source-layer": "building",
-      "paint": {
-        "fill-extrusion-color": "rgb(152, 174, 221)",
-        "fill-extrusion-height": [
-          "get",
-          "building:height"
-        ],
-        "fill-extrusion-base": 0,
-        "fill-extrusion-opacity": 0.9
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/output/examples/extrusion/tileset.json b/output/examples/extrusion/tileset.json
deleted file mode 100644
index e5a4695..0000000
--- a/output/examples/extrusion/tileset.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "tilejson": "2.2.0",
-  "center": [
-    0.1278,
-    51.5074,
-    14.0
-  ],
-  "bounds": [
-    -0.511482,
-    51.28554,
-    0.335437,
-    51.69344
-  ],
-  "minzoom": 12.0,
-  "maxzoom": 14.0,
-  "tiles": [
-    "http://localhost:9000/tiles/{z}/{x}/{y}.mvt"
-  ],
-  "vector_layers": [
-    {
-      "id": "building",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags || jsonb_build_object('building:height', (CASE WHEN tags ->> 'building:levels' ~ '^[0-9\\\\.]+$' THEN tags ->> 'building:levels' ELSE '1' END)::real * 3), geom FROM osm_ways WHERE tags ? 'building'"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/extrusion/workflow.json b/output/examples/extrusion/workflow.json
deleted file mode 100644
index de11af5..0000000
--- a/output/examples/extrusion/workflow.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "steps": [
-    {
-      "id": "download",
-      "needs": [],
-      "tasks": [
-        {
-          "type": "DownloadUrl",
-          "url": "https://download.geofabrik.de/europe/great-britain/england/greater-london-latest.osm.pbf",
-          "path": "greater-london-latest.osm.pbf"
-        }
-      ]
-    },
-    {
-      "id": "import",
-      "needs": [
-        "download"
-      ],
-      "tasks": [
-        {
-          "type": "ImportOpenStreetMap",
-          "file": "greater-london-latest.osm.pbf",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps",
-          "databaseSrid": 3857
-        }
-      ]
-    },
-    {
-      "id": "index",
-      "needs": [
-        "import"
-      ],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "indexes.sql",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/geoadmin/index.html b/output/examples/geoadmin/index.html
deleted file mode 100644
index d905140..0000000
--- a/output/examples/geoadmin/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>Geoadmin Noise Exposure in Vector Tiles - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="geoadmin-noise-exposure-in-vector-tiles">Geoadmin noise exposure in vector tiles</h1>
-
-<p>The Federal Office for the Environment (FOEN) provides a GeoTiff describing the <a href="https://www.bafu.admin.ch/bafu/de/home/zustand/daten/geodaten/laerm--geodaten.html">traffic noise levels</a> in Switzerland.
-Download an uncompress the archive that contains the GeoTiff.</p>
-
-<p>If needed, you can now reproject the geotiff in the desired projection before importing it in the database.
-Start by reprojecting the geotiff (EPSG:2056) from LV95 to WebMercator (EPSG:3857)</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdalwarp -rc \
-  -s_srs epsg:2056 -t_srs epsg:3857 \
-  -dstnodata 0 -of GTiff -co tiled=yes \
-  StrassenLaerm_Tag_LV95.tif \
-  StrassenLaerm_Tag_LV95-3857.tif
-</code></pre></div></div>
-
-<p>You can now import any GeoTiff DEM as contours in postgis.
-Here, the <code class="language-plaintext highlighter-rouge">-nln</code> argument name the table that contains the data,
-the <code class="language-plaintext highlighter-rouge">-a</code> argument name the column that contains the elevation,
-the <code class="language-plaintext highlighter-rouge">-i</code> argument specifies the interval in meters at which contours are generated.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdal_polygonize.py \
-  StrassenLaerm_Tag_LV95-3857.tif \
-  -f PostgreSQL \
-  "PG:host=localhost user=baremaps password=baremaps dbname=baremaps" \
-  geoadmin_traffic_noise_day
-</code></pre></div></div>
-
-<p>The following index can now be created to improve performances.
-When available, a smoothing function such as <code class="language-plaintext highlighter-rouge">ST_ChaikinSmoothing</code> can be used to improve rendering.</p>
-
-<pre><code class="language-postgresql">DROP INDEX IF EXISTS geoadmin_traffic_noise_day_gix;
-CREATE INDEX CONCURRENTLY IF NOT EXISTS geoadmin_traffic_noise_day_gix ON geoadmin_traffic_noise_day USING SPGIST(wkb_geometry);
-</code></pre>
-
-<p>To preview and edit the map in the browser, run the tile server with the following command:</p>
-
-<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev <span class="se">\</span>
-  <span class="nt">--database</span> <span class="s1">'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps'</span> <span class="se">\</span>
-  <span class="nt">--config</span> <span class="s1">'tileset.json'</span> <span class="se">\</span>
-  <span class="nt">--style</span> <span class="s1">'style.json'</span>
-</code></pre></div></div>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/geoadmin/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/examples/geoadmin/style.json b/output/examples/geoadmin/style.json
deleted file mode 100644
index af13470..0000000
--- a/output/examples/geoadmin/style.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "version" : 8,
-  "sources" : {
-    "baremaps" : {
-      "type" : "vector",
-      "url" : "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers" : [ {
-    "id" : "background",
-    "type" : "background",
-    "maxzoom" : 24,
-    "paint" : {
-      "background-color" : "rgba(255, 255, 255, 1)"
-    }
-  }, {
-    "id" : "geoadmin_traffic_noise_day",
-    "type" : "line",
-    "source" : "baremaps",
-    "source-layer" : "geoadmin_traffic_noise_day",
-    "layout" : {
-      "line-cap" : "round",
-      "line-join" : "round"
-    },
-    "paint" : {
-      "line-color" : "rgba(181, 169, 152, 1)"
-    }
-  } ],
-  "center" : [ 9.5554, 47.166 ],
-  "zoom" : 14
-}
\ No newline at end of file
diff --git a/output/examples/geoadmin/tileset.json b/output/examples/geoadmin/tileset.json
deleted file mode 100644
index 167cff1..0000000
--- a/output/examples/geoadmin/tileset.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "tilejson": "2.1.0",
-  "center": [
-    6.5743,
-    46.5189,
-    14.0
-  ],
-  "bounds": [
-    9.471078,
-    47.04774,
-    9.636217,
-    47.27128
-  ],
-  "tiles": [
-    "http://localhost:9000/tiles/{z}/{x}/{y}.mvt"
-  ],
-  "vector_layers": [
-    {
-      "id": "geoadmin_traffic_noise_day",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 20,
-          "sql": "SELECT ogc_fid, ('{level:' || dn::text || '}') as tags, wkb_geometry as geom FROM geoadmin_traffic_noise_day"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/geoadmin/tileset.yaml b/output/examples/geoadmin/tileset.yaml
deleted file mode 100644
index b21d19c..0000000
--- a/output/examples/geoadmin/tileset.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: 'contour'
-center:
-  lon: 6.5743
-  lat: 46.5189
-  zoom: 14
-bounds:
-  minLon: 5.8358
-  minLat: 45.6591
-  maxLon: 10.9794
-  maxLat: 47.8700
-  minZoom: 10
-  maxZoom: 20
-layers:
-  - id: 'geoadmin_traffic_noise_day'
-    type: 'geometry'
-    queries:
-      - minZoom: 12
-        maxZoom: 20
-        sql: SELECT ogc_fid, ('{level:' || dn::text || '}') as tags, wkb_geometry as geom FROM geoadmin_traffic_noise_day
diff --git a/output/examples/geocoding/index.html b/output/examples/geocoding/index.html
new file mode 100644
index 0000000..ac53d8b
--- /dev/null
+++ b/output/examples/geocoding/index.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Create a geocoding web service - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="create-a-geocoding-web-service">Create a geocoding web service</h1>
+
+<p>In this tutorial, we demonstrate how to create a geocoding index and then serve it in a simple web application.</p>
+
+<h2 id="dataset">Dataset</h2>
+
+<p>The data we will be using comes from <a href="https://geonames.com">Geonames</a>.</p>
+
+<h2 id="generate-the-index">Generate the index</h2>
+
+<p>The following <a href="https://raw.githubusercontent.com/apache/incubator-baremaps/main/examples/geocoding/workflow.js">workflow</a> will download the Geonames data, decompress it, and finally build the index.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file examples/geocoding/workflow.js
+</code></pre></div></div>
+
+<h2 id="serve-the-data">Serve the data</h2>
+
+<p>The following command will serve the Geonames index over HTTP in a simple web application.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps geocoder serve --index geonames-index --port 3000
+</code></pre></div></div>
+
+<p>Go to <a href="http://localhost:3000/">http://localhost:3000/</a> to see it in action.</p>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to create a Geocoding index and serve it in a simple web application. 
+This will be very useful in a map application to find places quickly by writing an address in a prompt.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/geocoding/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/import-contour-into-postgis/index.html b/output/examples/import-contour-into-postgis/index.html
new file mode 100644
index 0000000..d411ff8
--- /dev/null
+++ b/output/examples/import-contour-into-postgis/index.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Import contour lines data into PostGIS - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="import-contour-lines-data-into-postgis">Import contour lines data into PostGIS</h1>
+
+<p>In this tutorial, we demonstrate how to produce contours from a digital elevation model (DEM).</p>
+
+<p>Notice that the following steps assume that the Apache Baremaps CLI and PostGIS are <a href="https://www.baremaps.com/getting-started/">installed</a>.</p>
+
+<h2 id="dataset">Dataset</h2>
+
+<p>The approach consists in using the <a href="https://gdal.org/programs/gdal_contour.html"><code class="language-plaintext highlighter-rouge">gdal_contour</code></a> command.
+Therefore, start by installing <code class="language-plaintext highlighter-rouge">gdal</code>:</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt-get <span class="nb">install </span>gdal-bin
+</code></pre></div></div>
+
+<p>The geotiff present in this directory comes from the <a href="https://asterweb.jpl.nasa.gov/gdem.asp">ASTER</a> dataset.
+We used the following command to reproject the geotiff in the desired projection (e.g. WebMercator) before importing it in the database.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdalwarp -rc \
+  -s_srs epsg:4326 -t_srs epsg:3857 \
+  -dstnodata 0 -of GTiff -co tiled=yes \
+  examples/contour/liecthenstein-aster-dem-v2.tif \
+  examples/contour/liecthenstein-aster-dem-v2-3857.tif
+</code></pre></div></div>
+
+<h2 id="importing-the-data-into-postgis">Importing the data into PostGIS</h2>
+
+<p>You can now import any GeoTiff DEM as contours in postgis. 
+In the following command, the <code class="language-plaintext highlighter-rouge">-nln</code> argument name the table that contains the data, 
+the <code class="language-plaintext highlighter-rouge">-a</code> argument name the column that contains the elevation, 
+the <code class="language-plaintext highlighter-rouge">-i</code> argument specifies the interval in meters at which contours are generated.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gdal_contour \
+  -a elevation -nln aster_dem -i 10 \
+  -f PostgreSQL \
+  examples/contour/liecthenstein-aster-dem-v2-3857.tif "PG:host=localhost user=baremaps password=baremaps dbname=baremaps"
+</code></pre></div></div>
+
+<p>Some index can now be added to the database to improve performances. 
+When available, a smoothing function such as <code class="language-plaintext highlighter-rouge">ST_ChaikinSmoothing</code> can be used to improve rendering of the contours.</p>
+
+<pre><code class="language-postgresql">DROP INDEX IF EXISTS aster_dem_gix;
+CREATE INDEX CONCURRENTLY IF NOT EXISTS aster_dem_gix ON aster_dem USING SPGIST(wkb_geometry);
+</code></pre>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to import contour lines in PostGIS.</p>
+
+<p>Now that you have inserted the contour data into the PostGIS database, you can use follow the <a href="/examples/serve-vector-tiles">Serve Vector Tiles from PostGIS</a> example to serve
+your PostGIS data directly as Vector Tiles in a web application with live reload capabilities.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/import-contour-into-postgis/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/import-naturalearth-into-postgis/index.html b/output/examples/import-naturalearth-into-postgis/index.html
new file mode 100644
index 0000000..a688045
--- /dev/null
+++ b/output/examples/import-naturalearth-into-postgis/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Import Natural Earth data into PostGIS - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="import-natural-earth-data-into-postgis">Import Natural Earth data into PostGIS</h1>
+
+<p>In this tutorial, we’ll learn how to use Baremaps to import Natural Earth data in a PostGIS database.</p>
+
+<p>Notice that the following steps assume that the Apache Baremaps CLI and PostGIS are <a href="https://www.baremaps.com/getting-started/">installed</a>.</p>
+
+<h2 id="dataset">Dataset</h2>
+
+<p><a href="https://www.naturalearthdata.com/">Natural Earth</a> is a public domain map dataset available at 1:10m, 1:50m, and 1:110 million scales.</p>
+
+<p>The following workflow will download the Natural Earth data, decompress it, and finally import it in the database.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file examples/naturalearth/workflow.json
+</code></pre></div></div>
+
+<h2 id="working-with-shapefiles-optional">Working with shapefiles (Optional)</h2>
+
+<p>The NaturalEarth dataset is also distributed in the <a href="https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip">shapefile format</a>.
+As demonstrated in the following command, shapefiles can easily be imported in postgis with <code class="language-plaintext highlighter-rouge">ogr2ogr</code>.
+Here, notice that the data is reprojected in WebMercator (EPSG:3857) to improve performance at query time.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ogr2ogr \
+  -f "PostgreSQL" "PG:host=localhost user=baremaps dbname=baremaps password=baremaps" \
+  "ne_10m_admin_0_countries.shp" \
+  -lco GEOMETRY_NAME=geom \
+  -lco FID=gid \
+  -lco PRECISION=no \
+  -nlt PROMOTE_TO_MULTI \
+  -nln ne_10m_admin_0_countries \
+  -s_srs EPSG:4326 \
+  -t_srs EPSG:3857 \
+  --config OGR_ENABLE_PARTIAL_REPROJECTION TRUE \
+  -overwrite
+</code></pre></div></div>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to import Natural Earth data in PostGIS.</p>
+
+<p>Now that you have inserted the data into the PostGIS database, you can use follow the <a href="/examples/serve-vector-tiles">Serve Vector Tiles from PostGIS</a> example to serve
+your PostGIS data directly as Vector Tiles in a web application with live reload capabilities.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/import-naturalearth-into-postgis/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/openstreetmap/database.png b/output/examples/import-osm-into-postgis/database.png
similarity index 100%
rename from output/examples/openstreetmap/database.png
rename to output/examples/import-osm-into-postgis/database.png
diff --git a/output/examples/import-osm-into-postgis/index.html b/output/examples/import-osm-into-postgis/index.html
new file mode 100644
index 0000000..5679a28
--- /dev/null
+++ b/output/examples/import-osm-into-postgis/index.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Import OSM data into PostGIS - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="import-osm-data-into-postgis">Import OSM data into PostGIS</h1>
+
+<p>In this tutorial, we’ll learn how to use Baremaps to import contour lines data in a PostGIS database.</p>
+
+<p>Notice that the following steps assume that the Apache Baremaps CLI and PostGIS are <a href="https://www.baremaps.com/getting-started/">installed</a>.</p>
+
+<p>Also, if you are in a hurry, consider skipping the “Under the Hood” sections.</p>
+
+<h2 id="dataset">Dataset</h2>
+
+<p>OpenStreetMap (OSM) is a free and editable map of the world.
+It is maintained by a community of passionate volunteers in a way which is similar to Wikipedia.
+Every week, OpenStreetMap publishes a <a href="https://planet.openstreetmap.org/">full dump</a> of its data in two flavours: a large XML file of about 90GB and a more compact binary file of about 50GB in the  <a href="https://developers.google.com/protocol-buffers">Protocol Buffer Format</a> (PBF).
+As processing such large files can take several hours, <a href="http://www.geofabrik.de/data/download.html">Geofabrik</a> regularly publishes smaller extracts of OSM for specific regions.
+In this example we will use a tiny extract of OSM for <a href="https://en.wikipedia.org/wiki/Liechtenstein">Liechtenstein</a>, which is suitable for fast experiments.</p>
+
+<h2 id="importing-openstreetmap-data">Importing OpenStreetMap Data</h2>
+
+<p>A workflow is a directed acyclic graph of steps executed by Baremaps.
+To download and import the sample OSM data in Postgres, execute the following <a href="https://raw.githubusercontent.com/apache/incubator-baremaps/main/examples/openstreetmap/workflow.json">workflow</a>.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file examples/openstreetmap/workflow.json
+</code></pre></div></div>
+
+<p>Depending on the size of the OpenStreetMap file, the execution of this command may take some time.
+Eventually, the output produced by the command should look as follows.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[INFO ] 2022-07-26 09:47:40.906 [main] Workflow - Executing workflow workflow.json
+[INFO ] 2022-07-26 09:47:41.208 [pool-2-thread-1] DownloadUrl - Downloading https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf to liechtenstein-latest.osm.pbf
+[INFO ] 2022-07-26 09:48:14.496 [pool-2-thread-1] DownloadUrl - Finished downloading https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf to liechtenstein-latest.osm.pbf
+[INFO ] 2022-07-26 09:48:14.497 [pool-2-thread-2] ImportOpenStreetMap - Importing liechtenstein-latest.osm.pbf into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
+[INFO ] 2022-07-26 09:48:14.504 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Starting...
+[INFO ] 2022-07-26 09:48:14.669 [pool-2-thread-2] HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@13d835e3
+[INFO ] 2022-07-26 09:48:14.671 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Start completed.
+[INFO ] 2022-07-26 09:48:19.172 [pool-2-thread-2] ImportOpenStreetMap - Finished importing liechtenstein-latest.osm.pbf into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
+[INFO ] 2022-07-26 09:48:19.172 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Shutdown initiated...
+[INFO ] 2022-07-26 09:48:19.177 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Shutdown completed.
+[INFO ] 2022-07-26 09:48:19.178 [pool-2-thread-3] ExecuteSqlFile - Executing indexes.sql into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
+[INFO ] 2022-07-26 09:48:19.179 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Starting...
+[INFO ] 2022-07-26 09:48:19.213 [pool-2-thread-3] HikariPool - HikariPool-2 - Added connection org.postgresql.jdbc.PgConnection@25c4ab89
+[INFO ] 2022-07-26 09:48:19.213 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Start completed.
+[INFO ] 2022-07-26 09:48:21.365 [pool-2-thread-3] ExecuteSqlFile - Finished executing indexes.sql into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
+[INFO ] 2022-07-26 09:48:21.365 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Shutdown initiated...
+[INFO ] 2022-07-26 09:48:21.367 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Shutdown completed.
+[INFO ] 2022-07-26 09:48:21.368 [main] Workflow - Finished executing workflow workflow.json
+</code></pre></div></div>
+
+<h3 id="under-the-hood-optional">Under the Hood (Optional)</h3>
+
+<p>What can we learn from this output?
+First, we notice that Baremaps uses a connection pool to parallelize the import procedure.
+Then it imports the OSM data, populating the tables previously created.
+In our case, the input is a file provided by Geofabrik.</p>
+
+<p>OSM’s <a href="https://wiki.openstreetmap.org/wiki/Elements">conceptual model</a> builds upon the notions of nodes, ways and relations.
+In this normalized data model, a line (or way) is formed by a sequence of points (nodes) referenced by their id.
+In order to save denormalized geometries in PostGIS (e.g. linestring, polygon, multi-polygon, etc.), Baremaps creates a cache for nodes, ways and relations.
+<a href="https://symas.com/lmdb/">LMDB</a> is used under the hood to achieve great performance.</p>
+
+<p>After the creation of the cache, Baremaps can populate the database with geometries.
+The geometries are stored in three tables named after the OSM conceptual model: <code class="language-plaintext highlighter-rouge">osm_nodes</code>, <code class="language-plaintext highlighter-rouge">osm_ways</code>, and <code class="language-plaintext highlighter-rouge">osm_relations</code>.
+In order to improve performances at query time, Baremaps also creates indexes for the tags and the geometries.
+The following Figure displays the schema of the PostGIS database created by Baremaps.</p>
+
+<p><img src="database.png" alt="PostGIS database" /></p>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to import OpenStreetMap data in PostGIS.</p>
+
+<p>Now that you have inserted the OSM data into the PostGIS database, you can use follow the <a href="/examples/serve-vector-tiles">Serve Vector Tiles from PostGIS</a> example to serve 
+your PostGIS data directly as Vector Tiles in a web application with live reload capabilities.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/import-osm-into-postgis/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/index.html b/output/examples/index.html
index 0a8d1da..20bf5b2 100644
--- a/output/examples/index.html
+++ b/output/examples/index.html
@@ -13,25 +13,33 @@
           <div class="four columns">
             <header>
               <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
               <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
                    data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
               </p>
             </header>
             <nav>
               <ul>
                 
                 <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
                   
                 </li>
                 
                 <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
                   
                 </li>
                 
@@ -40,18 +48,40 @@
                   
                   <ul>
                     
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
                     
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
                     
-                    <li><a href="/examples/contour/">Contour</a></li>
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
                     
                   </ul>
                   
                 </li>
                 
                 <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
                   
                 </li>
                 
@@ -66,15 +96,39 @@
           <article class="eight columns">
             <h1 id="examples">Examples</h1>
 
-<p>Several examples illustrate how to import datasets in postgis in order to produce vector tiles:</p>
+<p>The examples will showcase the different uses of the Apache Baremaps toolkits. To run the examples you need to clone or <a href="https://github.com/apache/incubator-baremaps/archive/refs/heads/main.zip">download</a> the main
+repository in order to have access to the <a href="https://github.com/apache/incubator-baremaps/blob/main/examples/">files</a> that have been prepared for the examples.</p>
+
+<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone git@github.com:apache/incubator-baremaps.git
+</code></pre></div></div>
+
+<p>You should have completed the <a href="/getting-started/installing-the-cli">Installation Guide</a> before running the examples.</p>
+
+<p>For the creation of custom vector tiles you can follow these guides:</p>
+
 <ul>
-  <li>The <a href="/examples/openstreetmap/">OpenStreetMap</a> example is a good introduction to Baremaps, it shows how to produce high resolution vector tiles.</li>
-  <li>The <a href="/examples/openstreetmap/">Extrusion</a> builds upon the OpenStreetMap example and shows how to extrude buildings.</li>
-  <li>The <a href="/examples/naturalearth/">NaturalEarth</a> example shows how to produce low resolution vector tiles.</li>
-  <li>The <a href="/examples/contour/">Contour</a> example shows how to produce contour lines from a digital elevation model.</li>
+  <li>The <a href="/examples/import-osm-into-postgis/">OpenStreetMap</a> example is a good introduction to Baremaps, it shows how to produce high resolution vector tiles.</li>
+  <li>The <a href="/examples/import-naturalearth-into-postgis/">NaturalEarth</a> example shows how to produce low resolution vector tiles.</li>
+  <li>The <a href="/examples/import-contour-into-postgis/">Contour</a> example shows how to produce contour lines from a digital elevation model.</li>
 </ul>
 
-<p>The <a href="/stylesheet/">OpenStreetMap Vecto</a> repository shows how to build a more advanced configuration and stylesheet for Baremaps.</p>
+<p>For the creation of an IP to location service follow this guide:</p>
+
+<ul>
+  <li>The <a href="/examples/ip-to-location/">IP to location</a> example shows how to create and serve an IP to location service in a simple web application.</li>
+</ul>
+
+<p>If you want to work on Geocoding there is this example:</p>
+
+<ul>
+  <li>The <a href="/examples/geocoding/">Geocoding</a> example shows how to create and serve a geocoding service in a simple web application.</li>
+</ul>
+
+<p>Developers who want to execute the code, should refer to the developer manual:</p>
+
+<ul>
+  <li>The <a href="/developer-manual/">Developer Manual</a> aims at helping developers to execute the code, understand the structure and contribute to the project.</li>
+</ul>
 
             <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
           </article>
diff --git a/output/examples/ip-to-location/index.html b/output/examples/ip-to-location/index.html
new file mode 100644
index 0000000..2cbe2d9
--- /dev/null
+++ b/output/examples/ip-to-location/index.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Create an IP to location web service - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="create-an-ip-to-location-web-service">Create an IP to location web service</h1>
+
+<p>In this tutorial, we demonstrate how to create an IP to location index and then serve it in a simple web application.</p>
+
+<h2 id="dataset">Dataset</h2>
+
+<p>The data used to create an IP to location index is publicly available from the 5 <a href="https://whatismyipaddress.com/rir">Regional Internet Registries (RIRs)</a></p>
+
+<p>Here is the list of the 5 RIRs.</p>
+
+<ul>
+  <li><a href="https://www.arin.net/">ARIN</a></li>
+  <li><a href="https://www.lacnic.net/">LACNIC</a></li>
+  <li><a href="https://afrinic.net/">AFRINIC</a></li>
+  <li><a href="https://www.ripe.net/">RIPE NCC</a></li>
+  <li><a href="https://www.apnic.net/">APNIC</a></li>
+</ul>
+
+<p>These Regional Internet Registries contain records that link IP address ranges to organisations along with some metadata.
+It is not always possible to extract meaningful data from these registries because they are not normalised.</p>
+
+<h2 id="generate-the-index">Generate the index</h2>
+
+<p>The workflow executed in the following command contains multiple steps.</p>
+
+<ul>
+  <li>Download and decompress the data from the RIRs</li>
+  <li>Download and create a Geocoding index (see the <a href="/examples/geocoding/">Geocoding</a> example)</li>
+  <li>Iterate over every entry in the registries to extract the IP address ranges and the associated metadata to query the Geocoding index and extract a latitude and a longitude.</li>
+</ul>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file examples/geocoding/workflow.json
+</code></pre></div></div>
+
+<h2 id="serve-the-data">Serve the data</h2>
+
+<p>The following command will serve the Geonames index over HTTP in a simple web application.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>iploc serve --database iploc.db --port 3000
+</code></pre></div></div>
+
+<p>Go to <a href="http://localhost:3000/">http://localhost:3000/</a> to see it in action.</p>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to create an IP to location index and serve it in a simple web application.
+IP to location has many uses, one of which is to locate users that connect to a website to generate statistics.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/ip-to-location/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/examples/naturalearth/index.html b/output/examples/naturalearth/index.html
deleted file mode 100644
index 4ee0417..0000000
--- a/output/examples/naturalearth/index.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>NaturalEarth Example - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="naturalearth-example">NaturalEarth Example</h1>
-
-<p><a href="https://www.naturalearthdata.com/">Natural Earth</a> is a public domain map dataset available at 1:10m, 1:50m, and 1:110 million scales.
-This example shows how to create vector tiles from the Natural Earth dataset.</p>
-
-<p>The first step consists in downloading the Natural Earth data, decompressing it, and importing it in the database. 
-The following workflow will allow you to achieve this result.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file workflow.json
-</code></pre></div></div>
-
-<p>To preview and edit the map in the browser, run the tile server with the following command:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev \
-  --database 'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps' \
-  --tileset 'tileset.json' \
-  --style 'style.json'
-</code></pre></div></div>
-
-<h2 id="working-with-shapefiles">Working with shapefiles</h2>
-
-<p>The NaturalEarth dataset is also distributed in the <a href="https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip">shapefile format</a>.
-As demonstrated in the following command, shapefiles can easily be imported in postgis with <code class="language-plaintext highlighter-rouge">ogr2ogr</code>.
-Here, notice that the data is reprojected in WebMercator (EPSG:3857) to improve performance at query time.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ogr2ogr \
-  -f "PostgreSQL" "PG:host=localhost user=baremaps dbname=baremaps password=baremaps" \
-  "ne_10m_admin_0_countries.shp" \
-  -lco GEOMETRY_NAME=geom \
-  -lco FID=gid \
-  -lco PRECISION=no \
-  -nlt PROMOTE_TO_MULTI \
-  -nln ne_10m_admin_0_countries \
-  -s_srs EPSG:4326 \
-  -t_srs EPSG:3857 \
-  --config OGR_ENABLE_PARTIAL_REPROJECTION TRUE \
-  -overwrite
-</code></pre></div></div>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/naturalearth/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/examples/naturalearth/indexes.sql b/output/examples/naturalearth/indexes.sql
deleted file mode 100644
index 109077c..0000000
--- a/output/examples/naturalearth/indexes.sql
+++ /dev/null
@@ -1,135 +0,0 @@
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_antarctic_claim_limit_lines_gix ON ne_10m_admin_0_antarctic_claim_limit_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_antarctic_claims_gix ON ne_10m_admin_0_antarctic_claims USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_boundary_lines_disputed_areas_gix ON ne_10m_admin_0_boundary_lines_disputed_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_boundary_lines_land_gix ON ne_10m_admin_0_boundary_lines_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_boundary_lines_map_units_gix ON ne_10m_admin_0_boundary_lines_map_units USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_boundary_lines_maritime_indicator_gix ON ne_10m_admin_0_boundary_lines_maritime_indicator USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_countries_gix ON ne_10m_admin_0_countries USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_countries_lakes_gix ON ne_10m_admin_0_countries_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_disputed_areas_gix ON ne_10m_admin_0_disputed_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_disputed_areas_scale_rank_minor_islands_gix ON ne_10m_admin_0_disputed_areas_scale_rank_minor_islands USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_label_points_gix ON ne_10m_admin_0_label_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_map_subunits_gix ON ne_10m_admin_0_map_subunits USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_map_units_gix ON ne_10m_admin_0_map_units USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_pacific_groupings_gix ON ne_10m_admin_0_pacific_groupings USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_scale_rank_gix ON ne_10m_admin_0_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_scale_rank_minor_islands_gix ON ne_10m_admin_0_scale_rank_minor_islands USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_seams_gix ON ne_10m_admin_0_seams USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_0_sovereignty_gix ON ne_10m_admin_0_sovereignty USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_label_points_details_gix ON ne_10m_admin_1_label_points_details USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_label_points_gix ON ne_10m_admin_1_label_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_seams_gix ON ne_10m_admin_1_seams USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_gix ON ne_10m_admin_1_states_provinces USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lakes_gix ON ne_10m_admin_1_states_provinces_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_lines_gix ON ne_10m_admin_1_states_provinces_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_scale_rank_gix ON ne_10m_admin_1_states_provinces_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_admin_1_states_provinces_scale_rank_minor_islands_gix ON ne_10m_admin_1_states_provinces_scale_rank_minor_islands USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_airports_gix ON ne_10m_airports USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_antarctic_ice_shelves_lines_gix ON ne_10m_antarctic_ice_shelves_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_antarctic_ice_shelves_polys_gix ON ne_10m_antarctic_ice_shelves_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_coastline_gix ON ne_10m_coastline USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_geographic_lines_gix ON ne_10m_geographic_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_geography_marine_polys_gix ON ne_10m_geography_marine_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_geography_regions_elevation_points_gix ON ne_10m_geography_regions_elevation_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_geography_regions_points_gix ON ne_10m_geography_regions_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_geography_regions_polys_gix ON ne_10m_geography_regions_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_glaciated_areas_gix ON ne_10m_glaciated_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_lakes_europe_gix ON ne_10m_lakes_europe USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_lakes_gix ON ne_10m_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_lakes_historic_gix ON ne_10m_lakes_historic USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_lakes_north_america_gix ON ne_10m_lakes_north_america USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_lakes_pluvial_gix ON ne_10m_lakes_pluvial USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_land_gix ON ne_10m_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_land_ocean_label_points_gix ON ne_10m_land_ocean_label_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_land_ocean_seams_gix ON ne_10m_land_ocean_seams USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_land_scale_rank_gix ON ne_10m_land_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_minor_islands_coastline_gix ON ne_10m_minor_islands_coastline USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_minor_islands_gix ON ne_10m_minor_islands USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_minor_islands_label_points_gix ON ne_10m_minor_islands_label_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_ocean_gix ON ne_10m_ocean USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_ocean_scale_rank_gix ON ne_10m_ocean_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_parks_and_protected_lands_area_gix ON ne_10m_parks_and_protected_lands_area USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_parks_and_protected_lands_line_gix ON ne_10m_parks_and_protected_lands_line USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_parks_and_protected_lands_point_gix ON ne_10m_parks_and_protected_lands_point USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_parks_and_protected_lands_scale_rank_gix ON ne_10m_parks_and_protected_lands_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_playas_gix ON ne_10m_playas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_populated_places_gix ON ne_10m_populated_places USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_populated_places_simple_gix ON ne_10m_populated_places_simple USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_ports_gix ON ne_10m_ports USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_railroads_gix ON ne_10m_railroads USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_railroads_north_america_gix ON ne_10m_railroads_north_america USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_reefs_gix ON ne_10m_reefs USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_rivers_europe_gix ON ne_10m_rivers_europe USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_rivers_lake_centerlines_gix ON ne_10m_rivers_lake_centerlines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_rivers_lake_centerlines_scale_rank_gix ON ne_10m_rivers_lake_centerlines_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_rivers_north_america_gix ON ne_10m_rivers_north_america USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_roads_gix ON ne_10m_roads USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_roads_north_america_gix ON ne_10m_roads_north_america USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_time_zones_gix ON ne_10m_time_zones USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_urban_areas_gix ON ne_10m_urban_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_10m_urban_areas_landscan_gix ON ne_10m_urban_areas_landscan USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_boundary_lines_land_gix ON ne_110m_admin_0_boundary_lines_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_countries_gix ON ne_110m_admin_0_countries USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_countries_lakes_gix ON ne_110m_admin_0_countries_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_map_units_gix ON ne_110m_admin_0_map_units USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_pacific_groupings_gix ON ne_110m_admin_0_pacific_groupings USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_scale_rank_gix ON ne_110m_admin_0_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_sovereignty_gix ON ne_110m_admin_0_sovereignty USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_0_tiny_countries_gix ON ne_110m_admin_0_tiny_countries USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_1_states_provinces_gix ON ne_110m_admin_1_states_provinces USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_1_states_provinces_lakes_gix ON ne_110m_admin_1_states_provinces_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_1_states_provinces_lines_gix ON ne_110m_admin_1_states_provinces_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_admin_1_states_provinces_scale_rank_gix ON ne_110m_admin_1_states_provinces_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_coastline_gix ON ne_110m_coastline USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_geographic_lines_gix ON ne_110m_geographic_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_geography_marine_polys_gix ON ne_110m_geography_marine_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_geography_regions_elevation_points_gix ON ne_110m_geography_regions_elevation_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_geography_regions_points_gix ON ne_110m_geography_regions_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_geography_regions_polys_gix ON ne_110m_geography_regions_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_glaciated_areas_gix ON ne_110m_glaciated_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_lakes_gix ON ne_110m_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_land_gix ON ne_110m_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_ocean_gix ON ne_110m_ocean USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_populated_places_gix ON ne_110m_populated_places USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_populated_places_simple_gix ON ne_110m_populated_places_simple USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_110m_rivers_lake_centerlines_gix ON ne_110m_rivers_lake_centerlines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_disputed_areas_gix ON ne_50m_admin_0_boundary_lines_disputed_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_land_gix ON ne_50m_admin_0_boundary_lines_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_lines_maritime_indicator_gix ON ne_50m_admin_0_boundary_lines_maritime_indicator USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_boundary_map_units_gix ON ne_50m_admin_0_boundary_map_units USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_breakaway_disputed_areas_gix ON ne_50m_admin_0_breakaway_disputed_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_breakaway_disputed_areas_scale_rank_gix ON ne_50m_admin_0_breakaway_disputed_areas_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_countries_gix ON ne_50m_admin_0_countries USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_countries_lakes_gix ON ne_50m_admin_0_countries_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_map_subunits_gix ON ne_50m_admin_0_map_subunits USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_map_units_gix ON ne_50m_admin_0_map_units USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_pacific_groupings_gix ON ne_50m_admin_0_pacific_groupings USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_scale_rank_gix ON ne_50m_admin_0_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_sovereignty_gix ON ne_50m_admin_0_sovereignty USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_tiny_countries_gix ON ne_50m_admin_0_tiny_countries USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_0_tiny_countries_scale_rank_gix ON ne_50m_admin_0_tiny_countries_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_1_states_provinces_gix ON ne_50m_admin_1_states_provinces USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_1_states_provinces_lakes_gix ON ne_50m_admin_1_states_provinces_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_1_states_provinces_lines_gix ON ne_50m_admin_1_states_provinces_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_admin_1_states_provinces_scale_rank_gix ON ne_50m_admin_1_states_provinces_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_airports_gix ON ne_50m_airports USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_antarctic_ice_shelves_lines_gix ON ne_50m_antarctic_ice_shelves_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_antarctic_ice_shelves_polys_gix ON ne_50m_antarctic_ice_shelves_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_coastline_gix ON ne_50m_coastline USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_geographic_lines_gix ON ne_50m_geographic_lines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_geography_marine_polys_gix ON ne_50m_geography_marine_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_geography_regions_elevation_points_gix ON ne_50m_geography_regions_elevation_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_geography_regions_points_gix ON ne_50m_geography_regions_points USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_geography_regions_polys_gix ON ne_50m_geography_regions_polys USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_glaciated_areas_gix ON ne_50m_glaciated_areas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_lakes_gix ON ne_50m_lakes USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_lakes_historic_gix ON ne_50m_lakes_historic USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_land_gix ON ne_50m_land USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_ocean_gix ON ne_50m_ocean USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_playas_gix ON ne_50m_playas USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_populated_places_gix ON ne_50m_populated_places USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_populated_places_simple_gix ON ne_50m_populated_places_simple USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_ports_gix ON ne_50m_ports USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_rivers_lake_centerlines_gix ON ne_50m_rivers_lake_centerlines USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_rivers_lake_centerlines_scale_rank_gix ON ne_50m_rivers_lake_centerlines_scale_rank USING SPGIST(geom);
-CREATE INDEX IF NOT EXISTS ne_50m_urban_areas_gix ON ne_50m_urban_areas USING SPGIST(geom);
diff --git a/output/examples/naturalearth/style.json b/output/examples/naturalearth/style.json
deleted file mode 100644
index 2fa41fd..0000000
--- a/output/examples/naturalearth/style.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "version" : 8,
-  "sources" : {
-    "baremaps" : {
-      "type" : "vector",
-      "url" : "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers" : [ {
-    "id" : "ne_50m_admin_0_countries",
-    "type" : "fill",
-    "source" : "baremaps",
-    "source-layer" : "ne_50m_admin_0_countries",
-    "layout" : {
-      "visibility" : "visible"
-    },
-    "paint" : {
-      "fill-color" : "rgba(125, 105, 105, 1)",
-      "fill-outline-color" : "rgba(0, 0, 0, 1)"
-    }
-  }, {
-    "id" : "ne_10m_admin_0_countries",
-    "type" : "fill",
-    "source" : "baremaps",
-    "source-layer" : "ne_10m_admin_0_countries",
-    "paint" : {
-      "fill-color" : "rgba(125, 105, 105, 1)",
-      "fill-outline-color" : "rgba(0, 0, 0, 1)"
-    }
-  } ],
-  "center" : [ 0, 0 ],
-  "zoom" : 4
-}
\ No newline at end of file
diff --git a/output/examples/naturalearth/tileset.json b/output/examples/naturalearth/tileset.json
deleted file mode 100644
index 7616459..0000000
--- a/output/examples/naturalearth/tileset.json
+++ /dev/null
@@ -1,1360 +0,0 @@
-{
-  "tilejson": "2.2.0",
-  "minzoom": 0,
-  "maxzoom": 12,
-  "tiles": [
-    "http://localhost:9000/tiles/{z}/{x}/{y}.mvt"
-  ],
-  "vector_layers": [
-    {
-      "id": "ne_110m_admin_0_boundary_lines_land",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_boundary_lines_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_countries",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_countries AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_countries_lakes",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_countries_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_map_units",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_map_units AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_pacific_groupings",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_pacific_groupings AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_scale_rank",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_sovereignty",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_sovereignty AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_0_tiny_countries",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_0_tiny_countries AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_1_states_provinces",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_1_states_provinces AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_1_states_provinces_lakes",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_1_states_provinces_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_1_states_provinces_lines",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_1_states_provinces_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_admin_1_states_provinces_scale_rank",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_admin_1_states_provinces_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_coastline",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_coastline AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_geographic_lines",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_geographic_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_geography_marine_polys",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_geography_marine_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_geography_regions_elevation_points",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_geography_regions_elevation_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_geography_regions_points",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_geography_regions_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_geography_regions_polys",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_geography_regions_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_glaciated_areas",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_glaciated_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_lakes",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_land",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_ocean",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_ocean AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_populated_places",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_populated_places AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_populated_places_simple",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_populated_places_simple AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_110m_rivers_lake_centerlines",
-      "queries": [
-        {
-          "minzoom": 0,
-          "maxzoom": 2,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_110m_rivers_lake_centerlines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_boundary_lines_disputed_areas",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_boundary_lines_disputed_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_boundary_lines_land",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_boundary_lines_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_boundary_lines_maritime_indicator",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_boundary_lines_maritime_indicator AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_boundary_map_units",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_boundary_map_units AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_breakaway_disputed_areas",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_breakaway_disputed_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_breakaway_disputed_areas_scale_rank",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_breakaway_disputed_areas_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_countries",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_countries AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_countries_lakes",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_countries_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_map_subunits",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_map_subunits AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_map_units",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_map_units AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_pacific_groupings",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_pacific_groupings AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_scale_rank",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_sovereignty",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_sovereignty AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_tiny_countries",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_tiny_countries AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_0_tiny_countries_scale_rank",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_0_tiny_countries_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_1_states_provinces",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_1_states_provinces AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_1_states_provinces_lakes",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_1_states_provinces_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_1_states_provinces_lines",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_1_states_provinces_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_admin_1_states_provinces_scale_rank",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_admin_1_states_provinces_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_airports",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_airports AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_antarctic_ice_shelves_lines",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_antarctic_ice_shelves_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_antarctic_ice_shelves_polys",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_antarctic_ice_shelves_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_coastline",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_coastline AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_geographic_lines",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_geographic_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_geography_marine_polys",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_geography_marine_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_geography_regions_elevation_points",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_geography_regions_elevation_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_geography_regions_points",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_geography_regions_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_geography_regions_polys",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_geography_regions_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_glaciated_areas",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_glaciated_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_lakes",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_lakes_historic",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_lakes_historic AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_land",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_ocean",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_ocean AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_playas",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_playas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_populated_places",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_populated_places AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_populated_places_simple",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_populated_places_simple AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_ports",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_ports AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_rivers_lake_centerlines",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_rivers_lake_centerlines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_rivers_lake_centerlines_scale_rank",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_rivers_lake_centerlines_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_50m_urban_areas",
-      "queries": [
-        {
-          "minzoom": 2,
-          "maxzoom": 5,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_50m_urban_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_antarctic_claim_limit_lines",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_antarctic_claim_limit_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_antarctic_claims",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_antarctic_claims AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_boundary_lines_disputed_areas",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_boundary_lines_disputed_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_boundary_lines_land",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_boundary_lines_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_boundary_lines_map_units",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_boundary_lines_map_units AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_boundary_lines_maritime_indicator",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_boundary_lines_maritime_indicator AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_countries",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_countries AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_countries_lakes",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_countries_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_disputed_areas",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_disputed_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_disputed_areas_scale_rank_minor_islands",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_disputed_areas_scale_rank_minor_islands AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_label_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_label_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_map_subunits",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_map_subunits AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_map_units",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_map_units AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_pacific_groupings",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_pacific_groupings AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_scale_rank_minor_islands",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_scale_rank_minor_islands AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_seams",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_seams AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_0_sovereignty",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_0_sovereignty AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_label_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_label_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_label_points_details",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_label_points_details AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_seams",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_seams AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_states_provinces",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_states_provinces AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_states_provinces_lakes",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_states_provinces_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_states_provinces_lines",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_states_provinces_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_states_provinces_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_states_provinces_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_admin_1_states_provinces_scale_rank_minor_islands",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_admin_1_states_provinces_scale_rank_minor_islands AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_airports",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_airports AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_antarctic_ice_shelves_lines",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_antarctic_ice_shelves_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_antarctic_ice_shelves_polys",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_antarctic_ice_shelves_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_coastline",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_coastline AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_geographic_lines",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_geographic_lines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_geography_marine_polys",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_geography_marine_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_geography_regions_elevation_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_geography_regions_elevation_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_geography_regions_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_geography_regions_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_geography_regions_polys",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_geography_regions_polys AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_glaciated_areas",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_glaciated_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_lakes",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_lakes AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_lakes_europe",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_lakes_europe AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_lakes_historic",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_lakes_historic AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_lakes_north_america",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_lakes_north_america AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_lakes_pluvial",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_lakes_pluvial AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_land",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_land AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_land_ocean_label_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_land_ocean_label_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_land_ocean_seams",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_land_ocean_seams AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_land_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_land_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_minor_islands",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_minor_islands AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_minor_islands_coastline",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_minor_islands_coastline AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_minor_islands_label_points",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_minor_islands_label_points AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_ocean",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_ocean AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_ocean_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_ocean_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_parks_and_protected_lands_area",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_parks_and_protected_lands_area AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_parks_and_protected_lands_line",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_parks_and_protected_lands_line AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_parks_and_protected_lands_point",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_parks_and_protected_lands_point AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_parks_and_protected_lands_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_parks_and_protected_lands_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_playas",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_playas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_populated_places",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_populated_places AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_populated_places_simple",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_populated_places_simple AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_ports",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_ports AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_railroads",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_railroads AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_railroads_north_america",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_railroads_north_america AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_reefs",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_reefs AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_rivers_europe",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_rivers_europe AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_rivers_lake_centerlines",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_rivers_lake_centerlines AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_rivers_lake_centerlines_scale_rank",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_rivers_lake_centerlines_scale_rank AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_rivers_north_america",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_rivers_north_america AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_roads",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_roads AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_roads_north_america",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_roads_north_america AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_time_zones",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_time_zones AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_urban_areas",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_urban_areas AS t"
-        }
-      ]
-    },
-    {
-      "id": "ne_10m_urban_areas_landscan",
-      "queries": [
-        {
-          "minzoom": 5,
-          "maxzoom": 12,
-          "sql": "SELECT fid as id, '{}'::jsonb as tags, geom FROM ne_10m_urban_areas_landscan AS t"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/naturalearth/workflow.json b/output/examples/naturalearth/workflow.json
deleted file mode 100644
index bd9d644..0000000
--- a/output/examples/naturalearth/workflow.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "steps": [
-    {
-      "id": "natural_earth_vector",
-      "needs": [],
-      "tasks": [
-        {
-          "type": "DownloadUrl",
-          "url": "https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip",
-          "path": "natural_earth_vector.gpkg.zip"
-        },
-        {
-          "type": "UnzipFile",
-          "file": "natural_earth_vector.gpkg.zip",
-          "directory": "natural_earth_vector"
-        },
-        {
-          "type": "ImportGeoPackage",
-          "file": "natural_earth_vector/packages/natural_earth_vector.gpkg",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps",
-          "sourceSRID": 4326,
-          "targetSRID": 3857
-        },
-        {
-          "type": "ExecuteSql",
-          "file": "indexes.sql",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/openstreetmap/index.html b/output/examples/openstreetmap/index.html
deleted file mode 100644
index fd1a537..0000000
--- a/output/examples/openstreetmap/index.html
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>OpenStreetMap Example - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="openstreetmap-example">OpenStreetMap Example</h1>
-
-<p>Baremaps aims at being the most productive toolkit for creating custom vector tiles from OpenStreetMap data.</p>
-
-<p>In this tutorial, we’ll learn how to use Baremaps to import OpenStreetMap data in a Postgis database and how to create vector tiles from this data.
-Notice that the following steps assume that Baremaps and Postgis are <a href="https://www.baremaps.com/installation/">installed</a>.
-Also, if you are in a hurry, consider skipping the “Under the Hood” sections.</p>
-
-<h2 id="dataset">Dataset</h2>
-
-<p>OpenStreetMap (OSM) is a free and editable map of the world.
-It is maintained by a community of passionate volunteers in a way which is similar to Wikipedia.
-Every week, OpenStreetMap publishes a <a href="https://planet.openstreetmap.org/">full dump</a> of its data in two flavours: a large XML file of about 90GB and a more compact binary file of about 50GB in the  <a href="https://developers.google.com/protocol-buffers">Protocol Buffer Format</a> (PBF).
-As processing such large files can take several hours, <a href="http://www.geofabrik.de/data/download.html">Geofabrik</a> regularly publishes smaller extracts of OSM for specific regions.
-In this example we will use a tiny extract of OSM for <a href="https://en.wikipedia.org/wiki/Liechtenstein">Liechtenstein</a>, which is suitable for fast experiments.</p>
-
-<h2 id="importing-openstreetmap-data">Importing OpenStreetMap Data</h2>
-
-<p>A workflow is a directed acyclic graph of steps executed by Baremaps. 
-To download and import the sample OSM data in Postgres, execute the following <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/openstreetmap/workflow.json">workflow</a>.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps workflow execute --file workflow.json
-</code></pre></div></div>
-
-<p>Depending on the size of the OpenStreetMap file, the execution of this command may take some time.
-Eventually, the output produced by the command should look as follows.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[INFO ] 2022-07-26 09:47:40.906 [main] Workflow - Executing workflow workflow.json
-[INFO ] 2022-07-26 09:47:41.208 [pool-2-thread-1] DownloadUrl - Downloading https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf to liechtenstein-latest.osm.pbf
-[INFO ] 2022-07-26 09:48:14.496 [pool-2-thread-1] DownloadUrl - Finished downloading https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf to liechtenstein-latest.osm.pbf
-[INFO ] 2022-07-26 09:48:14.497 [pool-2-thread-2] ImportOpenStreetMap - Importing liechtenstein-latest.osm.pbf into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
-[INFO ] 2022-07-26 09:48:14.504 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Starting...
-[INFO ] 2022-07-26 09:48:14.669 [pool-2-thread-2] HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@13d835e3
-[INFO ] 2022-07-26 09:48:14.671 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Start completed.
-[INFO ] 2022-07-26 09:48:19.172 [pool-2-thread-2] ImportOpenStreetMap - Finished importing liechtenstein-latest.osm.pbf into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
-[INFO ] 2022-07-26 09:48:19.172 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Shutdown initiated...
-[INFO ] 2022-07-26 09:48:19.177 [pool-2-thread-2] HikariDataSource - HikariPool-1 - Shutdown completed.
-[INFO ] 2022-07-26 09:48:19.178 [pool-2-thread-3] ExecuteSqlFile - Executing indexes.sql into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
-[INFO ] 2022-07-26 09:48:19.179 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Starting...
-[INFO ] 2022-07-26 09:48:19.213 [pool-2-thread-3] HikariPool - HikariPool-2 - Added connection org.postgresql.jdbc.PgConnection@25c4ab89
-[INFO ] 2022-07-26 09:48:19.213 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Start completed.
-[INFO ] 2022-07-26 09:48:21.365 [pool-2-thread-3] ExecuteSqlFile - Finished executing indexes.sql into jdbc:postgresql://localhost:5432/baremaps?&amp;user=baremaps&amp;password=baremaps
-[INFO ] 2022-07-26 09:48:21.365 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Shutdown initiated...
-[INFO ] 2022-07-26 09:48:21.367 [pool-2-thread-3] HikariDataSource - HikariPool-2 - Shutdown completed.
-[INFO ] 2022-07-26 09:48:21.368 [main] Workflow - Finished executing workflow workflow.json
-</code></pre></div></div>
-
-<h3 id="under-the-hood-optional">Under the Hood (Optional)</h3>
-
-<p>What can we learn from this output?
-First, we notice that Baremaps uses a connection pool to parallelize the import procedure.
-Then it imports the OSM data, populating the tables previously created.
-In our case, the input is a file provided by Geofabrik.</p>
-
-<p>OSM’s <a href="https://wiki.openstreetmap.org/wiki/Elements">conceptual model</a> builds upon the notions of nodes, ways and relations.
-In this normalized data model, a line (or way) is formed by a sequence of points (nodes) referenced by their id.
-In order to save denormalized geometries in Postgis (e.g. linestring, polygon, multi-polygon, etc.), Baremaps creates a cache for nodes, ways and relations.
-<a href="https://symas.com/lmdb/">LMDB</a> is used under the hood to achieve great performance.</p>
-
-<p>After the creation of the cache, Baremaps can populate the database with geometries.
-The geometries are stored in three tables named after the OSM conceptual model: <code class="language-plaintext highlighter-rouge">osm_nodes</code>, <code class="language-plaintext highlighter-rouge">osm_ways</code>, and <code class="language-plaintext highlighter-rouge">osm_relations</code>.
-In order to improve performances at query time, Baremaps also creates indexes for the tags and the geometries.
-The following Figure displays the schema of the Postgis database created by Baremaps.</p>
-
-<p><img src="database.png" alt="Postgis database" /></p>
-
-<h2 id="creating-vector-tiles">Creating Vector Tiles</h2>
-
-<p>In order to create vector tiles, Baremaps uses JSON configuration files.
-You can obtain a copy of the <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/openstreetmap/tileset.json">tileset.json</a> and <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/openstreetmap/style.json">style.json</a> file in the repository.
-The <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/openstreetmap/tileset.json">tileset.json</a> is loosely based on the <a href="https://github.com/mapbox/tilejson-spec">TileJSON</a> specification. 
-It defines general tileset properties and lists layers containing SQL queries to be executed by Postgis.
-The <a href="https://raw.githubusercontent.com/baremaps/baremaps/main/docs/examples/openstreetmap/style.json">style.json</a> file is a <a href="https://maplibre.org/maplibre-gl-js-docs/api/">Maplibre Style</a>.
-It defines general style and rendering properties.</p>
-
-<p>Let’s preview and edit the map with the sample configuration files by executing the following command in a terminal.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev \
-  --database 'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps' \
-  --tileset 'tileset.json' \
-  --style 'style.json'
-</code></pre></div></div>
-
-<p>Well done, a local development server should have started. 
-You can now visualize a map of Liechtenstein in your browser (<a href="http://localhost:9000/">http://localhost:9000/</a>)!
-Notice that the changes in the configuration files are automatically reloaded by the browser.</p>
-
-<h3 id="under-the-hood-optional-1">Under the Hood (Optional)</h3>
-
-<p>Baremaps extensively rely on the fantastic <a href="https://postgis.net/docs/ST_AsMVT.html">ST_AsMVT</a> functions released by the Postgis team to produce <a href="https://docs.mapbox.com/vector-tiles/specification/">Mapbox Vector Tiles</a>.
-However, in the following excerpt of the json configuration file, none of these concepts appear in the SQL queries.</p>
-
-<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
-  </span><span class="err">...</span><span class="w">
-  </span><span class="nl">"vector_layers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-    </span><span class="p">{</span><span class="w">
-      </span><span class="nl">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"aeroway"</span><span class="p">,</span><span class="w">
-      </span><span class="nl">"queries"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-        </span><span class="p">{</span><span class="w">
-          </span><span class="nl">"minzoom"</span><span class="p">:</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w">
-          </span><span class="nl">"maxzoom"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w">
-          </span><span class="nl">"sql"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'aeroway'"</span><span class="w">
-        </span><span class="p">},</span><span class="w">
-        </span><span class="err">...</span><span class="w">
-      </span><span class="p">]</span><span class="w">
-    </span><span class="p">},</span><span class="w">
-  </span><span class="p">],</span><span class="w">
-  </span><span class="err">...</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
-
-<p>Why don’t we see these function calls in the configuration?
-Baremaps wants you to focus on the content of the tiles, and relieves you from the burden of writing complex SQL queries.
-In fact, at runtime, Baremaps merges all the queries of the configuration file into a single optimized query that produces vector tiles.</p>
-
-<p>In production, vector tiles are rarely served dynamically. Why is that so?
-First, a large blob store is much cheaper than a relational database to <a href="https://wiki.c2.com/?StorageIsCheap">operate</a>.
-Second, content delivery networks (CDNs) greatly improve web performances by caching static content close to the end user.
-Baremaps has been conceived with these lasting trends in mind.
-The following command produces a local directory containing precomputed static tiles.
-These tiles can be served with Apache, Nginx, or Caddy, but also copied in a blob store behind a content delivery network, such as Cloudflare, Stackpath, or Fastly.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map export \
-  --database 'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps' \
-  --tileset 'tileset.json' \
-  --repository 'tiles/'
-</code></pre></div></div>
-
-<h2 id="conclusion">Conclusion</h2>
-
-<p>In this tutorial, we learnt how to import OpenStreetMap data in Postgis and how to create vector tiles with Baremaps.
-Prior to the release of Baremaps, we believe that creating a pipeline for publishing vector tiles from OpenStreetMap data was a rather time consuming task.
-As shown in this demonstration, Baremaps literally brings back the fun to creating a web mapping pipeline!</p>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/openstreetmap/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/examples/openstreetmap/indexes.sql b/output/examples/openstreetmap/indexes.sql
deleted file mode 100644
index 6990e7b..0000000
--- a/output/examples/openstreetmap/indexes.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_ways_gin ON osm_ways USING gin (nodes);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_relations_gin ON osm_relations USING gin (member_refs);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_nodes_gix ON osm_nodes USING GIST (geom);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_ways_gix ON osm_ways USING GIST (geom);
-CREATE INDEX CONCURRENTLY IF NOT EXISTS osm_relations_gix ON osm_relations USING GIST (geom);
\ No newline at end of file
diff --git a/output/examples/openstreetmap/liechtenstein-latest.osm.pbf b/output/examples/openstreetmap/liechtenstein-latest.osm.pbf
deleted file mode 100644
index 591fd91..0000000
Binary files a/output/examples/openstreetmap/liechtenstein-latest.osm.pbf and /dev/null differ
diff --git a/output/examples/openstreetmap/screenshot.png b/output/examples/openstreetmap/screenshot.png
deleted file mode 100644
index 3121c6e..0000000
Binary files a/output/examples/openstreetmap/screenshot.png and /dev/null differ
diff --git a/output/examples/openstreetmap/style.js b/output/examples/openstreetmap/style.js
deleted file mode 100644
index 127ae1a..0000000
--- a/output/examples/openstreetmap/style.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default {
-  "version" : 8,
-  "sources" : {
-    "baremaps" : {
-      "type" : "vector",
-      "url" : "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers" : [ {
-    "id" : "building",
-    "type" : "fill",
-    "source" : "baremaps",
-    "source-layer" : "building",
-    "layout" : {
-      "visibility" : "visible"
-    },
-    "paint" : {
-      "fill-color" : "rgba(255, 0, 0, 1)"
-    }
-  } ],
-  "center" : [ 9.5554, 47.166 ],
-  "metadata" : {
-    "maputnik:renderer" : "mbgljs"
-  },
-  "zoom" : 14
-};
\ No newline at end of file
diff --git a/output/examples/openstreetmap/style.json b/output/examples/openstreetmap/style.json
deleted file mode 100644
index f64b679..0000000
--- a/output/examples/openstreetmap/style.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "version" : 8,
-  "sources" : {
-    "baremaps" : {
-      "type" : "vector",
-      "url" : "http://localhost:9000/tiles.json"
-    }
-  },
-  "layers" : [ {
-    "id" : "building",
-    "type" : "fill",
-    "source" : "baremaps",
-    "source-layer" : "building",
-    "layout" : {
-      "visibility" : "visible"
-    },
-    "paint" : {
-      "fill-color" : "rgba(255, 0, 0, 1)"
-    }
-  } ],
-  "center" : [ 9.5554, 47.166 ],
-  "metadata" : {
-    "maputnik:renderer" : "mbgljs"
-  },
-  "zoom" : 14
-}
\ No newline at end of file
diff --git a/output/examples/openstreetmap/tileset.json b/output/examples/openstreetmap/tileset.json
deleted file mode 100644
index b714ed8..0000000
--- a/output/examples/openstreetmap/tileset.json
+++ /dev/null
@@ -1,521 +0,0 @@
-{
-  "tilejson": "2.2.0",
-  "center": [
-    9.5554,
-    47.166,
-    14.0
-  ],
-  "bounds": [
-    9.471078,
-    47.04774,
-    9.636217,
-    47.27128
-  ],
-  "minzoom": 12.0,
-  "maxzoom": 14.0,
-  "tiles": [
-    "http://localhost:9000/tiles/{z}/{x}/{y}.mvt"
-  ],
-  "vector_layers": [
-    {
-      "id": "aeroway",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'aeroway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'aeroway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'aeroway' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "waterway",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'waterway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'waterway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'waterway' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "landuse",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'landuse'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'landuse'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'landuse' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "railway",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'railway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'railway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'railway' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "highway",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'highway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'highway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'highway' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "public_transport",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'public_transport'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'public_transport'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'public_transport' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "aerialway",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'aerialway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'aerialway'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'aerialway' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "geological",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'geological'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'geological'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'geological' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "building",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'building'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'building'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'building' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "amenity",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'amenity'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'amenity'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'amenity' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "craft",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'craft'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'craft'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'craft' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "emergency",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'emergency'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'emergency'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'emergency' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "historic",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'historic'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'historic'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'historic' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "leisure",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'leisure'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'leisure'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'leisure' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "man_made",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'man_made'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'man_made'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'man_made' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "military",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'military'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'military'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'military' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "natural",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'natural'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'natural'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'natural' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "office",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'office'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'office'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'office' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "place",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'place'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'place'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'place' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "power",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'power'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'power'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'power' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "route",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'route'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'route'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'route' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "shop",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'shop'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'shop'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'shop' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "sport",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'sport'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'sport'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'sport' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "telecom",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'telecom'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'telecom'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'telecom' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    },
-    {
-      "id": "tourism",
-      "queries": [
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'tourism'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_ways WHERE tags ? 'tourism'"
-        },
-        {
-          "minzoom": 12,
-          "maxzoom": 20,
-          "sql": "SELECT id, tags, geom FROM osm_relations WHERE tags ? 'tourism' AND tags ->> 'type' = 'multipolygon'"
-        }
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/output/examples/openstreetmap/workflow.json b/output/examples/openstreetmap/workflow.json
deleted file mode 100644
index 9ebd677..0000000
--- a/output/examples/openstreetmap/workflow.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "steps": [
-    {
-      "id": "download",
-      "needs": [],
-      "tasks": [
-        {
-          "type": "DownloadUrl",
-          "url": "https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf",
-          "path": "liechtenstein-latest.osm.pbf"
-        }
-      ]
-    },
-    {
-      "id": "import",
-      "needs": [
-        "download"
-      ],
-      "tasks": [
-        {
-          "type": "ImportOpenStreetMap",
-          "file": "liechtenstein-latest.osm.pbf",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps",
-          "databaseSrid": 3857
-        }
-      ]
-    },
-    {
-      "id": "index",
-      "needs": [
-        "import"
-      ],
-      "tasks": [
-        {
-          "type": "ExecuteSql",
-          "file": "indexes.sql",
-          "database": "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps"
-        }
-      ]
-    }
-  ]
-}
diff --git a/output/examples/serve-vector-tiles/index.html b/output/examples/serve-vector-tiles/index.html
new file mode 100644
index 0000000..daeeae4
--- /dev/null
+++ b/output/examples/serve-vector-tiles/index.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Serve Vector Tiles from PostGIS - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="serve-vector-tiles-from-postgis">Serve Vector Tiles from PostGIS</h1>
+
+<p>In this tutorial, we’ll learn how to create vector tiles from the data imported into PostGIS.</p>
+
+<p>If you have not yet inserted data into your PostGIS database, please follow one of these three guides:</p>
+
+<ul>
+  <li><a href="https://baremaps.apache.org/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+  <li><a href="https://baremaps.apache.org/examples/openstreetmap/">Import Natural Earth data into PostGIS</a></li>
+  <li><a href="https://baremaps.apache.org/examples/openstreetmap/">Import Contour lines from the ASTER dataset into PostGIS</a></li>
+</ul>
+
+<p>If you are in a hurry, consider skipping the “Under the Hood” sections.</p>
+
+<h2 id="creating-vector-tiles">Creating Vector Tiles</h2>
+
+<p>In order to create vector tiles, Apache Baremaps requires JSON configuration files. The two configuration files used are:</p>
+
+<ul>
+  <li><code class="language-plaintext highlighter-rouge">tileset.json</code> - Defines all the information needed to retrieve the correct vector tile layers at different zoom levels.</li>
+  <li><code class="language-plaintext highlighter-rouge">style.json</code> - Defines the style of the different layers.</li>
+</ul>
+
+<p>For convenience, we have prepared a <code class="language-plaintext highlighter-rouge">tileset.json</code> and a <code class="language-plaintext highlighter-rouge">style.json</code> that correspond to each of the examples.</p>
+
+<p>Each of these files are available in the main repository of Apache Baremaps inside the examples’ folder.</p>
+
+<ul>
+  <li><a href="https://github.com/apache/incubator-baremaps/blob/main/examples/openstreetmap/">For OpenStreetMap data</a></li>
+  <li><a href="https://github.com/apache/incubator-baremaps/blob/main/examples/contour/">For contour lines data</a></li>
+  <li><a href="https://github.com/apache/incubator-baremaps/blob/main/examples/naturalearth/">For Natural Earth data</a></li>
+</ul>
+
+<p>First <code class="language-plaintext highlighter-rouge">cd</code> into one of the example directories that corresponds to the data you inserted inside your PostGIS database.
+Then let’s preview and edit the map with the sample configuration files by executing the following command in a terminal.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map dev \
+  --database 'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps' \
+  --tileset 'tileset.json' \
+  --style 'style.json'
+</code></pre></div></div>
+
+<p>Well done, a local development server should have started.
+You can now visualize the vector tiles in your browser (<a href="http://localhost:9000/">http://localhost:9000/</a>)!
+Notice that the changes in the configuration files are automatically reloaded by the browser.</p>
+
+<h3 id="under-the-hood-optional">Under the Hood (Optional)</h3>
+
+<p>Baremaps extensively rely on the fantastic <a href="https://postgis.net/docs/ST_AsMVT.html">ST_AsMVT</a> functions released by the PostGIS team to produce <a href="https://docs.mapbox.com/vector-tiles/specification/">Mapbox Vector Tiles</a>.
+However, in the following excerpt of the json configuration file, none of these concepts appear in the SQL queries.</p>
+
+<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
+  </span><span class="err">...</span><span class="w">
+  </span><span class="nl">"vector_layers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+    </span><span class="p">{</span><span class="w">
+      </span><span class="nl">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"aeroway"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"queries"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+        </span><span class="p">{</span><span class="w">
+          </span><span class="nl">"minzoom"</span><span class="p">:</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"maxzoom"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"sql"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SELECT id, tags, geom FROM osm_nodes WHERE tags ? 'aeroway'"</span><span class="w">
+        </span><span class="p">},</span><span class="w">
+        </span><span class="err">...</span><span class="w">
+      </span><span class="p">]</span><span class="w">
+    </span><span class="p">},</span><span class="w">
+  </span><span class="p">],</span><span class="w">
+  </span><span class="err">...</span><span class="w">
+</span><span class="p">}</span><span class="w">
+</span></code></pre></div></div>
+
+<p>Why don’t we see these function calls in the configuration?
+Baremaps wants you to focus on the content of the tiles, and relieves you from the burden of writing complex SQL queries.
+In fact, at runtime, Baremaps merges all the queries of the configuration file into a single optimized query that produces vector tiles.</p>
+
+<p>In production, vector tiles are rarely served dynamically. Why is that so?
+First, a large blob store is much cheaper than a relational database to <a href="https://wiki.c2.com/?StorageIsCheap">operate</a>.
+Second, content delivery networks (CDNs) greatly improve web performances by caching static content close to the end user.
+Baremaps has been conceived with these lasting trends in mind.
+The following command produces a local directory containing precomputed static tiles.
+These tiles can be served with Apache, Nginx, or Caddy, but also copied in a blob store behind a content delivery network, such as Cloudflare, Stackpath, or Fastly.</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baremaps map export \
+  --database 'jdbc:postgresql://localhost:5432/baremaps?user=baremaps&amp;password=baremaps' \
+  --tileset 'tileset.json' \
+  --repository 'tiles/'
+</code></pre></div></div>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>In this tutorial, we learnt how to create vector tiles from PostGIS data with the help of Apache Baremaps.
+Prior to the release of Apache Baremaps, we believe that creating a pipeline for publishing vector tiles from OpenStreetMap data was a rather time-consuming task.
+As shown in this demonstration, Apache Baremaps tries to bring back the fun to creating a web mapping pipeline!</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/examples/serve-vector-tiles/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/getting-started/index.html b/output/getting-started/index.html
new file mode 100644
index 0000000..e69b449
--- /dev/null
+++ b/output/getting-started/index.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Getting Started - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="getting-started">Getting Started</h1>
+
+<p>This section will get you started with the setup of Apache Baremaps to execute the examples. If you plan on running the 
+code directly, or using Apache Baremaps as a library, you should refer to the <a href="/developer-manual/">Developer Manual</a>.</p>
+
+<p>After installing the necessary components, the <a href="/examples/">Examples</a> explain how to use Apache Baremaps to create a vector tileset from an OpenStreetMap extract, create an IP to location web service, and much more.</p>
+
+<p>Now head into <a href="/getting-started/installing-the-cli/">Installing the CLI</a> to see how to set up the Apache Baremaps command line interface on your
+own machine to execute the examples.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/getting-started/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/getting-started/installing-postgis/index.html b/output/getting-started/installing-postgis/index.html
new file mode 100644
index 0000000..e4a151d
--- /dev/null
+++ b/output/getting-started/installing-postgis/index.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Installing PostGIS - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="installing-postgis">Installing PostGIS</h1>
+
+<p>This step is not required if you plan to execute the Geocoding or IP to location examples.</p>
+
+<p>For the insertion and generation of Vector tiles, you need to set up a <a href="https://postgis.net/">PostGIS</a> database.
+This database will host all the data required to generate the vector tiles.</p>
+
+<p>The following docker image will allow you to jump start this installation:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run \
+  --name baremaps \
+  --publish 5432:5432 \
+  -e POSTGRES_DB=baremaps \
+  -e POSTGRES_USER=baremaps \
+  -e POSTGRES_PASSWORD=baremaps \
+  -d postgis/postgis:latest
+</code></pre></div></div>
+
+<p>You can then stop and start the container with the following commands:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker stop baremaps
+docker start baremaps
+</code></pre></div></div>
+
+<p>From there you can go to the <a href="/examples/">Examples</a> section. The <a href="/examples/openstreetmap/">Import OSM data into PostGIS</a> example is the first step to produce custom high resolution vector tiles.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/getting-started/installing-postgis/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/getting-started/installing-the-cli/index.html b/output/getting-started/installing-the-cli/index.html
new file mode 100644
index 0000000..6850cb5
--- /dev/null
+++ b/output/getting-started/installing-the-cli/index.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Installing the CLI - Apache Baremaps</title>
+    
+    <link rel="stylesheet" href="/assets/css/main.css">
+  </head>
+  <body>
+    <div class="container">
+      <div class="row">
+          <div class="four columns">
+            <header>
+              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
+              <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
+              <p>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+                   aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+                <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
+                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
+                   aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
+              </p>
+            </header>
+            <nav>
+              <ul>
+                
+                <li>
+                  <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
+                  
+                </li>
+                
+                <li>
+                  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/getting-started/installing-the-cli/">Installing the CLI</a></li>
+                    
+                    <li><a href="/getting-started/installing-postgis/">Installation PostGIS</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/examples/import-osm-into-postgis/">Import OSM data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-naturalearth-into-postgis/">Import Natural Earth data into PostGIS</a></li>
+                    
+                    <li><a href="/examples/import-contour-into-postgis/">Import contour lines into PostGIS</a></li>
+                    
+                    <li><a href="/examples/serve-vector-tiles/">Serve vector tiles from PostGIS</a></li>
+                    
+                    <li><a href="/examples/ip-to-location/">Create an IP to location web service</a></li>
+                    
+                    <li><a href="/examples/geocoding/">Create a geocoding web service</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
+                  
+                  <ul>
+                    
+                    <li><a href="/developer-manual/project-structure/">Project structure</a></li>
+                    
+                    <li><a href="/developer-manual/how-to-build-with-maven/">How to build with Maven</a></li>
+                    
+                    <li><a href="/developer-manual/setup-in-intellij/">Set up in IntelliJ IDEA</a></li>
+                    
+                    <li><a href="/developer-manual/geocoder/">Geocoder</a></li>
+                    
+                    <li><a href="/developer-manual/ip-to-location/">IP to location</a></li>
+                    
+                    <li><a href="/developer-manual/stylesheet/">Stylesheet</a></li>
+                    
+                  </ul>
+                  
+                </li>
+                
+                <li>
+                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+                  
+                </li>
+                
+              </ul>
+            </nav>
+          </div>
+          <article class="eight columns">
+            <h1 id="installing-the-cli">Installing the CLI</h1>
+
+<p>In order to run Apache Baremaps, you first need to install Java 17 or a later version.
+<a href="https://sdkman.io/">SDKMAN</a> provides a convenient Command Line Interface (CLI) to install and upgrade Java.</p>
+
+<p>To install Apache Baremaps, download and unzip the latest <a href="https://github.com/apache/incubator-baremaps/releases/latest">release</a>.
+Then, add the <code class="language-plaintext highlighter-rouge">/bin</code> folder to your <code class="language-plaintext highlighter-rouge">PATH</code> variable:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://github.com/apache/incubator-baremaps/releases/latest/download/baremaps.zip
+unzip baremaps.zip
+export PATH=$PATH:`pwd`/baremaps/bin
+</code></pre></div></div>
+
+<p>Calling the <code class="language-plaintext highlighter-rouge">baremaps</code> command should now result in an output similar to the following:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Usage: baremaps [COMMAND]
+A toolkit for producing vector tiles.
+Commands:
+  import  Import OpenStreetMap data in the Postgresql database.
+  update  Update OpenStreetMap data in the Postgresql database.
+  export  Export vector tiles from the Postgresql database.
+  serve   Serve vector tiles from the the Postgresql database.
+</code></pre></div></div>
+
+<p>From there, head into <a href="/getting-started/installing-postgis/">Installing PostGIS</a> if you plan to work with vector tiles.</p>
+
+<p>If you want to work on <a href="/examples/geocoding/">Geocoding</a> or <a href="/examples/ip-to-location/">IP to location</a>, head directly into the related examples.</p>
+
+            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/getting-started/installing-the-cli/index.md"><i class="fas fa-edit"></i> Improve this page</a></p>
+          </article>
+      </div>
+    </div>
+    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
+    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
+  </body>
+</html>
diff --git a/output/index.html b/output/index.html
index 392c29f..c7abfbf 100644
--- a/output/index.html
+++ b/output/index.html
@@ -3,8 +3,8 @@
   <head>
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta charset="utf-8">
-    <title>Custom Vector Tiles - Apache Baremaps</title>
-    <meta name="description" content="Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.">
+    <title>Apache Baremaps - Apache Baremaps</title>
+    <meta name="description" content="Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.">
     <link rel="stylesheet" href="/assets/css/main.css">
   </head>
   <body>
@@ -17,26 +17,26 @@
   <nav>
     <p>
       
-       <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
+       <a href="/about/"><i class="fas fa-info-circle"></i> About</a>
       
-       |  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
+       ·  <a href="/getting-started/"><i class="fas fa-rocket"></i> Getting Started</a>
       
-       |  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
+       ·  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
       
-       |  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
+       ·  <a href="/developer-manual/"><i class="fas fa-code"></i> Developer Manual</a>
       
-       |  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
+       ·  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
       
     </p>
   </nav>
   <section>
-    <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
+    <p>Apache Baremaps is a toolkit and a set of infrastructure components for creating, publishing, and operating online maps. It provides a data pipeline enabling developers to build maps with different data sources with live reload capabilities. It provides other services commonly used in online maps, such as location search and IP to location.</p>
     <p>
-      <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-         aria-label="Star baremaps/baremaps on GitHub">Star</a>
-      <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
+      <a class="github-button" href="https://github.com/apache/incubator-baremaps" data-size="large" data-show-count="true"
+         aria-label="Star apache/incubator-baremaps on GitHub">Star</a>
+      <a class="github-button" href="https://github.com/apache/incubator-baremaps/releases/latest"
          data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-         aria-label="Download baremaps/baremaps on GitHub">Download</a>
+         aria-label="Download apache/incubator-baremaps on GitHub">Download</a>
     </p>
     <a href="/assets/demo.html"><img src="/assets/screenshot.jpg" alt="screenshot"></a>
     <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/index.html"><i class="fas fa-edit"></i> Edit this page</a></p>
diff --git a/output/installation/index.html b/output/installation/index.html
deleted file mode 100644
index 50ac53d..0000000
--- a/output/installation/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>Installation - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="installation">Installation</h1>
-
-<p>In order to run Baremaps, you first need to install Java 8 or a later version. 
-<a href="https://sdkman.io/">SDKMAN</a> provides a convenient Command Line Interface (CLI) to install and upgrade Java.</p>
-
-<p>To install baremaps, download and unzip the latest <a href="https://github.com/baremaps/baremaps/releases/latest">release</a>. 
-Then, add the <code class="language-plaintext highlighter-rouge">/bin</code> folder to your <code class="language-plaintext highlighter-rouge">PATH</code> variable:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget https://github.com/baremaps/baremaps/releases/latest/download/baremaps.zip
-unzip baremaps.zip
-export PATH=$PATH:`pwd`/baremaps/bin
-</code></pre></div></div>
-
-<p>Calling the <code class="language-plaintext highlighter-rouge">baremaps</code> command should now result in an output similar to the following:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Usage: baremaps [COMMAND]
-A toolkit for producing vector tiles.
-Commands:
-  import  Import OpenStreetMap data in the Postgresql database.
-  update  Update OpenStreetMap data in the Postgresql database.
-  export  Export vector tiles from the Postgresql database.
-  serve   Serve vector tiles from the the Postgresql database.
-</code></pre></div></div>
-
-<p>In order to run Baremaps, you need to setup a <a href="https://postgis.net/">postgis</a> database.
-The following docker image will allow you to jump start this installation:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run \
-  --name baremaps \
-  --publish 5432:5432 \
-  -e POSTGRES_DB=baremaps \
-  -e POSTGRES_USER=baremaps \
-  -e POSTGRES_PASSWORD=baremaps \
-  -d postgis/postgis:latest
-</code></pre></div></div>
-
-<p>You can then stop and start the container with the following commands:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker stop baremaps
-docker start baremaps
-</code></pre></div></div>
-
-<p>From there, the <a href="/examples/openstreetmap/">OpenStreetMap</a> example is a good introduction to Baremaps, it shows how to produce high resolution vector tiles.</p>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/installation.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>
diff --git a/output/notes/postgis.html b/output/notes/postgis.html
index bb8f0c0..fbdad35 100644
--- a/output/notes/postgis.html
+++ b/output/notes/postgis.html
@@ -1,4 +1,4 @@
-<h1 id="postgis">Postgis</h1>
+<h1 id="postgis">PostGIS</h1>
 
 <ul>
   <li>https://osm2pgsql.org/doc/manual.html#tuning-the-postgresql-server</li>
diff --git a/output/notes/postgis.md b/output/notes/postgis.md
index 105a2cc..5a1185a 100644
--- a/output/notes/postgis.md
+++ b/output/notes/postgis.md
@@ -1,3 +1,3 @@
-# Postgis
+# PostGIS
 
 - https://osm2pgsql.org/doc/manual.html#tuning-the-postgresql-server
\ No newline at end of file
diff --git a/output/sitemap.xml b/output/sitemap.xml
index d33ab3c..7672ed9 100644
--- a/output/sitemap.xml
+++ b/output/sitemap.xml
@@ -7,28 +7,55 @@
 <loc>/</loc>
 </url>
 <url>
-<loc>/examples/extrusion/</loc>
+<loc>/examples/ip-to-location/</loc>
 </url>
 <url>
-<loc>/examples/openstreetmap/</loc>
+<loc>/examples/serve-vector-tiles/</loc>
 </url>
 <url>
-<loc>/examples/geoadmin/</loc>
+<loc>/examples/import-contour-into-postgis/</loc>
 </url>
 <url>
-<loc>/examples/contour/</loc>
+<loc>/examples/import-osm-into-postgis/</loc>
 </url>
 <url>
-<loc>/examples/naturalearth/</loc>
+<loc>/examples/import-naturalearth-into-postgis/</loc>
+</url>
+<url>
+<loc>/examples/geocoding/</loc>
 </url>
 <url>
 <loc>/examples/</loc>
 </url>
 <url>
-<loc>/installation/</loc>
+<loc>/developer-manual/how-to-build-with-maven/</loc>
+</url>
+<url>
+<loc>/developer-manual/ip-to-location/</loc>
+</url>
+<url>
+<loc>/developer-manual/geocoder/</loc>
+</url>
+<url>
+<loc>/developer-manual/project-structure/</loc>
+</url>
+<url>
+<loc>/developer-manual/setup-in-intellij/</loc>
+</url>
+<url>
+<loc>/developer-manual/</loc>
+</url>
+<url>
+<loc>/getting-started/installing-postgis/</loc>
+</url>
+<url>
+<loc>/getting-started/installing-the-cli/</loc>
+</url>
+<url>
+<loc>/getting-started/</loc>
 </url>
 <url>
-<loc>/stylesheet/</loc>
+<loc>/developer-manual/stylesheet/</loc>
 </url>
 <url>
 <loc>/examples/serving-vector-tiles.html</loc>
@@ -44,6 +71,6 @@
 </url>
 <url>
 <loc>/assets/demo.html</loc>
-<lastmod>2022-11-17T08:28:16+00:00</lastmod>
+<lastmod>2022-12-08T13:48:01+00:00</lastmod>
 </url>
 </urlset>
diff --git a/output/stylesheet/index.html b/output/stylesheet/index.html
deleted file mode 100644
index ed28bd5..0000000
--- a/output/stylesheet/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>OpenStreetMap Vecto - Apache Baremaps</title>
-    
-    <link rel="stylesheet" href="/assets/css/main.css">
-  </head>
-  <body>
-    <div class="container">
-      <div class="row">
-          <div class="four columns">
-            <header>
-              <h2 class="logo"><a href="/"><i class="far fa-map"></i> Apache Baremaps</a></h2>
-              <p>Create custom vector tiles from OpenStreetMap and other data sources with Postgis and Java.</p>
-              <p>
-                <a class="github-button" href="https://github.com/baremaps/baremaps" data-size="large" data-show-count="true"
-                   aria-label="Star baremaps/baremaps on GitHub">Star</a>
-                <a class="github-button" href="https://github.com/baremaps/baremaps/releases/latest"
-                   data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
-                   aria-label="Download baremaps/baremaps on GitHub">Download</a>
-              </p>
-            </header>
-            <nav>
-              <ul>
-                
-                <li>
-                  <a href="/about/"><i class="fas fa-bullseye"></i> About</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/installation/"><i class="fas fa-download"></i> Installation</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/examples/"><i class="fas fa-vial"></i> Examples</a>
-                  
-                  <ul>
-                    
-                    <li><a href="/examples/openstreetmap/">OpenStreetMap</a></li>
-                    
-                    <li><a href="/examples/naturalearth/">NaturalEarth</a></li>
-                    
-                    <li><a href="/examples/contour/">Contour</a></li>
-                    
-                  </ul>
-                  
-                </li>
-                
-                <li>
-                  <a href="/stylesheet/"><i class="fas fa-paint-roller"></i> Stylesheet</a>
-                  
-                </li>
-                
-                <li>
-                  <a href="/assets/demo.html"><i class="fas fa-map"></i> Demo</a>
-                  
-                </li>
-                
-              </ul>
-            </nav>
-          </div>
-          <article class="eight columns">
-            <h1 id="openstreetmap-vecto">OpenStreetMap Vecto</h1>
-
-<p><a href="https://github.com/baremaps/openstreetmap-vecto">OpenStreetMap Vecto</a> is an ongoing effort to build a general-purpose configuration and stylesheet for Baremaps.
-It is used to generate vector tiles and to produce a Mapbox <a href="https://docs.mapbox.com/mapbox-gl-js/style-spec/">stylesheet</a> inspired by <a href="https://github.com/gravitystorm/openstreetmap-carto">OpenStreetMap Carto</a>.</p>
-
-<p><a href="/assets/demo.html"><img src="/assets/screenshot.jpg" alt="State of the map" /></a></p>
-
-            <p><a class="edit" href="https://github.com/apache/incubator-baremaps-site/edit/main/stylesheet.md"><i class="fas fa-edit"></i> Improve this page</a></p>
-          </article>
-      </div>
-    </div>
-    <script async defer src="https://kit.fontawesome.com/14dcd5fdfb.js" crossorigin="anonymous"></script>
-    <script async defer src="https://buttons.github.io/buttons.js" crossorigin="anonymous"></script>
-  </body>
-</html>