A static website listing local running events in the Freiburg region.
- freiburg.run uses the Bulma CSS Framework, with some custom modifications
- target is to perfectly usable both on mobile and big screen devices
- maps are implemented with Leaflet
- Event detail pages with:
- Base event data: Description, links, tags
- Highlighting of registration link
- Highlighting of international/non-German events
- Map showing event location
- listing of all previous and next iterations of the event
- Event list pages with:
- Dynamic filtering/search by name, location, run track length
- Map sbhowing all events of the list
- Calendar support (for Google Calendar + .ics)
- Special parkrun page (showing data for the local Dietenbach parkrun)
- the software itself is a custom static site generator
- input data is stored in a Google Sheets table (format is documented in SHEETS-FORMAT.md)
- output is static html files
- programming language: go
- I manually organize all data in a Google Spreadsheet
- There are pages for running events (by year), running groups, shops, the local parkrun, and special pages listing tags & running series
- I use a color coding scheme to highlight complete & missing information: green = event is done & there is already a version for the next year, yellow = event is incomplete, e.g. registration link is missing, I need to revisit it later. This allows me to quickly identify events that need to be updated.
- Using Google Spreadsheets allows me to completely ignore the "admin interface" part, because I can just use Google's apps to manage the data.
- On my server (hosted at Uberspace), a cronjob is running every 30min, that calls a custom Golang app (
cmd/generate/main.go) to- download the spreadsheet,
- extract all data,
- produce static HTML pages using Golang's HTML templates, and
- deploy everything to https://freiburg.run
Of course you can fork the repository to create a version for your city, but be warned: Everything is tailored towards this very special workflow, the code is not built for customizability (e.g. the freiburg.run domain name is hardcoded). Feel free to contact me, if you have such plans...