Your own map of where you've been, where you want to go, and the journeys between them.
Ferd is Norwegian for "journey".
Map and data
- World map with clustered place pins and GPX route polylines.
- Filter by category, visit status, and route completion.
- Browse places by category or country, routes by region.
- Route detail with elevation profile and route stats.
- History page: a journal of visited places and completed routes.
- Site catalog: browse and import community-curated places, or extend with your own.
- Multiple built-in UI themes.
- Pick a map tile layer independent of the theme, with adjustable filters.
Multi-user
- Per-user data isolation - each account is its own map.
- Optional read-only public sharing at
/u/<username>/. - Admin tools: user management, site stats, registration and publishing toggles.
Installable and offline
- Add to your device for launch in its own window.
- Reads work offline (app shell, last loaded data, downloaded GPX, previously viewed tiles). Edits and uploads need network.
- Local-only mode: run entirely on-device with no server or account.
Requirements: Python 3.9+ (or Docker), a modern browser. No build step, no Node, no database server (SQLite file).
Footprint: ~1.7 MB of code and assets. Python uses about 32 MB of memory at idle; the Docker image is 43 MiB compressed (211 MB on disk) and runs at roughly the same memory plus a small container overhead.
Full documentation in docs/.
git clone https://github.com/polybjorn/ferd.git
cd ferd
cp tools/config.example.json tools/config.json
python3 tools/api.pyOpen http://localhost:8091 and register the first account. See python.md for systemd/launchd setup, first-run hardening, and backups.
Quickstart against compose.yml:
git clone https://github.com/polybjorn/ferd.git
cd ferd
mkdir -p data
cp site-config.example.json data/site-config.json
cp .env.example .env
docker compose up -dOpen http://localhost:8090 and register the first account. See docker.md for tag tracks, FERD_* env vars, and data folder permissions.
Android client for Ferd, server-connected or fully on-device. Use an APK manager to auto-update, or download the latest release APK directly.
- Print and PDF stylesheet for route and place details.
- Uploaded image attachments on places and routes.
- Per-category default-hide toggle in Manage categories: hidden categories start filtered out on the map until re-enabled in the filter menu.
- Optional TOTP two-factor authentication.
- Offline editing, queued and synced when the connection returns (reads already work offline).
- Distinctive logo.
- Custom iOS launch splash (PWA).
- Custom Android launcher icon.
- Custom social preview image for the GitHub repository.

