← Back to Portfolio

OSM Relatify

A fork of OSM Relatify, a web editor that makes mapping bus and tram routes on OpenStreetMap easy. My fork picks up where upstream development stalled, adding tag editing, stop and stop area management, NaPTAN integration for Great Britain and route master support.

PythonJavaScriptLeafletOpenStreetMap
Fork Started02 September 2026
Last Updated28 September 2026
Latest Release1.2.0
LicenceAGPL-3.0

Why a fork?

Relatify was created by Kamil Monicz, and the whole application is built on his work. Upstream development has been quiet since January 2026, while several features on its roadmap would make everyday route editing noticeably easier. Rather than let them sit, this fork carries them, along with the quality-of-life improvements I wanted while mapping bus routes in the UK, so that a whole route can be finished without switching between editors.

What the fork adds

Editing relations

  • Edit a route relation's tags directly, without switching to iD or JOSM.
  • Write a custom changeset comment, with a generated default that counts what actually changed.
  • Create new bus relations from scratch, not just edit existing ones.
  • U-turns at untagged turning points, without needing a highway=turning_circle.

Stops and stop areas

  • Add a bus stop by right-clicking the map, and edit the name, stop letter, shelter and bench of stops already in OSM.
  • Place stop positions on the road, tagged with the direction the route runs so both sides of a street stay apart.
  • Create or complete public_transport=stop_area relations, grouping each stop's platform and stop position.
  • Put a new stop straight into a stop area, joining its place's existing area or starting one.
  • Load stops tagged only highway=bus_stop and offer the missing public transport tags.

NaPTAN for Great Britain

  • Suggest stops NaPTAN has and OSM lacks, ready to place with their tags filled in.
  • Fill in missing ATCO codes, refs, indicators and bearings on existing stops.
  • Settle disagreements between NaPTAN and OSM tag by tag before upload.
  • Tell same-named stops on opposite sides of a road apart by the direction their buses travel.

Route masters

  • See which route_master a route belongs to, and link it to an existing or new one.
  • Work through every variant of a line side by side from its master.
  • Edit the master's tags in the same place, keeping its ref in step with the route's.

Routing

  • Calculate routes for left-hand traffic as well as right, using the country's driving side.
  • Drive loops the right way round, with per-road direction overrides.
  • Warn when a stop is only passed on the far side of a two-way road.
  • Let bus routes use parking aisles.

Reliability

  • Retry and fail over between Overpass instances, and refuse answers from instances serving stale data.
  • Download the whole map view in one click, up to 256 cells at a time.
  • Far fewer, smaller Overpass queries, so loading a route no longer waits minutes or hits rate limits.
  • Clear messages when Overpass cannot be reached, instead of failing blankly.
  • The running version in the navbar, which says when a newer release is available.

New in version 1.2.0

A new button downloads the whole map view at once, so long routes no longer need an edge click every couple of roads. Platforms missing any of their bus stop tags get a button to add them, new stops are put straight into a stop area, and bus routes can use parking aisles. Loading a route now takes two Overpass queries instead of four, and finding the next download on large areas is almost 20 times faster.

See everything in version 1.2.0 →