Every release, newest first. OpenTrail is in Alpha — features and data are still changing.
What the Forest Actually Says
v1.11.02026-09-05Dan’s Trail said bicycles were "conditional" without saying what the condition was, because it did not know — every bike verdict in OpenTrail was inferred from OpenStreetMap tags. OSU College of Forestry prints the answer for its own forests, and now OpenTrail uses it.
- •McDonald and Dunn trails now carry the College of Forestry’s own classification, cited to its visitor guide. 41 trails, 29 of which changed verdict: Dan’s, Dave’s, Extendo, Uproute, Ridge, Vineyard Mountain and the Horse trails are plainly open to bikes; Old Growth, New Growth, Forest Discovery, CFIRP, Powder House and the Section 36 Loop are plainly closed.
- •Calloway Creek and Intensive Management carry their real rule at last: bicycles from 15 April to 31 October, and never horses.
- •Dogs appear on 73 trails that had no policy recorded. The Research Forests welcome them under voice control or on a leash, so they now answer the dog-friendly filter on Explore.
- •These are the first trails in the database to carry an official source at all. The machinery for a land manager to override an inferred verdict had existed for releases and had never been used outside a test.
- •Trails the guide omits are left alone, and twelve guide entries with no confident match are recorded with the reason rather than fitted onto whichever row looked close.
Not included in this release
- — Horses have no field of their own, so the horse rule is carried in the access reason rather than being filterable
- — Forest-wide rules — the 9pm to 5am closure, no hunting, the wet-weather request — are held in the source data but have nowhere to display yet
- — Seven trails named in the guide are simply not in OpenTrail, Homestead and Quercus Meadow among them
- — This covers the OSU forests only; the other sixteen authority sources on file are still unapplied
Nearby Trails, Actually
v1.10.12026-09-05Nearby trails on Grizzly Peak offered Lake Creek Road, 37-2E-3 and ten more logging spurs — twelve of twelve were roads, while twelve real Ashland trails in range never appeared. More than half the imported route table is Forest Service road rather than trail, and it was drowning the trails.
- •Nearby trails lists trails. Logging spurs, forest-road numbers and city streets are kept out of it — 12,269 rows of 20,092 turned out not to be trail at all — so the trails that were always in range can be seen.
- •Each trail appears once. Hat Rock offered the Lewis and Clark Commemorative Trail five times over, because a long route is stored both whole and in pieces; you now get the whole thing.
- •It does not eat trails that are named like roads. Northwest Leif Erikson Drive is 16.1 km of Forest Park, Holman Lane is up the hill from it, and East Soda Spur is a real trail near Grizzly Peak — all three are still here.
- •Where nothing real is nearby the section hides rather than padding itself with roads. On a sample of 150 trails that is one in 150, and for that one it is simply true.
- •A walk started from Explore can be finished there — Finish, Discard and Save to my hikes, with a link to the trail it found. A recording on no mapped trail saves just the same.
Not included in this release
- — The honest fix is the OpenStreetMap highway tag, which the importer does not keep; until a re-import captures it the name carries the signal, and a name is a heuristic
- — Roads still appear in search and on the Explore map — only the Nearby trails list is filtered
- — Nothing has been deleted: every road is still in the database and still reachable by search
Recording That Follows You
v1.10.02026-09-04Pressing Record used to bind the whole walk to whichever trail page you had open, so stepping onto a connecting trail left OpenTrail measuring your progress along a trail you had left. A recording now works out which trail you are on, and keeps working it out — and you can start one from Explore without finding the trail first.
- •Explore has Find me and Record here. Record here works out which trail you are standing on and starts recording against it immediately, instead of making you search for the trail, open its page and press Record.
- •Walk onto a different trail and the recording moves with you. It stays one hike throughout — distance, climb and time run straight through — and the map names the trail you are actually on.
- •It will not, however, change trail because you paused at a signpost. At the Iron Mountain trailhead two separate trails are both 1.3 metres away, and a phone wanders several metres while you stand still; a different trail has to be clearly closer and stay clearly closer for several seconds.
- •The blue dot holds still when you do. Positions are filtered rather than drawn raw, so a phone on a rock stops wandering and a reflection off a valley wall no longer drags your track sideways — but if the phone insists over several readings that you are somewhere new, it is believed.
- •Saving a trail for offline now saves the map around it, coarsest detail first so an interrupted download still leaves something usable. Saved maps are kept separately from the app, so a new release no longer discards them. With no signal, a recording matches against the trails you saved.
- •Research and demonstration forests — McDonald, Dunn, H J Andrews, Hopkins — have their own category instead of being filed as nature reserves, as do Oregon’s state forests. 158 trails that belonged to no area at all now belong to one, taking the count from 594 areas to 608.
- •Fixed: Play the route did nothing at all in 1.8.0; the camera was too fast and lurched on switchbacks; 3D terrain was cut off part-way when switched on mid-flight; 97 routes said a flat “No bicycles” when only part of them is closed; and a trail page asked who you are three times instead of once.
Not included in this release
- — The offline map covers the basemap only — 3D terrain relief still needs a connection
- — A handful of McDonald-Dunn trails still are not attributed to the forest: they touch its mapped boundary but run mostly outside it, and loosening the rule would misattribute trails elsewhere. That needs better boundary data, not a looser rule
- — Background recording with the screen off remains platform-dependent and is not yet part of the tested matrix
- — Trail transitions are recorded on the device but are not yet shown in the hike log after the walk
Trails by Area
v1.9.02026-09-03Every park, forest and wilderness now has its own page listing the trails inside it — 594 of them, holding 13,125 trails between them. Until now a trail could only be found by searching for it by name, which is no help if you know you want to walk somewhere in the Willamette but not which trail.
- •Areas, in the menu, lists every park, forest and wilderness we hold trails for, grouped by what kind of place it is and ordered by how many trails are mapped in each.
- •Each area page gives the trails inside it with distance, difficulty, elevation and bike access. Where an area holds more trails than one page should carry, it says so and points at Explore for the rest rather than implying that what you can see is all there is.
- •The area name on a trail page is now a link to that area, so you can start from one trail and see everything else in the same forest without going back to search.
- •An area is a trail’s recorded region rather than a mapped boundary. We hold 3,331 boundary polygons and most contain no trails at all, so building the pages from those would have produced hundreds of empty ones. The boundary is used only to say what kind of place it is.
- •Areas are listed in the sitemap alongside trails, so search engines find them the same way.
Not included in this release
- — The 6,967 trails with no recorded region appear on no area page yet — they are still searchable, and giving them a home is an importer job
- — No map on the area page yet, and no filtering within an area
- — States, counties and towns have no pages of their own; only areas do
Play the Route, and What the Ground Is Like
v1.8.02026-09-03A Play control that flies the map along a trail while a cursor runs down the elevation profile, so you can see where the climb is before committing a Saturday to it — and a row of plain descriptions on every trail saying what the surface is, how steep it is, and whether it is rough going.
- •Press Play under the map and it flies the route end to end, with a cursor moving down the elevation profile beside it. The profile is also the scrubber: drag anywhere on it to jump to that point and read the distance, elevation and grade there.
- •It reads the route and elevation the page already downloaded, so it costs no extra request and keeps working on a trail saved for offline. A recording always wins — start recording and the preview stops rather than flying over your actual walk.
- •Every trail now carries a short row of descriptions: the surface, how steep it is, whether it is rough underfoot, and whether it climbs steadily or rolls. All 20,092 trails have at least one, and the steepness reading is on every single one.
- •Each of those says where it came from. Open “How these were worked out” and every label gives the measurement behind it, its source, and whether it is a fact somebody recorded or our own estimate. “Natural surface” is recorded; “Steep” is our reading of the elevation data and says so, with the figure.
- •Nothing is invented from silence: an unrecorded surface produces no label rather than a guess. Where two independent signals agree the confidence rises; where the elevation data is thin it falls.
- •Biking appears among the activities only where an explicit permission is recorded, never inferred from terrain. Where it is missing, the page says that is an absence of information rather than a prohibition.
Correction
Play the route did not work in this release. The control appeared and the elevation cursor moved, but the map never flew — two faults in how the flight drove the map, neither of which we caught before publishing the note above. It was fixed in a later update, along with the camera being too fast and too jerky on switchbacking trails, and switching to 3D terrain mid-flight. If you tried this when 1.8.0 landed and nothing happened, that was us, not you.
Not included in this release
- — No “Kid-friendly” label. An honest one would have to account for exposure — how much of a trail runs alongside a drop — and we derive no exposure signal at all, so it does not ship
- — No scenery labels (forests, rivers, waterfalls) yet: that needs landcover data we do not hold
- — The tilted 3D flyover is not included; the flat camera pan is
The Saved Trail You Already Downloaded
v1.7.02026-09-03Saving a trail for offline has downloaded its route, elevation profile, terrain figures and bike rules since 1.3.0 — and then shown you none of them, telling you the route needed a connection while it sat on your phone. The offline page now draws what was already there.
- •The offline trail page draws the shape of the route, the full elevation profile, the high and low points, total descent, bike access with the authority behind it, and whether dogs are allowed — with no signal and no map tiles. Nothing new is downloaded to make this work.
- •Every trail saved on the device is now listed on the offline screen, and on any trail page you reach without signal that you had not saved. Offline there is no search and no way to guess a web address, so a list is the only way in.
- •Saved copies say how old they are: quiet under a week, cautioning after one, and plainly stale after a month. The trail page shows the same warning along with how much space the trail takes, and offers “Update saved copy” instead of remove-then-re-save.
- •Each copy is checked when it is opened, not only when it was saved. A copy that no longer matches its fingerprint is still shown — out there it may be the only copy there is — but it says so.
Not included in this release
- — Offline map tiles, unchanged since 1.3.0 — the route is drawn from its own geometry, not from a basemap
- — Offline photos, weather, or reviews: those are freshness-sensitive and deliberately not cached
- — Editing or reviewing a trail while offline
Search That Predicts, and a Security Review
v1.6.02026-08-31Matching trails and areas now appear under the search box as you type, drawn from our own data rather than an outside map service — plus the results of a security and privacy review of the whole app, with two high findings and one low one fixed and live.
- •Start typing anywhere on the site and matching Oregon trails and areas appear under the box, with the difficulty, length, and where each one is. Picking a trail opens it; picking an area — a park, forest, or wilderness — searches inside it. Focus the empty box and it offers the areas holding the most trails.
- •Predictions come from our own trail data, so they are immediate, and an area is only ever suggested when we actually hold trails inside it. The explore page no longer calls an outside geocoder on every keystroke — a service that answers one request per second by policy, which was the old dropdown’s speed limit.
- •The list is keyboard-navigable end to end: arrow keys move through it, Enter opens the highlighted row, Escape closes it. With JavaScript off, the box is still an ordinary search form.
- •Security — sign-in attempts are properly limited again (high, handled). The cap on repeated password attempts identified who was trying using information the person connecting could set themselves, so it could be worked around. Attempts are now counted against the account being signed in to, which nobody connecting can choose. Mistyping your own password has no effect on anyone else signing in.
- •Security — recorded walks are locked down properly on the server (high, handled). A walk you sync for another device is held for 24 hours; that short-term store, and the database and photo store behind it, could be reached by other machines on the same network as the server rather than only by the app. All of them now require a password and are closed to everything else.
- •Security — pages now carry a content security policy (low, handled). A standard instruction to your browser about where a page may load things from, so anything unexpected has far less room to do anything at all. There is nothing you need to do about any of the three.
- •Both high findings were the same kind of problem: not a mistake in the logic, but a gap between how the code assumed it was deployed and how it actually was. Neither was visible from reading the code alone, and both were reproduced against the live site before being fixed. All three came out of our own review rather than being reported to us.
- •Trail search treats % and _ as the characters you typed rather than as wildcards, so searching for a name containing one finds that name instead of everything shaped like it.
- •An area is placed by the middle of its trails rather than the middle of the box drawn around them — one mis-tagged trail had been putting Silver Falls State Park’s centre 28 km outside the park.
Not included in this release
- — Search beyond Oregon, and beyond trails and areas — reviews, photos, and hikers are not searchable
- — Self-serve account deletion and data export: removing an account is still something you have to ask us to do
- — Photo thumbnails — the trail mosaic still serves every tile at full upload resolution
- — Offline map tiles, unchanged since 1.3.0
A Trail Page That Leads With the Trail
v1.5.02026-08-29The trail page now opens with photographs and the route’s own shape instead of grey tiles, gains an in-page spine, and can point you at other trails nearby — plus a hike log that stays with your account.
- •Breadcrumbs and a server-rendered photo mosaic open the page. A trail with no photos yet gets a drawing of its own route rather than a stock image — and that drawing is the last tile of the mosaic when photos do exist, so the shape of the walk is always beside the pictures.
- •The description moved above the map, a sticky nav lists only the sections a trail actually has, and conditions — weather, warnings, and wildfires within 50 km — is now a full-width section instead of a sidebar card below the fold.
- •Other trails in the same area, for when this one turns out to be wrong for the day. Trails that touch this one stay in Connecting trails, so the two sections never list the same route twice.
- •Your finished hikes are kept with your account, with the totals and the trails covered. The GPS trace itself does not move: it is read once to work out the trails, then dropped, and no point-level location reaches the database.
- •Trails you have already opened load faster — roughly three to five times faster on a repeat visit. Ratings, review counts, and cover photos stay outside that cache, so a moderator’s decision still shows up immediately.
- •Trail pages are findable at last: a sitemap covering all 20,095 of them, a robots file, and structured data on every trail. None of it existed before.
- •Dallas, Silverton, Stayton, and Detroit added. Stayton had thirteen park polygons and no trails at all; Silverton had ten parks and two trails.
- •Free social sharing from every trail page, in Story, portrait, square, and link-preview formats, plus transparent overlays for your own photos and video. Nothing is posted automatically and no social account token is stored.
Not included in this release
- — Photo thumbnails — the mosaic still serves every tile at full upload resolution, which is the largest byte saving still on the page
- — Trail attributes beyond the ones we already hold: surface, scenery, and who a trail suits are not yet derived
- — Popular times, review condition tags, and helpful votes — designed but not built
- — Offline map tiles, unchanged since 1.3.0
Recording Opens Ready for the Trail
v1.4.12026-08-20Record now opens the map fullscreen, follows your GPS position, and tells you whether you are on or off the route without extra setup.
- •Press Record and the map enters fullscreen immediately, then centers the first high-accuracy GPS fix.
- •The recording overlay says Finding GPS… while location permission and the first fix are pending, then switches to On route or Off route.
- •Stop returns to the trail page. If you close fullscreen by accident while still recording, Return to fullscreen gets you straight back in without losing the activity.
Account Settings and a Front Page That Shows the App
v1.4.02026-08-19Change the email you log in with, change your password, and manage your saved hikes — plus a new home page built around a working walkthrough of the phone app.
- •Account settings at /account: change your email, change your password, review and remove saved hikes. Both credential changes ask for your current password first, so a session left open on a shared machine can’t be used to move the account somewhere you can’t reach.
- •Changing your password signs out every other browser you’re logged in on and tells you how many — the one you’re using stays signed in.
- •A scrubbable walkthrough of the phone build on the home page: recording a hike end to end, then saving it for offline and watching the trail still render with the signal gone. Same labels and status messages as the real app.
- •Estimated time on trail cards, from Naismith’s rule — a planning figure, not a prediction.
- •A mobile tab bar (Explore, Saved, Account), and featured cards that show a community photo where one exists and the route’s own shape where it doesn’t.
Not included in this release
- — Password reset by email — changing a password still requires knowing the current one, so a forgotten password can’t yet be recovered
- — Map tiles in offline packs, unchanged from 1.3.0 and stated plainly in the walkthrough
- — Deleting your own account, or changing a display name after signup
City Park Walking Paths
v1.3.12026-08-16City park walking paths for Albany, Salem, Woodburn, Corvallis, and Lebanon — 184 trails that didn’t exist in the app before, even though the parks themselves were already on the map.
- •A new importer closes a real gap: the statewide import only keeps named paths, but most small city-park loops carry no name tag in OpenStreetMap at all. Woodburn had 21 parks within 8km and zero trails before this release.
- •184 new walking paths across five towns: Albany (25), Salem (79), Woodburn (11), Corvallis (48), Lebanon (7).
- •Institutional land wrongly tagged like a park — state wildlife management areas, university research forests — is excluded by name, and the importer cleans up any it previously created.
Not included in this release
- — Reviews, condition reports, or photos for the new paths — they start with none, like any newly imported trail
- — Additional towns beyond the five above, though the importer is a plain list that can be extended
Offline Trail Packs, Pass 1
v1.3.02026-08-13Save a trail’s route summary, stats, and description so it’s still there with no signal — the first piece of offline support. Map tiles aren’t part of this pass.
- •“Save for offline” on every trail page, writing the trail’s own data to your browser’s storage — the same on-device pattern already used for GPS recordings.
- •The site’s first Service Worker: caches static assets and a small offline shell as they load, and falls back to that shell only when a page navigation fails outright.
- •A dedicated offline view shows the saved name, difficulty, region, distance, elevation, and description, clearly labeled with when it was downloaded — never presented as a live page.
- •A PWA manifest, so the site can be added to a phone’s home screen.
Not included in this release
- — Map tiles of any kind — a pack today is route data only, not imagery or the basemap
- — Region packs (a whole area at once) and the rich tier that would include imagery
- — Resumable downloads, storage-budget eviction, and manifest signing
Live GPS Progress
v1.2.02026-08-11Record a hike and watch distance, elevation gain, and progress along the trail update live — entirely on your device.
- •Record / Pause / Resume / Stop / Discard controls, with live distance, elevation gain, and an on-route progress bar computed entirely on your device against the trail’s own geometry.
- •Recordings live in your browser’s own storage, which survives a full page reload — including a mobile browser discarding the tab under memory pressure mid-hike.
- •Optional sync (never automatic) lets a signed-in account push a completed recording to the server for cross-device pickup. GPX and GeoJSON export work entirely client-side, synced or not.
- •Map matching weighs continuity from your last confident position, so it doesn’t snap to the wrong branch of a loop or trail intersection just because it’s a few metres closer.
Not included in this release
- — Adaptive GPS sampling and hysteresis on the on/off-route boundary
- — Explicit reversed-route detection
- — Live location sharing with a trusted contact
- — Connecting a recording to an offline trail pack (offline packs are a separate, not-yet-built phase)
API docs link, live status
v1.1.22026-08-10A link to the interactive API documentation, with a status dot that reflects whether the API is actually reachable.
- •Footer link to the Swagger API docs, opening in a new tab.
- •A status dot polls the API’s health check every 30 seconds and reflects the real result — verified against an actual container stop/start, not just read from the code.
License and status correction
v1.1.12026-08-10OpenTrail is not yet under an open-source license. Every AGPL-3.0 reference was replaced with an explicit Freeware notice, and the site now visibly labels itself Alpha.
- •LICENSE rewritten to a short Freeware notice: free to use during Alpha, formal terms not yet finalized.
- •A persistent Alpha badge in the header on every page.
- •OSM trail data remains separately ODbL-licensed regardless of our own license.
Bike Access & Suitability
v1.1.02026-08-01OpenTrail now distinguishes legal bicycle permission from estimated physical ride difficulty, and keeps unknown access explicit rather than guessing.
- •Bike access and MTB suitability filters, access-colored map lines, and explainable confidence scores.
- •Explicit restrictions always override inference; missing permission stays unknown, never defaults to allowed.
- •A reviewed 16-source Oregon authority registry, plus a moderated correction-submission queue.
Terrain & Elevation
v1.0.12026-07-30Elevation profiles on every trail, from public DEM data, plus the stable 1.x API compatibility policy.
- •Elevation profiles: ascent, descent, low/high points, and 90th-percentile grade.
- •Interactive 3D terrain mode on the map.
- •19,913 of 19,913 trails with geometry received a valid elevation profile at rollout — zero deferred.
Administration and performance
v0.3.02026-07-23Admins get a user roster with presence, account bans, and account deletion. The explore map stops re-querying ground it already loaded.
- •Account bans revoke every active session immediately and take down the account’s existing content, not just future posts.
- •Viewport caching: twelve pans across the Columbia Gorge collapsed to one database query in testing.
Photo moderation
v0.2.02026-07-22Community photos now publish only after review — closing the last path by which unreviewed content could reach the public site.
- •Uploads queue as pending and are invisible to the public until a moderator approves them.
- •Unapproved photos answer 404, not 403, so guessing an identifier can’t confirm one exists.
Initial release
v0.1.02026-07-21The first public baseline: trail explorer, accounts, weather, wildfire alerts, and community reviews.
- •Password hashing with argon2id, revocable server-side sessions, and guest browsing with no account required.
- •Statewide Oregon trail import, map-driven explore, real-time weather and wildfire layers.
- •Review moderation with an admin queue.