Trail conditions that work
where there is no signal.
A fallen tree, a washed-out bridge, a flooded stretch. Cairn holds the map on your phone so you can read it — and file it — at the trailhead, in the trees, and at the far end of the loop.
iPhone. Ontario to start, Canada-wide ground everywhere.
Absence means "nobody has said"
Most trail apps show you a clean green line and let you assume it means the trail is clear. It doesn't. It means nobody has walked it with an app open.
Cairn is careful about the difference. An empty stretch says nothing reported here, not all clear. A report fades as it ages rather than vanishing, because a downed tree doesn't move just because nobody has mentioned it lately. If we don't have a map for somewhere, the app says so instead of drawing a blank field.
That's the whole idea, and it's why the app sometimes tells you less than the others do. What it tells you is true.
Offline is the default, not a mode
Tap a trail and take it with you. You get the ground, the path, the junctions and the surface — a few hundred kilobytes, not a region-sized download — and it all keeps working in airplane mode.
A trail, not a rectangle
High Falls Loop, 11.2 km, with the ground around it. Downloads in seconds on one bar.
Walkable segments
Every path, track, footway and trail in Ontario, cut into pieces you can fetch one at a time.
Named trails
Searchable before you download anything, so you can find somewhere to go from the sofa.
Ground for all of Canada
Streamed a tile at a time, so panning around costs nothing until you keep it.
What it looks like
What a trail tells you
| Length | 11.2 km |
|---|---|
| Made of | 3 mapped stretches |
| Surface | Dirt |
| Time | about 2 hr 45 min at 4 km/h |
| Height range | 241–277 m |
| Relief | 35 m |
| Junctions | 22 |
No elevation gain, on purpose. Adding up climbs from a 30-metre elevation model gives anywhere between +20 m and +586 m for the same trail depending on how you smooth it — a 29× spread from processing choices alone. Relief is a measurement. Gain would be an invention.
Surface reads Not recorded for about a third of trails. The row stays visible rather than hiding, because an absent row reads as "there is nothing to say" when the truth is "nobody has said".
Reporting takes a moment
One tap, a hazard type, and it's attached to the right stretch of trail — matched on your phone, not on a server. If you're out of signal it waits in a queue and goes when you're back. Nothing is lost because you were somewhere remote, which is where you were most likely to see something worth reporting.
You can record a walk, too. That's how the app knows which stretches you actually covered, so a report ahead of where you turned back is never wrongly cleared.
Found something wrong?
A trail we do not have, a path in the wrong place, something in the app that does not work. This is a small project and every report gets read.
Whose data this is
Ground and trail paths are © OpenStreetMap contributors, available under the Open Database Licence, via Overture Maps and Protomaps.
Trail names in Ontario come from the Ontario Trail Network under the Open Government Licence – Ontario; names elsewhere come from OpenStreetMap under ODbL. The two are kept as separate files and never merged, because ODbL is share-alike and the Ontario licence grants no authority to impose it.
Elevation is Copernicus GLO-30.