Where to Find GeoLibre Developer Documentation: A Complete Guide for Contributors and Extenders

GeoLibre developer documentation lives in the docs/ folder of the opengeos/GeoLibre repository, with the README.md serving as the primary entry point linking to all guides.

GeoLibre is a full-stack geospatial platform built as an npm workspaces monorepo. It ships a React UI, Tauri-based desktop client, mobile builds, and a Python/Jupyter embed. All developer-facing documentation is version-controlled alongside the source code, ensuring what you read always matches what you build.

Quick Navigation to GeoLibre Developer Docs

The repository organizes documentation into focused guides covering every aspect of development. Here are the essential files with direct GitHub links:

User guides live under docs/user-guide/ with tutorials on adding data, styling layers, processing tools, AI assistant integration, and embedding.

Key Source Files for GeoLibre Developers

Understanding the codebase requires familiarity with these core files:

File Purpose
README.md Entry point with badges, quick install, and documentation links
packages/core/src/store.ts Global Zustand store that drives the entire UI
packages/map/src/MapController.ts Syncs store state to MapLibre GL JS sources and layers
apps/geolibre-desktop/src/hooks/usePlugins.ts Plugin registration entry point
backend/geolibre_server/README.md Optional FastAPI sidecar for vector/raster conversion and AI proxy
docker/nginx.conf Nginx config for official Docker images
scripts/gen-whitebox-menu-catalog.mjs Generates Processing menu catalog after geolibre-wasm updates
packages/plugins/src/plugins/deckgl-viz/store-layer.ts Example Deck.gl visualization plugin

Running GeoLibre from Source

The fastest way to start developing is cloning the repository and running the Vite dev server. These steps are documented in docs/getting-started.md:


# Clone and install

git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
npm install   # or `bun install`

# Start the web UI

npm run dev    # → http://localhost:5173

Working with the Core Store

The Zustand-based store in packages/core/src/store.ts manages all application state. Here's how to programmatically add a vector layer:

import { useStore } from '@geolibre/core';
import { addGeoJsonLayer } from '@geolibre/core';

const geojson = {
  type: 'FeatureCollection',
  features: [{
    type: 'Feature',
    geometry: { type: 'Point', coordinates: [0, 0] },
    properties: {}
  }]
};

const store = useStore();
store.dispatch(addGeoJsonLayer({ name: 'My Point', data: geojson }));

The store implementation and layer sync flow are detailed in docs/architecture.md#state-flow.

Embedding GeoLibre in Python and Jupyter

The geolibre Python wheel enables embedded UIs in notebooks. Install and launch with:


# Install once

!pip install geolibre

# Launch embedded map

from geolibre import GeoLibre
map = GeoLibre()
map.add_vector('https://raw.githubusercontent.com/opengeos/GeoLibre/main/tests/geojson/sample.geojson')
map

Full API reference is in [docs/python.md](https://github.com/opengeos/GeoLibre/blob/main/docs/python.md).

Creating a Custom GeoLibre Plugin

Plugins extend functionality through a standardized registration pattern. Create a plugin in packages/plugins/src/plugins/:

// packages/plugins/src/plugins/example-plugin.ts
import { Plugin } from '@geolibre/plugins';

export const examplePlugin: Plugin = {
  id: 'example',
  name: 'Example Plugin',
  register: ({ store }) => {
    store.subscribe(state => console.log('store updated', state));
  }
};

Register the plugin in apps/geolibre-desktop/src/hooks/usePlugins.ts and rebuild. The complete plugin lifecycle is documented in [docs/plugin-api.md](https://github.com/opengeos/GeoLibre/blob/main/docs/plugin-api.md).

Self-Hosting with Docker

For production deployments, GeoLibre provides an official Docker image with configurable Nginx settings in docker/nginx.conf. The optional FastAPI sidecar handles vector/raster conversion and AI proxying—configuration details are in backend/geolibre_server/README.md and docs/self-hosting.md.

Summary

  • Primary entry point: README.md at the repository root
  • All docs location: docs/ folder with 10+ specialized guides
  • Core architecture: Zustand store (packages/core/src/store.ts) drives MapLibre GL JS via MapController.ts
  • Extension points: Plugin API for custom features, Python/R packages for embedding
  • Deployment: Docker support with FastAPI sidecar for advanced workflows

Frequently Asked Questions

What is the fastest way to get started with GeoLibre development?

Clone the repository, run npm install, and execute npm run dev to launch the Vite development server at http://localhost:5173. Complete instructions are in docs/getting-started.md.

Where can I find the GeoLibre plugin API documentation?

The Plugin API guide at [docs/plugin-api.md](https://github.com/opengeos/GeoLibre/blob/main/docs/plugin-api.md) covers writing, registering, and publishing plugins. Reference implementation: packages/plugins/src/plugins/deckgl-viz/store-layer.ts.

How do I embed GeoLibre in a Jupyter notebook?

Install the geolibre Python wheel with pip install geolibre, import from geolibre import GeoLibre, and call the .add_vector() method to load data. See docs/python.md for the full embedding API.

Is GeoLibre documentation version-controlled with the code?

Yes. All GeoLibre developer documentation resides in the same repository under the docs/ folder, ensuring documentation always matches the code version you are building.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →