blog.dopana

Back

GeoLibre is a free and open-source, cloud-native GIS platform — it runs on the web, on desktop (Windows/macOS/Linux), on Android, and right inside a Jupyter Notebook.

No server setup. No account required. Open a browser and start mapping.

Overview#

GeoLibre is built by opengeos (Q. Wu) with a modern tech stack:

LayerTechnology
FrontendReact + TypeScript
Map engineMapLibre GL JS
3D renderingdeck.gl
Spatial SQLDuckDB-WASM Spatial
Desktop & MobileTauri v2
LicenseMIT

The key differentiator: all GIS processing runs in the browser — no backend, no separate database needed.

Where It Runs#

🌐 Web Browser#

Open https://geolibre.app — full featured, nothing to install.

💻 Desktop App#

Download the installer for Windows (.msi), macOS (.dmg), or Linux (.deb/.AppImage). The desktop app uses Tauri v2 — the bundle is just a few MB, 20x lighter than Electron.

📱 Android#

Native Android app on Google Play — full touch support, responsive across all screen sizes.

📓 Jupyter Notebook#

Python package that integrates GeoLibre directly into your notebook — for analysis and visualization workflows.

Tech Stack#

MapLibre GL JS#

The default map engine — supports 2D, 3D, vector/raster tile styling, basemaps from OpenFreeMap, Protomaps, EOX Sentinel-2 cloudless, and even planetary basemaps for the Moon, Mars, Mercury, Venus, Titan, Pluto…

DuckDB-WASM Spatial#

A spatial SQL engine running in the browser. GeoLibre uses DuckDB-WASM to:

  • Load local vector files (GeoJSON, GeoParquet, GeoPackage, Shapefile, KML, GPX…)
  • Run spatial SQL queries directly on your data
  • Client-side vector tiling for large layers
  • Export results to multiple formats
-- Run spatial SQL right in the browser
SELECT
  name,
  ST_Area(geom) AS area,
  ST_Centroid(geom) AS center
FROM loaded_layer
WHERE ST_Within(geom, ST_GeomFromText('POLYGON((...))'))
ORDER BY area DESC
LIMIT 100;
sql

deck.gl#

The 3D rendering engine for:

  • 3D Tiles (Cesium 3D Tiles, ArcGIS I3S)
  • Point clouds, heatmaps, arc layers
  • 3D building extrusion
  • Gaussian splats

Tauri v2#

The framework for desktop and mobile (replacing Electron):

  • Bundle size: a few MB (vs Electron’s ~200MB)
  • Rust backend for file system, native dialogs, system tray
  • Mobile support: iOS and Android

Key Features#

700+ Geoprocessing Tools#

All running in the browser — no server connection needed:

  • Buffer, clip, intersect, union, dissolve
  • Slope, aspect, hillshade, contour
  • Raster calculator, reclassify, zonal statistics
  • Network analysis, Voronoi, Delaunay
  • Spatial join, attribute join

SQL Workspace#

A built-in SQL editor powered by DuckDB-WASM Spatial:

  • Autocomplete for tables, columns, SQL keywords
  • Query history
  • Add results to the map or export
  • Combine DuckDB + PGlite (PostGIS in-browser) + Apache Sedona

3D & Planetary#

// Load 3D Tiles
const tileset = await add3DTiles({
  url: 'https://example.com/tileset.json',
  height: 100,
  color: [255, 0, 0, 200],
});
typescript
  • 3D city models (NYC buildings colored by construction era)
  • Planetary basemaps: Moon, Mars, Mercury, Venus, Pluto…
  • Per-project ellipsoid — distance/area/scale measurements match the celestial body

Style & Symbology#

A powerful style engine compatible with QGIS and Mapbox:

FeatureDescription
Symbology typesSingle, categorized, graduated, rule-based, expression
DiagramsPie, donut, bar charts drawn on features
LabelsData-defined label engine with full placement controls
Import/ExportOGC SLD, QGIS QML, Mapbox GL JSON
Color rampsInline preview gradient swatches
HeatmapPoint heatmap + clustering renderers
Raster stylingPseudocolor, RGB band combination, colormaps

Legend Panel#

Auto-generated legend from visible layers:

  • Per-class rows for graduated, categorized, rule-based symbology
  • Gradient bars for heatmaps and raster colormaps
  • Proportional-symbol size ramps
  • Edit mode: rename, hide, reorder, collapse
  • Export JSON — saved with the project, shared with Print Layout

Data Integrations#

Connect directly to a wide range of data sources:

  • Cloud: Planetary Computer, Earth Engine, Overture Maps
  • Web services: WMS, WFS, WMTS, ArcGIS FeatureServer, OGC API
  • Local: GeoJSON, Shapefile, GeoPackage, KML, GPX, MBTiles, PMTiles
  • Raster: COG, GeoTIFF, NetCDF/HDF (kerchunk), Zarr
  • 3D: 3D Tiles, I3S, glTF/GLB, Gaussian splats
  • CAD: DXF/DWG, Esri File Geodatabase (.gdb)

Multi-Map & Timelapse#

  • Multi-map grid: compare basemaps, layers, or time steps side by side
  • CesiumJS 3D globe in one pane (camera-synced with 2D maps)
  • Timelapse: animate annual cloudless basemaps (EOX Sentinel-2, NASA GIBS)

Wikipedia Knowledge Cards#

Click any place on the map — pull up its Wikipedia summary instantly.

Comparison with Traditional GIS#

QGISGeoLibreGoogle Earth Engine
Installation~1GBWeb / ~5MB appNone
ServerRequiredNot requiredRequired (Google)
Cloud-native
In-browser❌ (code editor)
JupyterPluginBuilt-inAPI
Offline✅ (desktop)
3DPluginBuilt-in (deck.gl)
Spatial SQL✅ (DuckDB + PGlite)
PriceFreeFree (MIT)Free tier
Mobile✅ (Android)

Getting Started#

Web (nothing to install)#

Open https://geolibre.app → Start using it immediately
text

Desktop#

Download the installer from geolibre.app:

# Or run from source
git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
npm install
npm run desktop:dev
bash

Android#

Google Play → “GeoLibre” → Install

Jupyter#

pip install geolibre-jupyter
bash

Conclusion#

GeoLibre represents a new step forward for open-source GIS:

  • Cloud-native: runs in the browser, no server required
  • Cross-platform: web, desktop, Android, Jupyter
  • 700+ geoprocessing tools — all local, no data ever leaves your machine
  • Modern tech stack: MapLibre + DuckDB-WASM + deck.gl + Tauri
  • MIT license: free to use, modify, and distribute

If you work with geospatial data — from simple analysis to 3D city modeling, from planetary mapping to real-time weather — GeoLibre is worth a try.

References#