As professionals in the GIS (Geographic Information System) field, we engage with geographical data, spatial analysis, and visualization technologies daily. Recently, I discovered an impressive website called "No Days Off" on HackerNews. Developed by friggeri using 10 years of daily running GPX files, this site functions as a sophisticated "personal running GIS system," showcasing remarkable professionalism and engagement. I'm fascinated by such innovative projects and would like to share its details.
About No Days Off
Website: https://nodaysoff.run/
Technology Stack:
- Frontend: Next.js
- Database: PostgreSQL
- Caching: Redis
- Visualization: Custom SVG components
From a GIS professional perspective, nodaysoff.run
transcends being a mere data display page. It comprehensively embodies the core processes of a GIS system: data acquisition, data processing, data management, spatial analysis, and visualization.
Multi-source Data Acquisition and Integration
The foundation of this system is the author's decade-long accumulation of GPX files. GPX (GPS Exchange Format) is a widely recognized data format in GIS. Based on XML, it records geographic coordinates (longitude/latitude), elevation, timestamps, and other relevant information.
Core Data Source: The author exported all historical running records (GPX files) via Strava's bulk export feature.
Data Enrichment: The developer took it further. Leveraging OpenWeatherMap (weather data API) and OpenCageData (geocoding API), he enriched each running record. This integration means he not only tracks where and how far he runs each day but also knows the specific geographical location names and prevailing weather conditions—exemplifying the common GIS practice of fusing diverse data sources and dimensions to gain deeper insights.
Efficient Data Management
Handling a decade's worth of massive data requires efficient management and processing. The "backend + caching" architecture adopted by the author serves as a model for small-scale GIS applications.
Spatial Database: PostgreSQL with the PostGIS extension stores and manages all running data. PostGIS + PostgreSQL excels at processing geographic data like GPX.
Incremental Updates: Integration with Strava's Webhook API enables the system to automatically ingest and update new running data incrementally. This means every new run synchronized to Strava automatically "grows" this GIS system.
Performance Optimization: To ensure frontend responsiveness, pre-calculated statistical data is cached in Redis. This architecture prevents the need for real-time queries against the vast raw database during user interactions, significantly enhancing the user experience.
Conclusion
This seemingly simple tech stack perfectly supports the requirements of a personal GIS project. Building a GIS application doesn't necessarily demand large, expensive commercial software. Through open-source technologies and clear GIS methodologies, equally powerful and highly personalized products can be created, especially with AI advancements today.
Beyond the technical GIS achievement, the runner's decade-long discipline—spanning seven continents—is genuinely impressive. Here's a suggestion for field GIS and surveying professionals: imagine the impact of visualizing and managing all the locations documented through your rigorous fieldwork over the years!
Reference: