Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 153 additions & 0 deletions docs/comparison.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# GeoLibre vs. other GIS platforms

How GeoLibre compares to the desktop GIS, cloud GIS, and web-mapping tools people
most often ask about: **QGIS**, **ArcGIS Pro**, **ArcGIS Online**, **Felt**, and
**kepler.gl**.

GeoLibre is not trying to replace any of these outright. It occupies a spot none
of them quite fills: a **free and open-source GIS that runs in a browser tab with
nothing installed**, keeps your data on your own machine, and still ships real
analysis, spatial SQL, cartography, and a project file — then packages the *same*
app as a desktop install, an Android app, and a Jupyter widget.

!!! note "How to read this"
Comparisons like this age quickly and are written by an interested party. The
GeoLibre column reflects [what ships today](features.md); the other columns
describe each product's mainstream, out-of-the-box behavior as of
**August 2026**, not what is reachable with every add-on, extension, or
third-party plugin. Where a capability arrives through a separate product
(QField for QGIS in the field, ArcGIS Field Maps for ArcGIS), the table says
so rather than crediting it to the base product. Found something wrong or
out of date? Please
[open an issue](https://github.com/opengeos/GeoLibre/issues) — corrections
are welcome.

## At a glance

| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** |
|---|---|---|---|---|---|---|
| **License** | MIT, open source | GPL-2.0+, open source | Proprietary | Proprietary | Proprietary | MIT, open source |
| **Cost** | Free | Free | Paid subscription | Paid subscription (credit-metered analysis) | Paid subscription | Free |
| **Browser** | Full app, nothing to install | No official browser build | No | Yes (the product *is* the browser app) | Yes (browser-only) | Yes |
| **Desktop** | Windows, macOS, Linux (Tauri) | Windows, macOS, Linux | Windows only | — | — | — |
| **Mobile** | Native Android app; responsive touch layout | Via QField / Mergin Maps (separate apps) | — | Via ArcGIS Field Maps (separate app) | Responsive web | Responsive web |
| **In Jupyter** | Full app as an anywidget, two-way sync | Via `qgis` bindings, not the UI | Notebooks drive `arcpy`, not the UI | ArcGIS API for Python | — | Yes (widget) |
| **Works offline** | Yes — PWA install, offline area download, desktop build | Yes | Yes | Limited (Field Maps offline areas) | No | Client-side, but assets are hosted |
| **Where your data lives** | Your device — processed client-side in the browser session | Your device | Your device / your enterprise geodatabase | Vendor cloud | Vendor cloud | Your browser |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
| **Project file** | `.geolibre.json` (open, documented) | `.qgs` / `.qgz` (open) | `.aprx` (proprietary) | Web map JSON (hosted) | Hosted map (no local file) | Exportable map config JSON |

## Data and formats

| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** |
|---|---|---|---|---|---|---|
| **Format breadth** | Wide — DuckDB-WASM Spatial plus in-house readers | **Widest** — everything GDAL/OGR reads | Very wide, plus native Esri formats | Common upload formats | Common upload formats | CSV, GeoJSON, Arrow/Parquet |
| **Cloud-native vector** | GeoParquet, FlatGeobuf, PMTiles, streamed over HTTP range requests | GeoParquet, FlatGeobuf, PMTiles (recent GDAL) | GeoParquet (recent), no native PMTiles | — | Some cloud sources on higher plans | Arrow/Parquet |
| **Cloud-native raster** | COG, Zarr, Cloud-Optimized NetCDF/HDF, kerchunk, MBTiles | COG, Zarr (plugin-assisted) | COG; Zarr via extensions | Hosted imagery layers | GeoTIFF upload | — |
| **STAC** | Built-in catalog browser + STAC Index discovery | Via plugins | Via add-ins | Living Atlas (not STAC) | — | — |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
| **OGC services** | XYZ, WMS, WFS, WMTS, OGC API Features/Tiles, with GetCapabilities discovery | Full OGC support | Full OGC support | Yes | Limited | XYZ / vector tiles |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
| **Esri services** | ArcGIS FeatureServer, VectorTileServer, I3S, `.gdb` folders (desktop) | Yes | Native | Native | Some ArcGIS layers | — |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
| **Databases** | PostGIS browsing, DuckDB, in-browser PGlite/PostGIS | PostGIS, SpatiaLite, Oracle, SQL Server, SAP HANA | Enterprise geodatabases (SDE) | Hosted only | PostGIS / Snowflake connections (higher plans) | — |
| **3D and point clouds** | LiDAR, 3D Tiles, I3S, Gaussian splats, glTF/GLB, Cesium globe pane | Point clouds, 3D map view, tiled scene layers | **Deepest 3D** — scenes, I3S, mesh, LAS | Scene Viewer | — | Extrusions and hexbins only |
| **Planetary basemaps** | Moon, Mars, Mercury, Venus, Galilean moons, Titan, Pluto, Charon — with a per-project ellipsoid driving measurements | Via plugins | Limited | — | — | — |

## Analysis and processing

| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** |
|---|---|---|---|---|---|---|
| **Geoprocessing tools** | **1,000+** (Whitebox suite + GeoLibre's own), running in the browser on WebAssembly | **1,000+** (native, GDAL, GRASS, SAGA) | **Most mature and complete**, plus paid extensions | A useful subset, credit-metered | A small set of common tools | None (filter and aggregate only) |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
| **Where analysis runs** | Your browser (WASM), no server required; optional Python sidecar on desktop | Your machine | Your machine, or a server/portal | Vendor cloud | Vendor cloud | Your browser |
| **Vector analysis** | Buffer, overlay, dissolve, joins, selection, topology checks — Turf.js, or GeoPandas via Pyodide/sidecar | Comprehensive | Comprehensive | Common tools | Common tools | — |
| **Raster analysis** | Hillshade, slope, contour, zonal/focal stats, raster calculator, reclassify, mosaic — rasterio sidecar with a browser fallback | Comprehensive (GDAL/GRASS/SAGA) | Comprehensive; Spatial Analyst extension | Limited | — | — |
| **Spatial SQL** | DuckDB Spatial, PGlite/PostGIS, and Apache Sedona — **all in the browser** | Virtual layers, DB Manager, PostGIS connections | SQL against enterprise geodatabases | — | SQL on connected sources (higher plans) | — |
| **Model / batch chaining** | Batch runner with model and pipeline chaining | Graphical Model Designer | ModelBuilder | — | — | — |
| **Spatial statistics** | Toolbox including Emerging Hot Spot Analysis | Via plugins and processing providers | Full Spatial Statistics toolbox | Some | — | — |
| **Network analysis** | Isochrones, service areas, OD cost matrices, routing | QGIS Network Analysis, plugins (ORS, pgRouting) | Network Analyst extension | Routing services (credits) | — | — |
| **AI / ML** | AI Segmentation (SamGeo/SAM 3), in-browser ONNX/YOLO object detection | Via plugins | `arcgis.learn` deep-learning toolset | Pretrained models (credits) | — | — |
| **Processing history** | Every run listed, re-runnable, with copyable Python | History panel | Geoprocessing history | — | — | — |

## Cartography, styling, and layout

| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** |
|---|---|---|---|---|---|---|
| **Renderers** | Single, categorized, graduated, rule-based, expression, heatmap, cluster, proportional symbols, diagrams | **Richest** — plus every symbol layer type | Very rich | Smart-mapping styles | Simple, well-designed defaults | Visualization-oriented |
| **Data-defined everything** | Expression Builder wired into filters, labels, styling, field calculation, selection | Yes, pervasive | Attribute-driven symbology (Arcade) | Arcade | — | — |
| **Labeling** | Data-defined engine with placement, offset, rotation, wrap, dedup | Best-in-class placement engine | Maplex label engine | Basic | Basic | Basic |
| **Print layout** | Print Layout composer with legend, scale, title block, atlas / map series, PNG and PDF | Full print composer with atlas | Full layout view with map series | Basic print / export | Export to image and PDF | Image export |
| **Style interchange** | Imports and exports **OGC SLD, QGIS QML, and Mapbox GL JSON** | QML, SLD | `.lyrx`, limited SLD | — | — | — |
| **Project import** | Reads **QGIS `.qgs`/`.qgz` and ArcGIS Pro `.aprx`/`.mapx`** | Reads its own | Reads its own (and `.mxd`) | — | — | — |
| **Story maps** | Built-in story map builder with presenter view and standalone HTML export | Via plugins | — | ArcGIS StoryMaps (separate product) | Shareable maps, not chaptered stories | — |
| **Dashboards** | Dashboard panel of chart and indicator widgets with cross-filtering | Via plugins | — | ArcGIS Dashboards (separate product) | — | Charts and filters in-map |

## Automation, extensibility, and sharing

| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** |
|---|---|---|---|---|---|---|
| **Scripting** | Python Console, `geolibre` Python package, docked Jupyter notebook beside the map | PyQGIS, `qgis_process` headless CLI | `arcpy`, notebooks | ArcGIS API for Python / JavaScript | REST API + Python client | JS library |
| **Notebook integration** | The **whole app** embeds as a Jupyter anywidget with two-way project sync | Bindings, not the UI | Notebooks in Pro drive `arcpy` | Hosted notebooks | — | Widget |
| **Plugin ecosystem** | TypeScript plugin API, built-ins, zip installs, bundled drop-ins | **Largest** — thousands of Python plugins | .NET add-ins, Python toolboxes | Configurable app templates | None (API only) | Fork the library |
| **AI assistant** | Natural-language assistant that turns plain English into auditable, undoable operations; bring your own API key | Via plugins | Copilot features | — | AI-assisted map making | — |
| **Real-time collaboration** | Yes (MVP, self-hosted server) + anchored review comments | No (Mergin Maps for sync) | No | Shared editing of hosted layers | **Best-in-class** multiplayer editing and comments | — |
Comment thread
giswqs marked this conversation as resolved.
Outdated
| **Embedding** | `maponly` and `layout=viewer` URL modes, a versioned `postMessage` API, and the typed `@geolibre/embed` npm client | QGIS Server / QGIS2Web export | — | Embeddable web apps | Embeddable maps | Embeddable |
| **Self-hosting** | Docker image, or serve the static build anywhere | QGIS Server | ArcGIS Enterprise (paid) | — | — | Static build |
| **Standalone export** | Whole project to **one offline HTML file**, no server | Via qgis2web plugin | — | — | — | HTML export |

## Where each one is the right choice

**Choose GeoLibre when** you want a real GIS in a browser tab with nothing to
install, your data has to stay on your machine, you work with cloud-native
formats (COG, GeoParquet, PMTiles, Zarr, STAC), you want the same app on desktop,
Android, and inside a notebook, or you are embedding a map workspace into your
own product and want an open, documented project format and license.

**Choose QGIS when** you need the widest possible format support through
GDAL/OGR, the deepest desktop cartography and label placement, a mature plugin
for a niche task, or heavy local processing over datasets larger than a browser
can hold.

**Choose ArcGIS Pro when** you are already in the Esri ecosystem, need
enterprise geodatabase editing and versioning, the deepest 3D and imagery
workflows, or a specific specialized toolbox with organizational support behind
it.

**Choose ArcGIS Online when** the priority is hosted layers, organizational
sharing and permissions, and the surrounding Esri app family (Dashboards,
StoryMaps, Field Maps, Experience Builder).

**Choose Felt when** collaborative, low-friction map *making* with a team is the
whole job, and polished multiplayer editing matters more than analysis depth or
keeping data off a vendor's servers.

**Choose kepler.gl when** you want fast, beautiful exploratory visualization of
large point and trip datasets and do not need analysis, a project format, or
layer management.

They also compose. GeoLibre reads QGIS and ArcGIS Pro projects and exchanges
symbology as SLD, QML, and Mapbox GL JSON, so it is reasonable to author in
QGIS or Pro and publish or embed with GeoLibre.

## Where GeoLibre is not the strongest option

Stated plainly, so the table above is worth trusting:

- **Very large local datasets.** Browser memory and WASM are real limits.
Client-side vector tiling and streaming push the ceiling up, but a
multi-gigabyte local processing job still belongs on a desktop GIS. The
desktop build's Python sidecar helps; QGIS or ArcGIS Pro helps more.
- **Format breadth.** GDAL/OGR reads more than DuckDB-WASM Spatial does. Some
formats — notably File Geodatabase — only work in the desktop build.
- **Depth of specialized toolboxes.** ArcGIS Pro's Spatial Analyst, Geostatistical
Analyst, and Network Analyst, and QGIS's twenty years of plugins, cover
workflows GeoLibre has no equivalent for.
- **Enterprise data management.** Versioned editing, replication, and enterprise
geodatabase administration are outside GeoLibre's scope.
- **Maturity.** GeoLibre is stable and in active development, but it is far
younger than QGIS or ArcGIS. Some capabilities listed as shipping are recent —
see [Recently added](index.md#recently-added).

## See also

- [Features](features.md) — the complete, current inventory of what GeoLibre does
- [Roadmap](roadmap.md) — release history and what is planned next
- [Getting Started](getting-started.md) — install the app or open GeoLibre Web
- [Importing a QGIS project](user-guide/projects.md#importing-a-qgis-project) and
[an ArcGIS Pro project](user-guide/projects.md#importing-an-arcgis-pro-project)
3 changes: 2 additions & 1 deletion docs/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ A feature-by-feature list of what GeoLibre can do today — the latest release p
what has landed on `main` since (see [Recently added](index.md#recently-added)).
For task-oriented walkthroughs, see the [User Guide](user-guide/interface.md) and
the [Tutorials](tutorials/index.md); for what is planned next, see the
[Roadmap](roadmap.md).
[Roadmap](roadmap.md). For how this stacks up against QGIS, ArcGIS, Felt, and
kepler.gl, see the [Comparison](comparison.md).

## Platforms and interface

Expand Down
5 changes: 3 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,9 @@ Other parameters control the toolbar, panels, and theme. See [Embedding & Sharin

GeoLibre is **stable and in active development**, with regular releases on
[GitHub](https://github.com/opengeos/GeoLibre/releases). For the complete,
current inventory see [Features](features.md); for the full release history and
what comes next, see the [Roadmap](roadmap.md).
current inventory see [Features](features.md); for how GeoLibre compares to
QGIS, ArcGIS, Felt, and kepler.gl, see the [Comparison](comparison.md); for the
full release history and what comes next, see the [Roadmap](roadmap.md).

### What ships today

Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ nav:
- Home: index.md
- Getting Started: getting-started.md
- Features: features.md
- Comparison: comparison.md
- Demos: demos.md
- Downloads: downloads.md
- Launch GeoLibre Web: /demo/
Expand Down
Loading