Open-source project
opengeos/GeoLibre avatar
opengeos/GeoLibre

GeoLibre: A Browser-Native GIS That Puts 1,000+ Processing Tools on WebAssembly

A lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs in the web browser, on the desktop, on mobile, and inside Jupyter notebooks.

7,380 stars778 forksTypeScriptMIT

At a glance

What is it?
GeoLibre is a TypeScript-based GIS that runs in the browser, desktop, mobile, and Jupyter, with a Whitebox Toolbox compiled to WebAssembly. The core trade-off is local processing versus the limits of browser memory and the absence of a server-side engine.
Who is it for?
Adopt GeoLibre if you need a free, cross-platform GIS that keeps data local and runs geoprocessing without a server, especially for browser-based demos or Jupyter workflows. Do not adopt it if your projects exceed browser memory limits or require server-side batch processing, because the WebAssembly runtime and local-first model are not designed for heavy production loads.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What GeoLibre Solves and Who It Is For

The core promise is that no data ever leaves your machine during processing. That is a meaningful distinction from cloud GIS platforms that require uploading files. For someone working with confidential or proprietary geospatial data, this local-first approach is a practical advantage. The project is built with Tauri v2, React, TypeScript, MapLibre GL JS, DuckDB-WASM Spatial, and deck.gl, which explains how it achieves cross-platform reach: Tauri wraps a web frontend in a native shell for desktop and mobile, while the same codebase runs in any modern browser. The inclusion of DuckDB-WASM Spatial suggests that vector data can be queried using SQL in the browser, which is a notable architectural choice. GeoLibre is not a niche experiment; it has a public web app, app store listings for iOS and Android, and a Chrome extension for opening datasets from web pages. That breadth is rare for an open-source GIS project.

The WebAssembly Processing Architecture

The most distinctive technical claim is that the Whitebox Toolbox, a collection of over 1,000 geoprocessing tools, runs entirely in the browser through a WebAssembly runtime. The README states that there is no Python sidecar to install and no server to call; the tools, your data, and the results all stay on your machine. This is a radical departure from traditional GIS processing, which relies on a desktop executable or a remote service. The WebAssembly runtime handles native raster and vector I/O, meaning files are read and written directly in the browser. This architecture is only possible because modern browsers can run WebAssembly at near-native speed, but it also imposes constraints: memory is limited to what the browser tab can allocate, and very large rasters or vector layers may not fit. The README does not specify maximum file sizes or performance benchmarks, so those remain unknown. The design choice to use Whitebox Tools, which is a well-established open-source library, gives credibility to the processing capabilities. The integration with DuckDB-WASM Spatial suggests that vector operations can leverage SQL for filtering and aggregation, which is a different approach from the raster-focused Whitebox tools. The combination of these two engines under one interface is what makes GeoLibre more than a map viewer.

Cross-Platform Delivery: Tauri, React, and the Same Codebase

GeoLibre is built with Tauri v2, React, TypeScript, MapLibre GL JS, DuckDB-WASM Spatial, and deck.gl. The README states that the same workspace runs as a native desktop app, native Android and iOS apps, in any modern web browser, and adapts responsively to mobile and small screens. Tauri is a framework that uses the system webview for rendering, which keeps the binary small compared to Electron. This is a deliberate choice for a lightweight GIS. The desktop app is available for Windows, macOS, and Linux, with a sandboxed macOS build on the App Store and a native iOS app. The Android app is on Google Play. The fact that the same codebase targets all these platforms is a maintenance advantage, but it also means that performance on mobile may be limited by the WebAssembly processing, which is heavy for a phone. The README does not discuss performance differences across platforms, so it is unclear how well the 1,000+ tools run on a mobile device. The Chrome extension, which opens datasets from any webpage, is an interesting addition that extends the reach beyond the main app. This cross-platform story is compelling for teams that want a single GIS codebase to deploy everywhere, but it comes with the usual trade-off of a web-based UI feeling less native on desktop.

Getting Started: Web, Desktop, and Python Installation

The easiest way to try GeoLibre is to launch the web app at web.geolibre.app, with nothing to install. For desktop, the README points to geolibre.app/downloads/ for Windows, macOS, and Linux installers. There is also a Mac App Store build, an iOS app, and an Android app on Google Play. For developers, there is a Python package on PyPI and conda-forge, which allows embedding and controlling the full app in Jupyter notebooks. The R package is available for building interactive maps in RStudio, Quarto, R Markdown, and Shiny. The getting-started page at geolibre.app/getting-started/ covers installation, running from source, and configuration. The README does not provide explicit commands for running from source, but it mentions that the project is on GitHub, so a standard git clone and npm install would be the likely path. The Python package is notable because it allows using GeoLibre as a mapping library in Python workflows, which is a different use case from the standalone app. The R package similarly targets R users who want interactive maps without a separate viewer. The availability of these packages indicates that GeoLibre is designed to be embeddable, not just a standalone tool. For a quick start, the web app is the most direct route, and the demos linked in the README show live projects that can be opened in the browser.

The Planetary and 3D Capabilities: Beyond Earth

GeoLibre is not limited to Earth. The README describes planetary basemaps from OpenPlanetaryMap and USGS Astrogeology that cover the Moon, Mars, Mercury, Venus, the Galilean moons, Titan, Pluto, and Charon. Each project has a per-project ellipsoid, so distance, area, and scale measurements match the body being mapped. This is a specialized feature that sets GeoLibre apart from mainstream GIS tools, which rarely support non-Earth bodies. The 3D Tiles demo and the NYC buildings and subways demo show extruded building footprints colored by construction era, with a Time Slider that animates construction from 1850 to 2025. These demos indicate that GeoLibre handles 3D visualization and temporal animation, likely through deck.gl and MapLibre. The planetary support is not just a gimmick; it involves correct ellipsoid math for measurements, which is scientifically important for planetary science. This feature could appeal to researchers and educators in astronomy or planetary geology. However, the README does not detail how the ellipsoid is configured or whether users can add custom planetary bodies. The deep-space starfield behind each globe comes from the Atmosphere Effects plugin, which is a nice touch. This planetary capability is a differentiator that most competitors lack, but it may be irrelevant for users who only work with Earth data.

Limitations and Failure Modes

The most obvious limitation is the reliance on browser memory for WebAssembly processing. The README boasts of 1,000+ tools, but it does not specify the maximum dataset size that can be processed. Large raster files or high-resolution LiDAR point clouds could easily exceed the memory available to a browser tab, causing crashes or slow performance. The README also does not mention any server-side processing option, so for heavy batch jobs, GeoLibre is the wrong tool. Another limitation is that the Whitebox Toolbox, while extensive, may not cover every GIS operation. Users who need specific tools from QGIS or ArcGIS may find gaps. The README mentions that the tools run entirely in the browser, but it does not detail the exact set of tools or their fidelity compared to the native Whitebox Tools. There is no mention of support for enterprise databases like PostGIS, which is a common requirement in professional GIS workflows. The lack of a server component means that GeoLibre cannot easily integrate with existing spatial databases or backend services. The README does not discuss the ability to save projects to a server or collaborate in real-time, so it is likely a single-user tool. The Chrome extension is a nice convenience, but it only opens datasets from webpages, not a full integration with web mapping services. Finally, the project is under active development, with recent releases in August 2026, but the README does not provide a changelog or migration guide, so upgrading may require attention to breaking changes.

Alternatives and the Real Difference in Approach

The most direct alternative to GeoLibre is QGIS, which is a full-featured desktop GIS with a mature plugin ecosystem. The key difference is that QGIS runs natively on the desktop, using system resources without browser memory limits, and it supports a wide range of data sources, including PostGIS and WMS. QGIS has a Python console and processing framework, but it requires installation and is not cloud-native. Another alternative is MapLibre GL JS combined with Turf.js for vector analysis in the browser. This approach gives developers a lightweight mapping library but does not include a full geoprocessing toolbox; Turf.js has a limited set of operations. GeoLibre's advantage is that it bundles a comprehensive toolbox with a user-friendly interface, whereas a custom MapLibre setup requires significant development effort. A third alternative is a cloud GIS like Carto or Felt, which offer server-side processing and collaboration but require uploading data, which GeoLibre explicitly avoids. The trade-off is clear: GeoLibre offers local processing and privacy at the cost of scalability and collaboration. For users who need server-side processing or multi-user workflows, a cloud GIS is more appropriate. The README mentions a video about GeoLibre + GeoLens for self-hosting geospatial data, which suggests that GeoLibre can be paired with a self-hosted data stack, but the details are not in the material. That combination might address the database integration gap, but it requires additional setup.

Maintenance, Licensing, and Upgrade Considerations

GeoLibre is licensed under MIT, which is permissive and allows commercial use, modification, and redistribution with minimal restrictions. The project is actively maintained, with the last push on August 27, 2026, and recent releases v2.8.0, v2.7.0, and v2.6.0 within a two-week period. This indicates a fast release cadence, which is good for bug fixes but may introduce breaking changes. The README does not include a changelog, so users must check the release notes on GitHub to understand what changed. The project is not archived, so it is under active development. The Python package is available on PyPI and conda-forge, and there is a conda-forge feedstock, which suggests a community-maintained packaging pipeline. The R package is also available, indicating a multi-language ecosystem. The use of Tauri v2 means that the desktop app benefits from Tauri's security model, which uses the system webview and a Rust backend, but the README does not discuss security details. For maintenance, the main cost is keeping up with the rapid release cycle and ensuring that any custom integrations with the Python or R packages are updated. The documentation is hosted on geolibre.app, which includes a user guide and demos, but the README does not specify the documentation license. The DOI link suggests that the project is citable, which is useful for academic use. Overall, the MIT license and active development make it a low-risk adoption for most teams, but the lack of a detailed changelog is a minor concern for production users.

Editorial conclusion

Adopt GeoLibre if you need a free, cross-platform GIS that keeps data local and runs geoprocessing without a server, especially for browser-based demos or Jupyter workflows. Do not adopt it if your projects exceed browser memory limits or require server-side batch processing, because the WebAssembly runtime and local-first model are not designed for heavy production loads. Before committing, verify that your target formats and tools are supported by the Whitebox Toolbox, and test a representative dataset in the browser to confirm performance. The project is under active development with recent releases, so check the changelog for API changes if you plan to embed it via the Python or R packages.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes