Slab Steward

From OpenStreetMap Wiki
Jump to navigation Jump to search
View on OSM Apps Catalog  
SLAB Steward
v · d 
Author: Danny Godbout
License: MIT License
Platform: Web
Status: Active
Version: 0.1.0
Language:
English
Website: https://slab-steward.web.app
Source code: https://github.com/DannyGsGit/slab-steward
Programming language: Dart

A guided browser editor for trail difficulty and e-bike access, aimed at riders and walkers who know the trail but not the tagging.

Features
Feature Value
Map Display
Display map yes
Map data vector
Source online
Rotate map
?
3D view
?
Shows website
?
Shows phone number
?
Shows operation hours
?
Routing
?
Navigating
Navigate
?
Find location no
Find nearby POIs no
Navigate to point
?
Navigation with voice / Voice guidance
?
Keep on road
?
Lane guidance
?
Works without GPS
?
Navigate along predefined route
?
Tracking
?
Monitoring
?
Editing
Add POIs no
Edit / Delete POIs no
Add way no
Edit geometries no
Edit arbitrary tags of existing OSM objects Limited
Edit relations no
View notes no
Create notes no
Edit notes no
Work offline online
Support imagery offset DB no
Upload to OSM yes
Rendering
?
Accessibility
?


SLAB Steward is a browser editor for one job: adding Mountain Bike tags including mtb:scale:imba=* difficulty and electric_bicycle=* access to trails that are missing them.

The experience is intentionally simplified to make it easy for riders to enrich their home trails. Users pick the difficulty symbol as it would be shown on a trailhead sign, Slab Steward translates to the correct tag.

Edits go through user's own OSM account via OAuth 2.0, no shared or bot accounts are used.

Try it at: slab-steward.web.app

What it edits

Metadata on existing trail ways. Steward cannot draw a trail, move a node, split a way, add a POI, or edit a relation. Sensitive tags representing sanctioned status are also scoped out.

Difficulty

Writes mtb:scale:imba=* only, using the IMBA circle/square/diamond signage scheme:

Picker label Symbol Tag written
Beginner purple circle mtb:scale:imba=0
Easy green circle mtb:scale:imba=1
Medium blue square mtb:scale:imba=2
Difficult black diamond mtb:scale:imba=3
Expert double black diamond mtb:scale:imba=4
  • mtb:scale=* support in development for regions outside North America.

E-bike access

Writes electric_bicycle=* (equivalent to US Class 1 or Pedelec), yes/no only:

Slab option What it claims OSM
Allowed E-bikes may ride here, same as any other bike. electric_bicycle=yes
Not allowed E-bikes are shut out, regardless of regular bikes. electric_bicycle=no

Only yes/no designation for Class 1/Pedelec supported today. More powerful classes in work.

If a way already carries one of those values, Steward leaves it alone and the picker becomes read-only.

Planned

surface=*, oneway=*, smoothness=*, width=*, incline=* are out of scope for now but may incrementally be added.

How it works

  1. Discover. Map colors trails by whether the attribute you're working on is present or missing. Filter by travel mode and completeness.
  2. Select. Click a trail, ctrl/cmd-click to add more, ctrl/cmd-drag to box-select, or tick trails from a list.
  3. Edit. Pick a value per attribute. Nothing is sent yet — changes stage locally, with undo.
  4. Review. Every staged change, in plain language and as the literal tag diff. A real changeset comment is required before submit unlocks.
  5. Submit. A changeset is created, all changes validated against API pulls, uploaded atomically, closed, and linked back to osm.org. All uploads tied to user's OSM account.

Validation

Steward reads current tags and version from the OSM API before it lets you edit, rather than rely on map tiles which lag the database by days. A final validation check is also executed on submission of a changeset to avoid conflicts.

Editing against stale tile data risks a version conflict or silently overwriting someone else's edit.

Changesets

Every changeset carries:

Tag Value
created_by=* SLAB Steward/version, e.g. SLAB Steward/0.1.0
comment=* written by the contributor, required, more than one word
hashtags=* #slabsteward
host=* https://slab-steward.web.app
locale=* the contributor's UI language, e.g. en-US
review_requested=* yes, only if the contributor asks for review

#slabsteward is added automatically if missing, so the corpus of Steward edits is queryable in OSMCha.

The comment is never auto-generated. Steward requires the contributor to write one, and rejects update, fix, or a full stop.

Data sources

What Source
Basemap style OpenTrailMap's published MapLibre stylesheet
Trail discovery layer OpenStreetMap US's vector tileset, used under its usage policy
Authoritative tags, geometry, version OSM API v0.6, read fresh on every selection
Sign-in and writes OAuth 2.0 with PKCE against openstreetmap.org, under the contributor's own account

No external or automated data is imported into OSM. Every value is hand picked.

Rendering

Map styling follows OpenTrailMap's conventions rather than inventing new ones: solid lines for official trails, dashed for informal=yes, pale with no-entry symbols where the selected travel mode isn't allowed.

A completeness lens colors trails teal (attribute present) or magenta (missing), i.e. magenta is the to-do list.

One departure: trails that disallow the selected travel mode stay visible, drawn pale, instead of hidden, to remain clickable to fix their tags.

Because the tileset lags the database, a trail you just edited would draw as unrated until the next tile build. Steward keeps a local overlay of tags newer than the tiles and restyles those trails until the tileset catches up.

Limitations

  • Existing trail ways only. No create, delete, split, reshape, or relation editing.
  • Two attributes only today: difficulty and e-bike access.
  • No OSM Notes support (yet!).
  • Online only, no offline editing or local cache.
  • Web only, mobile planned for later.
  • English only.

For anything outside that, Steward links out to iD ways instead of growing a general-purpose editing mode.

See also