CYCLING COMMONS

De kaart die in ieders hoofd zit, en nergens anders

Fietskennis is versnipperd over een tiental gesloten apps. Cycling Commons brengt hem samen op één open plek, en zorgt dat niemand hem later weer kan afsluiten.

Cycling Commons homepage - de open atlas voor fietskennis

Van iedereen

Open data, vrij te gebruiken - ook door commerciële apps.

Gekozen door renners

Zij stemmen wat het beste rijden is in hun regio.

Over plekken, nooit over personen

Het brengt de wereld in kaart, niet de renner.

Elke renner heeft zo'n kaart in je hoofd. Daar blijft hij ook. Cycling Commons is de plek waar die kennis wél blijft bestaan: één open atlas van het beste fietsen ter wereld, gebouwd door renners, gratis voor iedereen.

Het probleem: alles staat ergens anders

Beklimmingen zitten in de ene app. Aanbevolen routes in de andere. Waar je kunt slapen in een derde. Wegdek en wegwerkzaamheden nergens. Wat een renner aan de ene app toevoegt, blijft daar opgesloten, dus iedereen plakt een tiental tools aan elkaar en de gegevens sluiten nooit op elkaar aan.

OpenStreetMap is wel open, maar ruw, en dun op precies de fietslagen die ertoe doen. Een fontein staat er soms in. Of hij in juli werkt, staat er niet in. Welke van de vier klimmen in de buurt de moeite waard is, al helemaal niet.

De curatielaag is de eigenlijke waarde

Cycling Commons is geen tweede database met open data eroverheen. De waarde zit in de laag erbovenop: renners dragen niet alleen feiten aan, ze cureren, stemmen en houden ze vers. Dat is het fietsoordeel dat ruwe data mist en gesloten apps wegsluiten.

Daarom is het niet zomaar een eindeloze lijst, maar een antwoord op de vraag die een renner echt stelt: wat is hier het mooiste rijden? Kom je ergens nieuw aan, dan zie je waar de renners daar dit seizoen op hebben gestemd. Voor nutsdata zoals waterpunten mikken we juist wél op volledige dekking - daar wil je alles.

Over de wereld, nooit over jou

Eén principe staat niet ter discussie: de Commons is de kaart, niet de renner. Alles in de dataset gaat over de wereld. Je identiteit, je geschiedenis, je hartslag, je bewegingen - die komen er niet in. Niet geanonimiseerd, niet met toestemming, niet later. Ze worden simpelweg nooit verzameld.

De kaart is openbaar. De persoon niet.

Hoe het groeit, en open blijft

Je ziet iets wat alleen iemand ter plekke kan weten - een kraan, een afsluiting, een uitzicht - en je voegt het toe, bevestigt het of stemt erop. Met Scout is dat één tik op je stuur, midden in je rit. Elke renner, en elke app die op de open data bouwt, krijgt er een betere kaart voor terug.

Het is een commons met bestuur, gebaseerd op het werk van Elinor Ostrom, zodat niemand het later kan afsluiten - ook de mensen die het begonnen niet. Duurzame feiten gaan terug naar hun bron, te beginnen bij OpenStreetMap.

Achter de schermen

Voor wie wil weten waar het op draait, hoe het bestuurd wordt en wat erin zit.

Broncode op GitHub →

Technische architectuur

  • Symfony op nginx en PHP-FPM - server-rendered site plus JSON API
  • PostgreSQL met PostGIS - geospatiale opslag voor klims, waterpunten en routes
  • Python/FastAPI geodata-pipeline, Valhalla routing en MapLibre vectorkaarten
  • Gebouwd op OpenStreetMap - duurzame feiten gaan terug naar OSM en naar elke andere externe bron waar dat kan
  • Terraform en Ansible - elke server vastgelegd in code, niets met de hand ingesteld

Governance en licenties

  • Open data onder ODbL - bevragen, exporteren en erop bouwen mag, ook commercieel
  • Code onder AGPL v3 - vrije software: draaien, bestuderen, aanpassen en forken mag, ook commercieel
  • Media onder CC BY-SA 4.0 - foto's en video delen en aanpassen mag, ook commercieel, met naamsvermelding en onder dezelfde licentie
  • Bestuurd als commons, op de principes van Ostrom - ontworpen om niet later afgesloten te worden

Wat er in de atlas zit

  • Praktisch: wegdek, waterpunten, fietsservice, gevaren, schuilplaatsen en treinstations
  • Beleving: beklimmingen, uitzichten, erfgoed, aanbevolen routes en fietsvriendelijk slapen
  • Curatie in plaats van overload - renners stemmen per regio op het beste rijden
  • Nooit persoonlijke data - de Commons brengt de wereld in kaart, niet de renner

Bouwstraat en kwaliteitspoorten

  • Meerdere workflows in GitHub Actions - app, pipeline, tools, wiki en credits worden elk apart getest
  • PHP: PHPUnit, PHPStan, Psalm, PHP-CS-Fixer en Rector. Python: pytest en Ruff. Node: de ingebouwde testrunner
  • Gitleaks draait bij elke push en bij elke lokale commit - er komt geen secret in de historie
  • REUSE-lint, SPDX-headers, licentie- en vertaalcontroles blokkeren de merge als er iets ontbreekt

De fontein die je hete juli redde. De klim die het extra uur waard was. De achterweg die altijd leeg blijkt.