Crag Topo
An offline-first climbing guidebook app for iOS. A drop-in replacement for Rockfax, built for the place people actually use a guidebook: at the bottom of a crag, with one bar of signal, wearing gloves.
:::note Where this documentation lives
These pages are MDX files in docs/
in the repository, rendered by the Docusaurus site in apps/docs. They are edited in the same
pull request as the code they describe — see Documentation standards.
:::
The shape of the thing
Screens never read the network. They read SQLite. Sync is a background concern that may fail all day without a single screen breaking. That single decision shapes most of the architecture — see Offline-first.
The data model in one sentence
A crag is a place you go climbing; it contains sectors; a sector holds photos and routes; a route line draws a route onto a photo.
The full version, with every column and the reasoning behind the awkward parts, is in Data model.
Where to go next
| If you want to | Read |
|---|---|
| Understand what we are building and why | Product overview |
| See what is planned, and in what order | Roadmap |
| See what is not planned but wanted | Wishlist |
| Know why a technical choice was made | Decision log |
| Get the repo running | Getting started |
| Understand PR previews | CI/CD and previews |
| Look up a climbing term | Glossary |
The two rules
- Documentation changes in the same PR as the code. Not afterwards.
- Architecture decisions get confirmed with @mattmoran56 before they are written down. The log has no status column — a record is a decision we have made — so the asking happens first. See the decision log.
Both are written up properly in
CLAUDE.md at the repo root.