← dani vilanova / projects / 100cims
archived · jun 2025

100/CIMS

A companion for Catalonia's 100 Cims challenge: 522 catalogued peaks, no time limit. Built with Roger Veciana in 15 days, entirely with AI tools.

built in
15 days
peaks
522
geomob bcn
best speaker ★
§01

why

motivation

The 100 Cims is a real challenge run by the FEEC: climb 522 catalogued summits across Catalonia, at your own pace, for as long as it takes. People track it on paper, in spreadsheets, in their heads.

We wanted to find out something else at the same time: how far you could get building a real product with AI tools and nothing else. Not a demo. Auth, a database, file uploads, maps, a community. The hiking challenge was the excuse. The experiment was the point.

§02

how it was made

the experiment

Fifteen days from concept to a production ready MVP, written almost entirely by prompting. My first site built this way end to end.

The part worth defending on its own merits is the data. The peak catalog is not typed in by hand: it syncs itself from Wikidata over SPARQL, with elevation, coordinates, mountain range, country and images. Then a separate job walks every summit and precomputes its five nearest neighbours with the Haversine formula, writing the result to the database instead of working it out on every request.

“A case-study in the pros and cons of this new style of development.”

Geomob, on the talk · 12 jun 2025
§03

stack

what it ran on
built with
Lovable · Windsurf, the prompting end of it
frontend
React 18 · TypeScript · Vite · shadcn/ui · Tailwind
maps
MapLibre GL · MapTiler · elevation profiles from GPX
backend
Supabase: Postgres, auth, edge functions
media
Cloudinary, for peak photography and GPX uploads
data
Wikidata over SPARQL · Haversine nearest-peak precompute
hosting
Netlify
languages
Catalan · Spanish · English, translated with AI
§04

the app itself

screens
100cims / explore
The catalog. All 520 summits with altitude, range and difficulty, filterable by any of them. Every photograph arrived with the Wikidata sync.
The catalog. All 520 summits with altitude, range and difficulty, filterable by any of them. Every photograph arrived with the Wikidata sync.
100cims / peak detail
One summit. Log an ascent, upload a GPX track, read the route. Underneath sit the key figures and the nearest peaks, both precomputed.
One summit. Log an ascent, upload a GPX track, read the route. Underneath sit the key figures and the nearest peaks, both precomputed.
100-cims.cat
The home page, while the site was up. Photo: Geomob.
The home page, while the site was up. Photo: Geomob.
§05

geomob barcelona

12 jun 2025

We closed the night at Geomob Barcelona, four speakers in, and the talk took the SplashMaps best speaker prize. The honest half was the part people remembered: this approach is great for a V1, and what happens to it over years is an open question.

geomob bcn / the talk
Roger and me, closing the night. Photo: Geomob.
Roger and me, closing the night. Photo: Geomob.
slide / the stack
Every tool, on one slide. Photo: Geomob.
Every tool, on one slide. Photo: Geomob.
slide / zero to mvp
15 days, 522 peaks, a full platform. Photo: Geomob.
15 days, 522 peaks, a full platform. Photo: Geomob.
§06

links

what is public
§07

where it is now

archived

100-cims.cat no longer resolves and the Supabase project is gone. What is left sits in the repo: the 522 peaks, the precomputed neighbours, and 439 summit photographs still in Cloudinary. Enough to bring it back in an afternoon, if it earns one.

Which is, in its way, the honest ending to the experiment: fifteen days to build, and the maintenance question answered by not answering it.