Extension seams, not core forks

Build at the right layer. Keep upgrades possible.

Extend the GeoLibre interface, call the platform API, add a compiled Go service or isolate specialist compute in a sidecar. Each seam has a different performance and lifecycle tradeoff.

GeoLibre pluginsREST + WebSocketGo packagesPython sidecarsMCP toolsDockerDDIL
Four extension layers

Match customization to its operational boundary.

The platform is deliberately not limited to one plugin language or one process model.

Extension seamUse it forContractTradeoff
GeoLibre frontend pluginPanels, map tools, data-source browsers, renderers, workflows and client-side analysisTypeScript/React components, plugin registration, shared map/project state and backend REST callsFastest UI iteration; browser security and memory constraints apply
Public API integrationCustom web apps, mobile clients, BI, automations and third-party systems600+ HTTP routes, OGC/Esri service surfaces, WebSockets and JSON/GeoJSONLoose coupling; consumers must manage versioning, auth and network failure
Compiled Go serviceHigh-throughput core capabilities, protocol handlers, persistent state and edge-resident processingBackend package with explicit handlers and lifecycle registrationHighest performance and simplest deployment; changes ship with the server binary
Sidecar / worker servicePython ML, GDAL-heavy processing, proprietary SDKs, GPU jobs and organization-specific toolsHTTP/job contract, shared or object storage for artifacts, health and capability discoveryIndependent dependencies and scaling; requires process supervision and observability
GeoLibre plugin model

Extend the open frontend without replacing the platform.

GeoLibre uses MapLibre GL JS, deck.gl and an in-browser DuckDB path. More than 30 existing plugins demonstrate the intended integration pattern.

UI

Workflow panels and tools

Add navigation entries, panels, map interactions, editors, charts and specialized business workflows.

DATA

Source plugins

Connect catalogs such as NASA Earthdata, Microsoft Planetary Computer, USGS National Map, FEMA, Overture Maps and organization-specific APIs.

MAP

Layer and overlay adapters

Render raster, vector, MVT, PMTiles, COG, 3D Tiles, I3S, video and deck.gl analytical overlays through shared project state.

SQL

Browser analytical components

Use DuckDB-WASM and Pyodide workers for local processing while keeping large or privileged workloads on the backend.

SYNC

Web and desktop parity

The same frontend detects browser versus Wails desktop mode and calls the corresponding HTTP or native bridge path.

Sidecars as capability packs

Keep specialist runtimes optional and replaceable.

The Python server is a substantial capability pack, but the sidecar pattern is language-agnostic. A Rust, Java, .NET, GPU or proprietary-vendor service can follow the same boundary.

GEOPROCESSING

GDAL + WhiteboxTools

Raster/vector conversion, hydrology, terrain, GeoPDF, NITF, COG authoring, tile generation and hundreds of Whitebox tools.

DATA SCIENCE

Scientific Python

rasterio, GeoPandas, scikit-learn, gstools, pykrige, OR-Tools, pvlib, xarray/virtualizarr and custom notebooks.

AI

Model services

Object detection, wildlife/camera-trap analysis, acoustic classification, natural-language processing and local or OpenAI-compatible model routing.

DOCUMENTS

Publication workers

Generate controlled DOCX, PDF and mapbook artifacts from approved mission baselines, with an HTML fallback when the sidecar is unavailable.

CUSTOM

Organization-specific SDKs

Wrap systems that require their own runtime, license, GPU driver or update cadence instead of embedding them in the core process.

REMOTE TOOLS

MCP-enabled capabilities

Register namespaced remote tools into the GeoAgent registry through MCP/JSON-RPC adapters while retaining tool identity and call boundaries.

Microservice boundary

Separate dependency risk without fragmenting the product.

The server remains the control plane for identity, catalog, data registration and client contracts. Sidecars perform bounded jobs and return portable artifacts or register a new service.

Core serviceAuth, TLS, rate limits, CORSCatalog and data connectionsOGC/Esri endpoint contractsJob request and health checks
Sidecar / workerVersioned request schemaProgress, cancellation and logsCPU/GPU/runtime isolationIdempotent artifact production
Registered outputGeoPackage / GeoParquetCOG / MBTiles / PMTiles3D Tiles / SLPKFeatureServer / MVT / STAC asset
Deployment profiles

One backend from central server to disconnected edge.

The headless server is a Wails-free Go build that boots the same application lifecycle as desktop and serves browser frontends plus APIs.

BIN

Native server binary

Run on bare Linux with a configured data directory, no GTK/WebKit GUI runtime and no mandatory Python process.

CTR

Docker container

Package the server and mount persistent data; place behind nginx or Traefik for routing and TLS termination.

LAN

On-premises service node

Share feature, tile, imagery, catalog and application services across a private network to desktop, browser and mobile clients.

EDGE

Disconnected deployment

Stage GeoPackage, MBTiles, PMTiles, COG, models and runtime assets so core mapping and analysis continue without cloud dependencies.

API

Baseline production controls

Bearer-token API auth, optional TLS with eager certificate validation, per-client token-bucket rate limiting, configurable CORS and /healthz readiness.

Enterprise hardening is deployment-specific.

For multi-tenant or regulated environments, add an external identity-aware proxy, SSO/OIDC, a secrets manager, centralized audit/log aggregation, backup/restore, vulnerability scanning, network policy and workload-specific high availability. These controls should be designed into the implementation plan rather than implied by a product logo.

Extend the platform without turning every customer workflow into a permanent fork.

Design an extension package →