Repository navigation
Road Reports
Road reports are the community part of Roadstr: people publish what they see — a speed camera, a police check, an accident, fog, a pothole — as signed Nostr events, and everyone nearby sees it on the map and hears it while driving. There is no Roadstr server in the middle.
| Category | Marker stays up for |
|---|---|
| Police | 4 hours |
| Police station | 30 days |
| Speed camera | 30 days |
| Traffic jam | 1 hour |
| Accident | 4 hours |
| Road closure | 24 hours |
| Construction | 15 days |
| Hazard | 4 hours |
| Road condition | 15 days |
| Pothole | 7 days |
| Fog | 4 hours |
| Ice | 4 hours |
| Animal | 1 hour |
| Other | 4 hours |
These are Roadstr's own lifetimes. Confirmations keep a marker alive and denials remove it sooner. (The expiration tag
on an event is something different: it only tells relays when they may delete it.)
- Sign in with Nostr (Nostr and sign-in). Reporting needs an identity; viewing reports does not.
- Open the report panel (Report an event), pick the category, and optionally add a speed limit (for speed cameras) and a comment.
- The first time, a Public report notice appears. Read it: a report publishes its exact position, time, content and your public key to public Nostr relays. That is pseudonymous, not anonymous, can be linked to your other activity, and cannot be taken back reliably.
- Choose Publish. With no connection the report is saved and published when you are back online.
Every event received from a relay is checked for a valid signature before it is trusted, so a relay cannot forge a report in someone else's name.
Tap a marker. Still there extends it; Not there anymore shortens it. Both need a Nostr identity — without one the button says Login with Nostr to confirm or dispute. A marker shows how long ago it was reported.
Only the author can change a report, and the protocol keeps it that way:
| Event | Meaning |
|---|---|
| Kind 1317 | A correction signed by the report's own author. This is the only edit that is authoritative. |
| Kind 1318 | A correction requested by someone else. It does nothing until the author answers with a 1317. |
In the app: as the author you can Add or update speed limit on your report; anyone else can Suggest a speed limit. The author sees Pending edit suggestions and chooses Accept suggestion.
Reporters can be tipped over the Lightning Network — Zap ⚡ (send sats) on a marker; see Lightning and zaps. When you are signed in, Roadstr notifies you of zaps, confirmations and denials that arrive on your own reports; they are also listed in the activity inbox.
Two sources are shown together: reports from people (kind 1315) and an OpenStreetMap baseline fetched from Overpass and cached. The baseline is not a community report. A speed camera report can carry the limit it enforces, shown with the marker as the Reported speed limit.
Roadstr also reads, and optionally writes, the open jooray/roadstr report format, and can use a MeshCore LoRa radio as a second transport. See Interoperability and MeshCore.
| Kind | Purpose |
|---|---|
| 1315 | Report |
| 1316 | Confirmation or denial of a report |
| 1317 | Correction by the original author |
| 1318 | Correction requested by someone else |
Roadstr's own layout is lat, lon, g, g, g, t, expiration[, maxspeed] with six-decimal coordinates and a vote of
e, status. The default public relays are nos.lol, relay.primal.net, nostr.oxtr.dev and relay.damus.io.
Roadstr is open source under the MIT licence · Source · Releases · Changelog · Issues
Using Roadstr
- Installation
- Getting started
- Navigation
- Maps and offline use
- Search and Explore
- Road reports
- Public transport
- Voice guidance
- Voice search
- Journey and achievements
- Settings reference
Nostr and money
Trust
Build and extend