About

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.

Trig points

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.

Matching

How visits are derived

1Import

Every Hike, Walk, and Run activity from your Strava history is pulled in.

2Prefilter

The summary polyline shortlists activities that pass near known pillars.

3Match

A visit is counted when the recorded track comes within 20 metres of a pillar.

Athlete data

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.
Score levels

All class thresholds

Novice Explorer0 to 149 pts
Hill Walker150 to 399 pts
Ridge Rambler400 to 899 pts
Distinguished Bagger900 to 1,799 pts
Summit Scholar1,800 to 3,499 pts
Pillar Pathfinder3,500 to 6,499 pts
Highland Cartographer6,500 to 11,999 pts
Grand Trigmaster12,000+ pts
Under the hood

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.
Delete my data

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.