Why This Exists
A few years back, I went to a track meet to watch my old college team compete. I tried timing some runners with my phone's stopwatch, wanting to see how the team had progressed since I was on it.
I was trying to time 3 multiple people and ended up spending the entire time focused on how to make my mess of a timer work instead of actually watching the race and taking split on the side. I lost track of whose splits were whose and what each split was supposed to indicate/record (ex. I took a split when they passed/were passed key people, or when they fell, as well as their laps and 200m splits). At the end, I was never really sure of whose splits were whose and felt like I wasted my time and effort. I did it for a couple other races with similarly poor results. I looked at other people at the meet, and they seemed to simply introduce more people, and have each person time a single person/relay.
The experience stuck with me. Handling multiple timers gracefully seemed like something some timing company or even a couple junior developers would have solved it already. More importantly, I'd only tried timing a couple races out of an entire meet.
Coaches and athletes deal with this constantly while trying to focus on what actually matters which is supporting their team, cheering at the right moments, giving real-time feedback. It seemed ridiculous that such a basic need was forcing people to choose between getting useful data and being present for their athletes. It was also frustrating that companies are out there building extravagant tools requiring very complex code, and yet solutions to my problem are still common. So while I was watching TV I'd idly sketch out some ideas of what one might look like.
But, then COVID-19 lockdown happened about 10 months later and I had a lot of time on my hands. So I decided to try building my own. I built it in ~3 weeks, working on it while I watched TV after work. It had no polish whatsoever, but it worked. I posted it to Reddit, and got some really helpful objective and functional feedback. Within a couple weeks I had about a couple hundred weekly users. I thought they would all eventually forget about it, but the numbers slowly creeped up, despite me not posting more about it.
I would use it periodically myself when I needed it. But I thought it was interesting that apparently other folks do too. This kept me thinking about it every few weeks. I would think of how I could have done a better job.
Over the course of a few months I came up with features it could use until I had a nice laundry list of new features to add that seemed worthwhile. Then I figured out how I would need to build it so I could continue adding stuff to it in the future. This is important because I wanted it to be local-first. Since with local-first apps you can't restructure the data on your own between upgrades, I knew I had to get the fundamentals of it exactly right ahead of time. Once I had that, I knew I was ready to build version 2.
This is that Version 2. Same fundamental idea as the first, but rebuilt to be more reliable, easier to use, and easier for me to work on.