Spitsvogel: Catching Trains Made Simple 🚆
December 23, 2024
Spitsvogel is a simple yet handy app I developed to answer one pressing question: how much time do I have left to catch my train?
The app was built using React for the core functionality and Capacitor.js to handle the mobile-specific aspects. It was a project born out of necessity and curiosity but ultimately shelved due to some frustrating hurdles.
The Vision 🕒
The vision was that I have had many times that I was standing in the rain while my train already was delayed 15 minutes so I could have waited at home.
The app aimed to:
- Display upcoming train departures 🚉
- Calculate the time left until your train leaves ⏳
- Work seamlessly on mobile devices 📱
The Technology 🚀
Spitsvogel was built with a focus on simplicity and speed. Here’s the tech stack:
- React: For creating the app’s dynamic and interactive UI.
- Capacitor.js: To handle mobile compatibility and ensure the app could run smoothly on iOS and Android devices.
- NS API: The Dutch National Railways API provided the train schedule data.
The Frustrations 😤
While the app worked well in its early stages, one major roadblock brought the project to a halt: the NS API.
-
Limited Historical and Future Data: The NS API doesn’t allow you to look far into the future or explore past train schedules. This limitation made it impossible to implement features like planning trips days ahead or reviewing past journeys.
-
Strict Rate Limits: The API imposed tight restrictions on the number of requests you could make in a given timeframe. For an app designed to provide real-time updates, this was a significant bottleneck.
Lessons Learned 🧠
Despite the challenges, Spitsvogel taught me valuable lessons:
-
APIs Matter: Choosing the right API can make or break a project. The NS API’s limitations highlighted the importance of thoroughly evaluating third-party services before committing to them.
-
Focus on MVP: Building a Minimum Viable Product (MVP) allowed me to test the concept quickly without overcommitting resources.
-
Know When to Stop: Sometimes, the hurdles outweigh the benefits, and it’s okay to let go of a project.
Download Spitsvogel 📲
If you’d like to test Spitsvogel yourself, you can download the Android APK below. Please note that this is not a finished product—it’s just a fun experiment to play around with:
What’s Next? 🌟
Although I’ve decided to sunset Spitsvogel, the concept still excites me. With better API support or an alternative data source, I might revisit the idea in the future. For now, Spitsvogel remains a reminder of the joys and frustrations of app development.
Building Spitsvogel was a journey filled with excitement, learning, and a fair share of challenges. It’s a project I’m proud of, even if it didn’t reach its full potential. Have you ever faced similar roadblocks in your projects? Let me know—I’d love to hear your stories! 🌍