Some time ago we got a foosball table in our office. Like the competitive folks we are we wanted to keep track of our progress and compare against each other - so we started a Google Sheet. But spreadsheets are kinda tedious, so I created a simple app for tracking player progress and match statistics: Hilde.

What is Hilde?

TL;DR: Check out the repository and/or the demo.

Hilde is a simple app to keep track of played matches and player progress for any game that's similar to foosball (like air hockey, chess, ...). It provides a very sleek and simple interface for adding new matches and keeps track of statistics automatically.

It provides features like:

  • Simple, intuitive interface
  • Elo rating for each team
  • Seasons (manageable via admin interface)
  • Detailed team statistics (win streaks, winrate, elo history chart, ...)
  • Achievements (e.g. "Win 100 Matches", "Win 10 Matches in a row", ...)
  • Compare teams against each other
  • Teams of any size, simply separated by a comma in the team name
  • Light/Dark theme
  • Match comments
  • Leaderboards
  • Optional: Deployable for free with Vercel & Planetscale
  • Optional: Fully dockerized

Hilde was developed with teams in mind; everyone can add or delete games. The only thing that has been put behind a login is an admin interface in order to manage seasons and some future things that really shouldn't be public (like exporting/importing games and so on, manually granting achievements, and more).

We're using Hilde since April 2022 and have tracked more than 1000 matches - and recently started with season 2. What started as a fun little weekend project has ultimately gotten a valuable addition to our daily office life - kinda like having a new (and cool!) workmate.

Tech Stack

Since its beginning, I used Hilde to try out and play around with technologies I don't use on a daily basis in my office job. As of today, the stack is basically a T3 stack with:

Additionally, Hilde is fully dockerized so that you can set it up in just a few clicks (or commands).

The nature of being a playground can be seen if you look through the git history; some things might not look as polished as I'd like them to be due to using these things for the first time, and many things have been heavily refactored multiple times, etc.

Fun fact: I even have a nearly complete Remix version of Hilde because I wanted to try out Remix.

Many things that might look weird at first glance (like still having a dependency to sqlite3) are the result of combining the playground nature of the project while being completely backward compatible so that my colleagues don't kill me for messing up their statistics.

Playing around with new stuff has always been fun to me - and especially in web development things are moving so rapidly that there were probably two new major JS frameworks released while I've written this post. Gladly I've got Hilde to try them out now!

How to get started?

Hilde is open source, MIT licensed (meaning you can do basically whatever you want with it), and is hosted (and actively developed) on GitHub. There you'll find a comprehensive readme that should tell you everything you might want to know on how to set it up.

If you like Hilde feel free to star the repository or even contribute to it - PRs are highly appreciated!