|
| 1 | +# GeoLibre vs. other GIS platforms |
| 2 | + |
| 3 | +How GeoLibre compares to the desktop GIS, cloud GIS, and web-mapping tools people |
| 4 | +most often ask about: **QGIS**, **ArcGIS Pro**, **ArcGIS Online**, **Felt**, and |
| 5 | +**kepler.gl**. |
| 6 | + |
| 7 | +GeoLibre is not trying to replace any of these outright. It occupies a spot none |
| 8 | +of them quite fills: a **free and open-source GIS that runs in a browser tab with |
| 9 | +nothing installed**, keeps your data on your own machine, and still ships real |
| 10 | +analysis, spatial SQL, cartography, and a project file — then packages the *same* |
| 11 | +app as a desktop install, an Android app, and a Jupyter widget. |
| 12 | + |
| 13 | +!!! note "How to read this" |
| 14 | + Comparisons like this age quickly and are written by an interested party. The |
| 15 | + GeoLibre column reflects [what ships today](features.md); the other columns |
| 16 | + describe each product's mainstream, out-of-the-box behavior as of |
| 17 | + **August 2026**, not what is reachable with every add-on, extension, or |
| 18 | + third-party plugin. Where a capability arrives through a separate product |
| 19 | + (QField for QGIS in the field, ArcGIS Field Maps for ArcGIS), the table says |
| 20 | + so rather than crediting it to the base product. Found something wrong or |
| 21 | + out of date? Please |
| 22 | + [open an issue](https://github.com/opengeos/GeoLibre/issues) — corrections |
| 23 | + are welcome. |
| 24 | + |
| 25 | +## At a glance |
| 26 | + |
| 27 | +| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** | |
| 28 | +|---|---|---|---|---|---|---| |
| 29 | +| **License** | MIT, open source | GPL-2.0+, open source | Proprietary | Proprietary | Proprietary | MIT, open source | |
| 30 | +| **Cost** | Free | Free | Paid subscription | Paid subscription (credit-metered analysis) | Paid subscription | Free | |
| 31 | +| **Browser** | Full app, nothing to install | No official browser build | No | Yes (the product *is* the browser app) | Yes (the authoring product) | Yes | |
| 32 | +| **Desktop** | Windows, macOS, Linux (Tauri) | Windows, macOS, Linux | Windows only | — | — | — | |
| 33 | +| **Mobile** | Native Android app; responsive touch layout | Via QField / Mergin Maps (separate apps) | — | Via ArcGIS Field Maps (separate app) | Felt Field App for iOS and Android (separate app) | Responsive web | |
| 34 | +| **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) | |
| 35 | +| **Works offline** | Yes — PWA install, offline area download, desktop build | Yes | Yes | Limited (Field Maps offline areas) | Field App offline areas, syncing on reconnect (higher plans) | Client-side, but assets are hosted | |
| 36 | +| **Where your data lives** | Your device — processed client-side in the browser session | Your device | Your device / your enterprise geodatabase | Vendor cloud | Vendor cloud, or a single-tenant instance in your own AWS account (Enterprise) | Your browser | |
| 37 | +| **Project file** | `.geolibre.json` (open, documented) | `.qgs` / `.qgz` (open) | `.aprx` (proprietary) | Web map JSON (hosted) | Hosted map (no local file) | Exportable map config JSON | |
| 38 | + |
| 39 | +## Data and formats |
| 40 | + |
| 41 | +| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** | |
| 42 | +|---|---|---|---|---|---|---| |
| 43 | +| **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 | |
| 44 | +| **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 | |
| 45 | +| **Cloud-native raster** | COG, Zarr, Cloud-Optimized NetCDF/HDF, kerchunk, MBTiles | COG, Zarr (GDAL's built-in driver) | COG; Zarr as a native multidimensional raster type | Hosted imagery layers | GeoTIFF upload | — | |
| 46 | +| **STAC** | Built-in catalog browser + STAC Index discovery | Built-in STAC connections (Browser panel and Data Source Manager) | Built-in STAC connections and the Explore STAC pane | Living Atlas (not STAC) | — | — | |
| 47 | +| **OGC services** | XYZ; WMS/WFS/WMTS discovered via GetCapabilities; OGC API Features/Tiles from a landing page, collection, or items URL | Full OGC support | Full OGC support | Yes | Limited | XYZ / vector tiles | |
| 48 | +| **Esri services and geodatabases** | ArcGIS FeatureServer, VectorTileServer, I3S, plus local `.gdb` File Geodatabase folders (desktop) | Yes | Native | Hosted feature, tile, imagery, and scene layers | Some ArcGIS layers | — | |
| 49 | +| **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) | — | |
| 50 | +| **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 | |
| 51 | +| **Planetary basemaps** | Moon, Mars, Mercury, Venus, Galilean moons, Titan, Pluto, Charon — with a per-project ellipsoid driving measurements | Via plugins | Limited | — | — | — | |
| 52 | + |
| 53 | +## Analysis and processing |
| 54 | + |
| 55 | +| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** | |
| 56 | +|---|---|---|---|---|---|---| |
| 57 | +| **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 | No tool catalog — analysis goes through SQL and the AI assistant | |
| 58 | +| **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 | |
| 59 | +| **Vector analysis** | Buffer, overlay, dissolve, joins, selection, topology checks — Turf.js, or GeoPandas via Pyodide/sidecar | Comprehensive | Comprehensive | Common tools | Common tools | Spatial joins via SQL or the AI assistant | |
| 60 | +| **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 | — | — | |
| 61 | +| **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) | DuckDB SQL Data Explorer over loaded data and remote URLs | |
| 62 | +| **Model / batch chaining** | Batch runner with model and pipeline chaining | Graphical Model Designer | ModelBuilder | — | — | — | |
| 63 | +| **Spatial statistics** | Toolbox including Emerging Hot Spot Analysis | Via plugins and processing providers | Full Spatial Statistics toolbox | Some | — | — | |
| 64 | +| **Network analysis** | Isochrones, service areas, OD cost matrices, routing | QGIS Network Analysis, plugins (ORS, pgRouting) | Network Analyst extension | Routing services (credits) | — | — | |
| 65 | +| **AI / ML** | AI Segmentation (SamGeo/SAM 3), in-browser ONNX/YOLO object detection | Via plugins | `arcgis.learn` deep-learning toolset | Pretrained models (credits) | — | — | |
| 66 | +| **Processing history** | Every run listed, re-runnable, with copyable Python | History panel | Geoprocessing history | — | — | — | |
| 67 | + |
| 68 | +## Cartography, styling, and layout |
| 69 | + |
| 70 | +| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** | |
| 71 | +|---|---|---|---|---|---|---| |
| 72 | +| **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 | |
| 73 | +| **Data-defined everything** | Expression Builder wired into filters, labels, styling, field calculation, selection | Yes, pervasive | Attribute-driven symbology (Arcade) | Arcade | — | — | |
| 74 | +| **Labeling** | Data-defined engine with placement, offset, rotation, wrap, dedup | Best-in-class placement engine | Maplex label engine | Basic | Basic | Basic | |
| 75 | +| **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 | |
| 76 | +| **Style interchange** | Imports and exports **OGC SLD, QGIS QML, and Mapbox GL JSON** | QML, SLD | `.lyrx`, limited SLD | — | — | — | |
| 77 | +| **Project import** | Reads **QGIS `.qgs`/`.qgz` and ArcGIS Pro `.aprx`/`.mapx`** | Reads its own | Reads its own (and `.mxd`) | — | — | — | |
| 78 | +| **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 | — | |
| 79 | +| **Dashboards** | Dashboard panel of chart and indicator widgets with cross-filtering | Via plugins | — | ArcGIS Dashboards (separate product) | Dashboard components — statistics, bar, histogram, time series | Charts and filters in-map | |
| 80 | + |
| 81 | +## Automation, extensibility, and sharing |
| 82 | + |
| 83 | +| | **GeoLibre** | **QGIS** | **ArcGIS Pro** | **ArcGIS Online** | **Felt** | **kepler.gl** | |
| 84 | +|---|---|---|---|---|---|---| |
| 85 | +| **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 | |
| 86 | +| **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 | |
| 87 | +| **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 | |
| 88 | +| **AI assistant** | Natural-language assistant that turns plain English into auditable, undoable operations; bring your own API key | Via plugins | Copilot features | Arcade assistant (beta) and the AI assistants family | AI-assisted map making | Yes — OpenAI, Gemini, DeepSeek, or local Ollama; bring your own key | |
| 89 | +| **Real-time collaboration** | Yes (MVP) — hosted relay, optionally self-hosted — plus anchored review comments | No (Mergin Maps for sync) | No | Shared editing of hosted layers | **Best-in-class** multiplayer editing and comments | — | |
| 90 | +| **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 | |
| 91 | +| **Self-hosting** | Docker image, or serve the static build anywhere | QGIS Server | ArcGIS Enterprise (paid) | — | Single-tenant AWS VPC, Felt-maintained (Enterprise) | Static build | |
| 92 | +| **Standalone export** | Whole project to **one offline HTML file**, no server | Via qgis2web plugin | — | — | — | HTML export | |
| 93 | + |
| 94 | +## Where each one is the right choice |
| 95 | + |
| 96 | +**Choose GeoLibre when** you want a real GIS in a browser tab with nothing to |
| 97 | +install, your data has to stay on your machine, you work with cloud-native |
| 98 | +formats (COG, GeoParquet, PMTiles, Zarr, STAC), you want the same app on desktop, |
| 99 | +Android, and inside a notebook, or you are embedding a map workspace into your |
| 100 | +own product and want an open, documented project format and license. |
| 101 | + |
| 102 | +**Choose QGIS when** you need the widest possible format support through |
| 103 | +GDAL/OGR, the deepest desktop cartography and label placement, a mature plugin |
| 104 | +for a niche task, or heavy local processing over datasets larger than a browser |
| 105 | +can hold. |
| 106 | + |
| 107 | +**Choose ArcGIS Pro when** you are already in the Esri ecosystem, need |
| 108 | +enterprise geodatabase editing and versioning, the deepest 3D and imagery |
| 109 | +workflows, or a specific specialized toolbox with organizational support behind |
| 110 | +it. |
| 111 | + |
| 112 | +**Choose ArcGIS Online when** the priority is hosted layers, organizational |
| 113 | +sharing and permissions, and the surrounding Esri app family (Dashboards, |
| 114 | +StoryMaps, Field Maps, Experience Builder). |
| 115 | + |
| 116 | +**Choose Felt when** collaborative, low-friction map *making* with a team is the |
| 117 | +whole job, and polished multiplayer editing and field data collection matter more |
| 118 | +than analysis depth. Enterprise plans can run a single-tenant instance in your own |
| 119 | +AWS account if data residency is the blocker. |
| 120 | + |
| 121 | +**Choose kepler.gl when** you want fast, beautiful exploratory visualization of |
| 122 | +large point and trip datasets, and DuckDB SQL plus its AI assistant cover the |
| 123 | +analysis you need — rather than a geoprocessing toolbox, cartographic output, or |
| 124 | +a portable project file. |
| 125 | + |
| 126 | +They also compose. GeoLibre reads QGIS and ArcGIS Pro projects and exchanges |
| 127 | +symbology as SLD, QML, and Mapbox GL JSON, so it is reasonable to author in |
| 128 | +QGIS or Pro and publish or embed with GeoLibre. |
| 129 | + |
| 130 | +## Where GeoLibre is not the strongest option |
| 131 | + |
| 132 | +Stated plainly, so the table above is worth trusting: |
| 133 | + |
| 134 | +- **Very large local datasets.** Browser memory and WASM are real limits. |
| 135 | + Client-side vector tiling and streaming push the ceiling up, but a |
| 136 | + multi-gigabyte local processing job still belongs on a desktop GIS. The |
| 137 | + desktop build's Python sidecar helps; QGIS or ArcGIS Pro helps more. |
| 138 | +- **Format breadth.** GDAL/OGR reads more than DuckDB-WASM Spatial does. Some |
| 139 | + formats — notably File Geodatabase — only work in the desktop build. |
| 140 | +- **Depth of specialized toolboxes.** ArcGIS Pro's Spatial Analyst, Geostatistical |
| 141 | + Analyst, and Network Analyst, and QGIS's twenty years of plugins, cover |
| 142 | + workflows GeoLibre has no equivalent for. |
| 143 | +- **Enterprise data management.** Versioned editing, replication, and enterprise |
| 144 | + geodatabase administration are outside GeoLibre's scope. |
| 145 | +- **Maturity.** GeoLibre is stable and in active development, but it is far |
| 146 | + younger than QGIS or ArcGIS. Some capabilities listed as shipping are recent — |
| 147 | + see [Recently added](index.md#recently-added). |
| 148 | + |
| 149 | +## See also |
| 150 | + |
| 151 | +- [Features](features.md) — the complete, current inventory of what GeoLibre does |
| 152 | +- [Roadmap](roadmap.md) — release history and what is planned next |
| 153 | +- [Getting Started](getting-started.md) — install the app or open GeoLibre Web |
| 154 | +- [Importing a QGIS project](user-guide/projects.md#importing-a-qgis-project) and |
| 155 | + [an ArcGIS Pro project](user-guide/projects.md#importing-an-arcgis-pro-project) |
0 commit comments