Open Source Web GIS

Maps that do more.

Hajk is a modular, full-featured web GIS platform built on React, OpenLayers, and Node.js — powering everything from public map portals to advanced internal support tools for Swedish municipalities and beyond.

View on GitHub See it live ↓
28+
Built-in tools
15+
Municipalities
React 19
Modern stack
MIT
License

See Hajk in action

The City of Halmstad runs Hajk as their public map portal — explore layers, search addresses, measure areas, and more, right here.

karta.halmstad.se
🗺️

Interactive map — karta.halmstad.se

Halmstad municipality — public map portal Open in new tab ↗

Everything a modern GIS needs.

Hajk's client ships with a rich set of tools out of the box. Each plugin is independently configurable, so you can tailor the interface to your exact use case.

🗺️

Multi-source map layers

Connect WMS, WMTS, WFS and vector layers. Mix GeoServer and QGIS Server sources in a single map.

✏️

WFS feature editing

Draw, edit, and delete vector features directly on the map with full WFS-T write-back support — no separate editing tool needed.

🔍

Powerful search

Search across several WFS layers simultaneously. Pan and zoom the map, highlight matching features. Export to Excel or KLM for further analysis.

📐

Measure & analyse

Point, line, and area measurement with real-time calculations. Buffer, intersect, and clip geometries on the fly.

🖨️

Print to PDF

Export pixel-perfect, scaled map prints at user-selectable sizes and resolutions — including north arrow, scale bar, and logo.

📌

Bookmarks & sharing

Save map state as shareable URLs. Embed maps in other pages or share deep links to a specific view, layer combination, and selection.

📝

Text-to-map

Link rich text directly to geographic areas — a powerful pattern widely used by municipalities to publish statutory comprehensive plans where policy text and map context live side by side.

🔒

Access control

Map- , layer- and tool-level visibility can be tied to Active Directory groups, making Hajk suitable for both public portals and restricted internal systems.

📱

Responsive & accessible

Works on desktop and mobile. Built with Material UI v7 and React 19, following Material Design principles for a familiar, accessible experience.

Trusted across Sweden.

From coastal cities to national government agencies, Hajk powers real maps for real citizens — at scale. Here are all known public deployments.

Municipality

Ale

Public map portal for this municipality north of Göteborg covering planning and services.

karta.ale.se
Municipality

Askersund

Interactive map services for residents of this municipality in Örebro County.

karta.askersund.se
Municipality

Botkyrka

Comprehensive plan viewer for this municipality south of Stockholm — spatial planning made public.

oversiktsplan.botkyrka.se
Municipality

Göteborg

Public map portal for Sweden's second-largest city.

karta.goteborg.se
Regional

Göteborgsregionen

The Greater Gothenburg municipal association's shared map infrastructure for 13 member municipalities.

karta.goteborgsregionen.se
Municipality

Halmstad

Public map portal for this coastal city in Halland — also featured as the live demo above.

karta.halmstad.se
Municipality

Kungsbacka

Public map portal for this municipality south of Göteborg.

karta.kungsbacka.se
Municipality

Lekeberg

Map services for residents of this municipality in Örebro County.

karta.lekeberg.se
Municipality

Laxå

Publicly accessible maps covering planning and nature for this municipality in Örebro County.

karta.laxa.se
Municipality

Nacka

Map portal for this municipality east of Stockholm, serving one of Sweden's fastest-growing areas.

karta.nacka.se
Agency

Post- och telestyrelsen

Sweden's telecoms regulator uses Hajk to publish the national broadband coverage map.

bredbandskartan.pts.se
Agency

SGI

The Swedish Geotechnical Institute publishes landslide and erosion risk maps through Hajk.

gis.sgi.se
Municipality

Uddevalla

Public maps for this harbour city in Västra Götaland.

karta.uddevalla.se
Municipality

Varberg

Interactive map portal for this coastal municipality in Halland.

karta.varberg.se
Municipality

Värmdö

Map services for residents of this archipelago municipality east of Stockholm.

karta.varmdo.se
Demo

Official Demo

A basic Hajk setup, with OpenStreetMap as background with some default tools enabled.

hajk-demo.netlify.app

Configure everything from a UI.

Hajk's dedicated admin interface lets you manage maps, layers, tools, and access control without touching a single config file. Add a new WMS layer, enable a plugin, or restrict a tool to a specific user group — all through a structured, guided interface.

  • Create and manage multiple named map configurations
  • Add layers from any OGC-compliant source
  • Configure map, layer and tool visibility per AD role
Maps
Layers
Tools
Groups
Settings
Edit map: Halmstad Public
Halmstad Public
EPSG:3007
Everyone (public)

Modern. Fast. Container-ready.

Hajk's backend is a clean, dependency-light REST API designed for reliability and straightforward deployment — whether on bare metal, a VM, or Kubernetes.

⬡ Node.js ≥22
⚡ Express 5
📦 ES Modules
🐳 Docker Hub image
🔑 ActiveDirectory auth
📖 API Explorer

Pre-built Docker image

Pull the official image from Docker Hub and have Hajk running in seconds. No build step, no toolchain required.

Clean REST API

Every endpoint is documented via a built-in API Explorer. Clients, admins, and third-party tools all talk to the same versioned API.

ActiveDirectory integration

Plug straight into your organisation's AD to gate map configurations and layers based on group membership — no custom auth code needed.

Minimal footprint

Pure ESM, no bundler required. The backend stays slim, starts fast, and is easy to audit and extend.

# Pull the pre-built image from Docker Hub and run docker pull hallbergs/hajk docker run -p 3002:3002 hallbergs/hajk # → Image on Docker Hub: hub.docker.com/r/hallbergs/hajk # Prefer to develop locally? Clone and start each app: cd apps/backend && npm install && npm run dev # :3002 cd apps/client && npm install && npm run dev # :3000 cd apps/admin && npm install && npm start # :3001

Built in the open, for everyone.

Hajk is governed by a collaborative group of municipalities and organisations. Contributions of all kinds — code, bug reports, documentation — are welcome.

Star & fork on GitHub

Browse the source, open issues, and submit pull requests.
github.com/hajkmap/Hajk

💬

Chat on Discord

Join the community workspace to ask questions, share deployments, and collaborate with other users and developers.

📋

Changelog & roadmap

Follow what's shipping and what's planned.
View changelog · View roadmap

📄

MIT Licensed

Use Hajk freely in commercial and non-commercial projects. Fork it, extend it, ship it.
Read the license

Ready to build your map application?

Get started in minutes with the documentation and examples.