Skip to the content
Projects & Experiments

TopoLine. A climbing app for places phones don’t reach.

TopoLine is an app for climbing topos: photos of the rock with every climb drawn on as a numbered line, coloured by its grade. Make your own, find your route at the crag, and use it all with no signal. It’s Mark Pollak’s own project and a work in progress: the website has been live since June 2026, and the Android app is in testing, on its way to Google Play.

Project
Personal, a work in progress
Started
June 2026
Android app
In testing
Built with
Claude Code and Figma
  • 0Bars of signal needed at the crag, once a crag is saved
  • 15 kmOf map saved with every crag, footpaths, cliffs and parking included
  • 7Grading systems to filter by, from UK trad to bouldering
  • 176Automated tests passing at the last full review
01

Why I built it

I live in the Peak District, and climbing is one of the things I love doing most. Climbers find their routes with topos: a photo or drawing of the rock with each climb marked on it, its grade, its length and a description. They’re in guidebooks, on websites and in apps, and they all share one problem. The crags are where phones don’t work.

So I wanted an app that’s calm and simple, works with no signal at all, and makes it easy for anyone to draw a topo of their own crag. Not a social network or a video app: a quick way to make and use topos.

The core screen is the topo. The core action is filtering routes. The core promise is reliability at the crag.

The TopoLine brief, June 2026

The brief kept the app to one simple structure, crag, sector, topo, route, “no deeper”, and set the tone in one line: create your own crags, draw your route lines, filter by grade, use it at the crag. “No signal, no clutter, no faff.”

Climbers’ feedback sharpened it. Finding the climb matters as much as the climb itself, “not just the bottoms but sometimes for sea cliffs, the abseil points above”. So TopoLine grew directions from the car park, map pins for parking, abseil points and descents, and maps that work offline.

02

A new route: I’m Lemon Barnaby

Mark’s first new route came in September 2026, at Faraid Head, a headland of dunes and sea cliffs near Durness on the north coast of Sutherland, climbed with the mountaineer Mick Fowler and George Bell. It’s called I’m Lemon Barnaby, and it’s in the UKClimbing logbook and the Scottish Mountaineering Club’s database of Scottish climbs.

On the same trip Mark made a Durness crag in TopoLine from a phone photo of the cliffs: the app doing exactly what it was built for.

Looking down a dark sea cliff at Faraid Head: a climber in a red jacket halfway up a steep slab, the sea breaking on the rocks far below
A climber in a red jacket on a sea cliff above a rough blue sea, with the green headland and the hills of Sutherland beyond
Three climbers on the cliff: one in red at the top, one halfway up the face and one at its foot by the sea

I’m Lemon Barnaby at Faraid Head, September 2026.

03

Designed, not just generated

AI wrote the code, but the experience was designed. The look started from a detailed design hand-off: colours named after the rock (chalk, limestone, slate, moss, rust and a Route Red), three typefaces, and screen-by-screen specifications. Mark is working on the design in Figma too, still a work in progress, and the logo is Mark’s own: a faceted grey boulder with a red route line up it.

Then came the details only a climber would ask for. A few of Mark’s requests, and what they became:

  1. Mark · June

    Select a route by tapping or clicking on the line of the route itself, not just the number at the top. … Zoomed in, you won’t see the top number.

  2. What changed

    Every line is something you can tap, at any zoom, and the list scrolls to match.

  3. Mark · June

    It needs to zoom like Google Maps when you click the plus. … It zooms into the centre of what you’re looking at. … No black screen.

  4. What changed

    The buttons zoom on the centre of the screen, up to eight times, and you can’t pan off the edge of the photo.

  5. Mark · June

    Not enough screen given to the image: it really needs to cover about 70% of the height. … It would be nice if this edit screen mirrored the topo screen.

  6. What changed

    The phone editor became the topo viewer with extra buttons.

  7. Mark · July

    Let’s plan this first using wireframes, before building. … I’d rather have the line between the route information and the photo above draggable, whilst keeping the same zoom level, … a short light grey line indicating it is draggable, like Facebook does.

  8. What changed

    Four wireframes, agreed before any code. Then a draggable divider that keeps the zoom, made silky smooth when the first version felt a little jagged.

  9. Mark · July

    User feedback says that we need more detailed maps, including footpaths.

  10. What changed

    Bold footpaths, cliffs, woods and fields on every map, and contours and hill shading for the whole of Great Britain.

Mark’s messages from the build, with typing slips tidied.

Three phone wireframes side by side: the topo viewer with three coloured route lines and a grey grab bar above the route list; the same screen in edit mode, drawing a new route as a dotted blue line; and the crag screen in edit mode, with sectors, a use my location button and a switch to publish to the shared map

Three of the four wireframes agreed before the phone editor was built, July 2026. The fourth is the upload queue.

The TopoLine logomark: a faceted grey boulder with a red route line of dots and dashes up its face

The logomark

A boulder and a route line, in Route Red.

The TopoLine app icon on black

The app icon

On a dark phone screen.

The TopoLine app icon on an off-white background

And on a light one

Chalk, the app’s off-white.

04

The topo screen

Everything else in the app serves this screen. The photo fills it, with each route drawn on as a numbered line in its grade colour. The colours are automatic and can’t be changed, because a colour picker would make a rainbow that means nothing:

  • Up to Severe
  • Up to HVS
  • Up to E3
  • Up to E6
  • Harder
  • No grade yet

Pinch to zoom up to eight times: the numbers and markers stay the same size, so they never cover the rock. Filter by type of climb and “up to grade” in seven grading systems. Tap a route and its details open under it in the list: the description, a photo of where it starts (“am I on the right line?”), and buttons to tick it or mark it as a project. Topos can also carry abseil stations, notes, arrows and belay stances.

1 2 3 Aabseil x 0.50 · y 0.54 x 0.50 · y 0.90

How a line is drawn. Each route is a handful of points, saved as fractions of the photo’s width and height, with a smooth curve drawn through them.

The lines are never burned into the photo. Each one is a list of points, saved as fractions of the photo’s width and height, and drawn over it as a smooth curve (a Catmull-Rom spline, turned into Bézier curves). So lines stay sharp at any zoom, wide panoramas work, and a photo can be replaced, or a line nudged, years later.

The topo viewer on a computer, June 2026: a tall limestone crag with four routes drawn on in green, blue and black, numbered at the top, an abseil station marked A with an arrow, and the route list with grades and filters on the right

The topo viewer on a computer

From TopoLine’s own screenshots, June 2026: routes in their grade colours, an abseil station, and the list and filters beside the photo.

  • Topo
  • Website
05

Draw a topo, on a computer or a phone

On a computer, My Crags is a studio for making topos. Press the orange Draw route button, click up the line from the ground, double-click to finish, then drag the white handles to shape it. A small “+” sits on the curve between handles: drag it to add a bend. Drag the routes into order from left to right and the numbers follow; set the grade and the colour follows.

Before anything is published, a checklist makes sure the photo is uploaded, every route has a line and a grade, and the topo has a location. The person publishing confirms the photo is theirs to share.

Mark was clear from early on that the phone matters most:

A lot of people will not use or even own a computer, so the phone has to be the way that all crags can be edited.

Mark Pollak, July 2026

So a whole crag can be made on a phone, at the crag, with no signal: details, location (“use my current location” works offline), photos from the camera at full quality, sectors, topos and lines, tapped on with a finger. Back in signal, it uploads itself: the words first, then the photos one at a time, with a progress bar. If the signal drops, it carries on where it stopped and never makes a copy twice, and there’s always a Stop, Retry or Delete button, never an endless spinner.

The topo editor in My Crags: an orange Draw route button and an Annotation button above a crag photo with green route lines and white handles, labels for a descent, an abseil station and a first pitch with arrows, and on the right the route list to drag into order and a publish checklist

The topo editor

Lines, handles, labels and arrows, the route list to drag into order, and the publish checklist.

  • My Crags
06

No signal, no problem

One tap on Save downloads a whole crag to the phone. After that it opens straight from the phone, instantly, and quietly checks for changes when there’s a signal. The brief was firm about it: a saved crag must open with no signal, without asking for a login or checking a subscription.

  • Every topo, with its photos at full resolution
  • A photo of where each route starts
  • A 15 km map around the crag: footpaths, cliffs, parking and landmarks
  • A blue “you are here” dot with an arrow for the way you’re facing, from the phone’s GPS, which works without a signal
  • Ticks and reports made offline, sent by themselves later
  • Pro members get 28 days between check-ins, and crags you made yourself never expire
A crag map on a phone labelled Offline map, GPS live: a river valley with footpaths, the blue you are here dot, pins for High Tor, Original Route Area, Upper Tier and Fang Buttress, and a Parking pin

The offline crag map

Parking, crag pins and your position, from TopoLine’s own screenshots.

  • Offline
  • GPS
TopoLine’s map of northern England on a phone, with hill shading, red crag markers and filters for type, rating and vetted crags

The map, on a phone

Filters for type of climbing, rating and vetted crags.

  • Map
07

Maps of its own

Maps were the biggest journey. Google Maps was priced up and ruled out on cost on day one. The first maps came from hosted services; by July, TopoLine was drawing its own, from OpenStreetMap data for the whole planet, about 65 GB of it on a disk of its own, with no charge per map tile and no keys to manage.

After feedback from climbers, the maps were restyled the way walkers’ maps are: bold footpaths and bridleways, cliffs as strong dark lines, woods, fields and scree, peaks, parking and campsites. For Great Britain there are 10-metre contours and hill shading, made from Ordnance Survey’s free height data. The same style is used on the website and in the app, so a crag looks the same on both.

TopoLine’s map in June 2026: a standard street map of the UK and Ireland in pale colours, with a single crag pin in the Peak District

June: a hosted street map

Fine for cities, not much use on a hillside.

  • Before
08

Free to make, Pro to roam

Creating is free and unlimited for everyone, and so is browsing the website, because the topos are what makes the app worth having. What Pro pays for is having every crag offline on your phone. People who make crags keep them free on the app for life. In Mark’s words: “this is to reward owners and uploaders.”

Payments are built two ways: Stripe on the website, and Google Play and App Store billing in the app, through RevenueCat. Both write to the same account, and whichever subscription runs longest wins. Both are still in test mode.

I want to use Apple App Store and Google Play’s inbuilt billing system to collect payments … and also so I can put upgrade links in the app.

Mark Pollak, July 2026
PlanWhat you get
No accountRead everything on the website, with a gentle prompt to make a free account
FreeUnlimited creating and browsing. On the phone: your own crags for life, the featured crag of the week, and three crags of your choice
TrialSeven days of Pro, starting when you confirm your email address. No card needed
ProEvery crag offline, the whole map in your pocket, and 28 days between check-ins
09

Under the bonnet

TopoLine is three things that share one server: the public website, the My Crags studio, and the Android app. The app’s JavaScript updates over the air, so most fixes reach the phone without a new build.

For location, the app uses the phone’s GPS for the dot and the way you’re facing, and the website the browser’s own location. Parking and access points can also carry a what3words address. Offline, the app keeps its own small database and folders on the phone for the saved crags, photos, map tiles and anything made at the crag, waiting to upload.

PartBuilt with
Website and My CragsReact 18 and TypeScript, built with Vite; maps with MapLibre GL JS; hand-written CSS, no framework
Android appExpo SDK 54 and React Native 0.81; MapLibre for maps; Expo Location for GPS; SQLite and the file system for offline; React Native SVG, Gesture Handler and Reanimated for drawing and zooming
ServerPython 3.11 with FastAPI, SQLite, secure sign-in tokens, and Pillow for photos up to 24 megapixels
MapsOpenStreetMap data from Protomaps, served from its own map files; contours and hill shading made from Ordnance Survey Terrain 50 with GDAL and tippecanoe
HostingA DigitalOcean server running Docker behind a Cloudflare Tunnel; photos in Amazon S3 in London, backed up nightly to Cloudflare R2
App builds and updatesExpo’s EAS Build and EAS Update
EmailSendGrid, for confirmations, trial reminders and password resets
PaymentsStripe on the web; RevenueCat for Google Play and the App Store
Placeswhat3words, and OpenStreetMap’s Nominatim to fill in the country from a map pin
10

Built by AI, checked by AI

Mark set the direction and tested every build on a phone. Claude wrote the code, the documents and the tests and put each change live, over about 30 Claude Code sessions, most of it between 6 June and 7 July 2026. 219 of the 243 saved changes carry Claude’s name. The result is about 32,000 lines: 10,000 for the website, 12,800 for the app, 7,100 for the server and 2,000 of tests.

The rule was that a different session checks the work, often on a different model. Its findings came back, the fixes went in the same day, and each one was written into the project’s notes, so the next session started with everything that had been learned.

  1. 11 JuneA full audit of the code, the experience, the business model, the running costs and the app stores, the day the website went live. Every code issue fixed and checked the same day.
  2. 11 JuneA second, independent audit by a fresh session, checking the first. Its verdict: “B+ engineering, strong product instincts”. Its fixes became the next eight sets of changes.
  3. 12 JuneA security and stability audit, which wrote the first automated tests, run as four kinds of user: an admin, a Pro member, a free member and an attacker.
  4. 12 JuneThe plan for making crags offline on a phone, reviewed by a separate session acting as a senior developer. It found problems in the first two drafts before any code was written.
  5. 2 JulyA full code review: five confirmed bugs and ten smaller issues, all fixed that day.
  6. 6 AugustFive reviewers in parallel, on security, the server, the website, the app and the tests, plus a hands-on walkthrough: 176 tests passing and over 30 earlier findings confirmed fixed.

Code and product review · 6 August 2026

Security
B+
Server
B+
Website
B
Android app
B+
Tests
B−
Product and UX
B+
Running it
B−
Ready for the stores
D

The 6 August review’s scorecard. Its summary: “TopoLine is in genuinely good shape — unusually so for a solo-built product.” The D is what’s left to do before Google Play.

Claude modelSaved changesMostly used for
Claude Fable 5123The rebuild as TopoLine, the June and July features, the reviews
Claude Opus 4.866Phone editing, payments in the app, deep links
Claude Sonnet 517The global map and the first social features
Claude Sonnet 4.613The first day, as a prototype called Atopo
11

On the way to Google Play

The website is live and the Android app runs on Mark’s phone, updating itself over the air. Before it can go on Google Play, there’s a list of jobs the stores rightly insist on:

TopoLine: road to Google PlayUpdated October 2026
4 done · 1 in progress · 6 to do
JobStatus
Website, map and My Crags studio liveDone
Android app in testing, with over-the-air updatesDone
Make and edit whole crags on the phone, offlineDone
Offline maps for every cragDone
Payments on the web and in the app (built, in test mode)In progress
Privacy policy and a support contactTo do
Delete your account, in the app and on the websiteTo do
Terms and policies checked by a solicitorTo do
Real crags on the map in place of test onesTo do
A closed test with a group of climbersTo do
The Google Play listingTo do
An iPhone version comes after that.

Where it’s heading

TopoLine is a work in progress, and that’s the fun of it. Every review came back to the same point: the hard part isn’t features, it’s topos. An app like this is only as good as the crags in it, so the next stage is real crags, drawn by real climbers, starting with boulderers and then route climbers.

On the list after launch: comments and shared ascents, photo galleries for routes, offline mode on the website, and an iPhone app.

Built with

  • Claude Code
  • Figma
  • React
  • TypeScript
  • Vite
  • Expo
  • React Native
  • MapLibre
  • OpenStreetMap
  • Protomaps
  • Ordnance Survey Terrain 50
  • Python
  • FastAPI
  • SQLite
  • DigitalOcean
  • Cloudflare
  • Amazon S3
  • Stripe
  • RevenueCat
  • what3words
  • SendGrid

A personal project, built in the evenings and at weekends. If you have an idea for an app, we’d like to hear about it.

NextThe Extra Place MachineSoftware that watches three bookmakers and a betting exchange at once, and finds the bets that can’t lose much but sometimes win a lot.

Have a project in mind? We would like to hear about it.

  • Book a callThirty minutes on a video call, at a time that suits youBook a call
  • Phone07515 730686
  • Email
  • BasedMatlock, Derbyshire