Every Hike, Walk, and Run activity from your Strava history is pulled in.
Ideas you have when out walking.
Trigg came about after hearing my friend Toby competing to collect or bag more trig pillars with his running group. This gave me the idea to create an app that would automatically record and derive it directly from Strava data instead. While SummitBag identifies peaks and cols from Strava activities, it doesn’t cover trig pillars, and it doesn’t have the little gamification layer that makes collecting them feel like a hobby.
What is a trig point?
A trig point (short for triangulation pillar) is a small concrete pillar that Ordnance Survey placed across Great Britain, mostly between 1936 and 1962, to help surveyors map the country. Each pillar carries a brass plate on top where a theodolite was mounted, so one pillar could be sighted from another and positions triangulated across the landscape.
Most pillars sit on hill summits or other points with a clear view, which makes them a natural target for walkers and runners to collect. Around 6,000 are still standing today. Trigg tracks only pillar-type stations, not the smaller bolts, rivets and surface blocks that appear in the wider legacy archive.
How visits are derived
The summary polyline shortlists activities that pass near known pillars.
A visit is counted when the recorded track comes within 20 metres of a pillar.
What is used
- Strava athlete id, display name, username and avatar.
- Encrypted refresh and access tokens, plus a separate app session cookie.
- Activity summaries for every eligible `Hike`, `Walk`, and `Run` activity in your Strava history.
- Detailed GPS streams only for activities that look close enough to a pillar to check properly.
- Derived visit matches, minimum distance and processing state for each matched pillar.
All class thresholds
How Trigg was built
For anyone who wants the technical detail, here is how the pieces fit together.
- Trig data. The pillar list comes from the Ordnance Survey legacy trig archive, published under the Open Government Licence. The raw CSV is normalised into a pillar-only dataset and loaded into PostgreSQL on first boot.
- Web app. Next.js 16 with React 19 and TypeScript. Server components fetch from the API, and MapLibre GL renders the interactive trig map.
- API and worker. A .NET 10 service written in C# handles the Strava OAuth flow, background sync jobs, activity import and pillar matching.
- Matching pipeline. The Strava summary polyline is decoded and checked against a bounding box around each pillar. Only shortlisted activities have their full GPS streams pulled, and a visit is counted when the recorded track comes within 20 metres of a pillar.
- Storage. PostgreSQL holds activities, pillars, matches and sync jobs. Strava tokens are encrypted at rest, and the app session cookie is kept separate from them.
- Infrastructure. The full stack runs in Docker Compose behind a Caddy reverse proxy that terminates TLS.
Disconnect and wipe your account
This revokes Trigg’s Strava access and permanently deletes every row held for your account: stored tokens, imported activities, streams, trig matches, webhook events, and sync history. You will be signed out immediately. To use Trigg again you would need to reconnect from scratch.
Sign in with Strava first, then return to this page to run the deletion.