Alternative Ways to View GeoLibre Repository Contents: Browsing, Building, and Running the Code

TLDR: You can explore GeoLibre through the GitHub web UI, a local git clone, live web and desktop apps, Jupyter notebooks, RStudio, or a prebuilt Docker container.

GeoLibre is a single npm-workspaces monorepo maintained by opengeos that delivers the same GIS application across multiple platforms. Whether you want to skim the source, run tests, or launch a fully interactive mapping environment, there are several alternative ways to view GeoLibre repository contents without hunting through folders blindly. Each entry point reveals a different layer of the codebase, from React components and Zustand stores to Rust-based desktop shells and Python bindings.

Browse the Code Without Building Anything

GitHub Web Interface

The simplest way to inspect files is through the repository's GitHub page at opengeos/GeoLibre. GitHub renders Markdown documentation, provides a file-search UI, and lets you read source files directly in your browser.

Local Git Clone

For full-text search, modification, and exploration of build artifacts, clone the monorepo locally:

git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
npm install

This pulls the entire workspace—including apps, packages, workers, and the backend—onto your machine. A local clone requires Node 22+.

Run the Application in Different Environments

GeoLibre Web (Browser)

The web build lives in apps/geolibre-desktop and is compiled with Vite. Static assets are served by an Nginx container, with the build output written to apps/geolibre-desktop/dist/. You can visit the live deployment at https://web.geolibre.app/ or start a local dev server with npm run dev after installing dependencies. The Vite configuration is defined in apps/geolibre-desktop/vite.config.ts.

Desktop Application (Tauri)

GeoLibre also ships as a native desktop client for Windows, macOS, and Linux. The Tauri shell is located in apps/geolibre-desktop/src-tauri and bundles the same dist/ output with a Rust-based shell and a packaged Python side-car. Download installers from the README badge links (for example, the Microsoft Store) or build from source:

npm run tauri:dev    # launches the Tauri desktop window

npm run tauri:build  # creates an installer

Mobile Apps

iOS and Android builds embed the same React UI inside a WebView using Tauri v2 mobile targets. The source code remains under apps/geolibre-desktop with platform-specific adapters. Installation links are available from the App Store and Google Play badges in the README.md.

Jupyter and Python Embedding

A Python package named geolibre can launch the full UI inside a Jupyter notebook cell. The python/ folder builds a wheel that bundles the compiled web app from apps/geolibre-desktop/dist-embed. Install via pip and run:

import geolibre
geolibre.show()   # opens the full GeoLibre UI inline

See the Python docs for details. The build logic is handled in python/hatch_build.py.

R Package

An R-language wrapper loads the same embedded build for use inside RStudio, Quarto, or Shiny. The bindings live in the R/ folder and are documented in docs/r.md. Install from CRAN and call:

install.packages("geolibre")
geolibre::run()

Docker Container

For a self-contained server, pull the prebuilt image:

docker run -d -p 8080:80 ghcr.io/opengeos/geolibre

This serves the web build from an Nginx image and optionally includes the Python side-car. The image is defined by the root Dockerfile.

Architectural Overview and Key Source Files

Before diving into implementation, it helps to understand how the pieces fit together. The core of GeoLibre is a Zustand store in @geolibre/core (see packages/core) that holds the project model (.geolibre.json). UI components in @geolibre/ui read this store and dispatch actions synchronized to the map engine in @geolibre/map.

The map engine supports two renderers that subscribe to the same store:

Additional data flows come from built-in plugins (@geolibre/plugins) and the optional FastAPI side-car at backend/geolibre_server/app/main.py. The high-level diagram and state-flow are documented in docs/architecture.md.

Summary

  • GeoLibre is an npm-workspaces monorepo with multiple viewing entry points, from GitHub's web UI to Docker containers.
  • The web and desktop apps are built from apps/geolibre-desktop using Vite and Tauri.
  • The Python and R wrappers embed the same compiled UI via dist-embed, making the app accessible in notebooks and statistical environments.
  • Core architecture relies on a Zustand store in packages/core, map controllers in packages/map/src/map-controller.ts, and an optional FastAPI backend.
  • All source paths, build commands, and package names are preserved in the repository's README.md and docs/architecture.md.

Frequently Asked Questions

Can I view GeoLibre source code without cloning the repository?

Yes. The opengeos/GeoLibre GitHub page lets you browse directories, read rendered Markdown, and search files directly in your browser.

What is the fastest way to run GeoLibre locally?

After cloning, run npm install followed by npm run dev to start the Vite development server at http://localhost:5173. This command uses the configuration in apps/geolibre-desktop/vite.config.ts and requires Node 22 or later.

How does the Python package display the GeoLibre UI?

The geolibre Python wheel bundles the static web assets from apps/geolibre-desktop/dist-embed. When you call geolibre.show() in a Jupyter notebook, it serves those embedded assets inline. The build process is defined in python/hatch_build.py.

Is there a backend server I need to run?

Not for the core UI. The web, desktop, and mobile apps run standalone. However, advanced geoprocessing features rely on an optional FastAPI side-car located at backend/geolibre_server/app/main.py.

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 →