The first version of the climb form had a required date picker, prefilled to today. It seemed obvious. You log a climb, the climb happened on a day, the app records the day.
Then I tried to enter my own history and stalled on the third peak. I knew I climbed it. I knew roughly the summer. I had no idea of the date, and the form would not let me continue without inventing one.
A required field that produces bad data
A required date does not give you more information. It gives you a guess, stored with the same confidence as a fact. Once a made-up date is in the log it is indistinguishable from a real one, and every stat built on top of it inherits the fiction.
So in Summit, the date is optional. Log the peak, skip the date, move on. The climb still counts toward your challenge progress, still lights up its region on the globe, still appears in your stats.
Undated climbs are a real category
Because undated entries exist by design rather than by accident, the log lets you filter between dated and undated climbs. That turns the gap into something useful: a worklist. If you ever want to go back through old photos and pin down when a climb actually happened, you can see exactly which entries are waiting.
The general rule I keep coming back to: if the honest answer is "I don't know," the app should have somewhere to put that. Forcing a value is not rigor. It is just data loss with extra steps.
Half a million mountains, zero network calls
Peak search could have been an API call. Shipping 50 MB of SQLite instead made the feature work in the one place it matters most.
Denali counts twice
Two famous climbing lists overlap by exactly one mountain, and there are two competing versions of one of them. The catalog has 57 entries for a reason.
A globe made of triangles, not textures
The easy way to build a 3D globe is to wrap a picture of the Earth around a sphere. That approach falls apart the moment you want a country to light up.