Thunderdome.dev

Thunderdome.dev is a personal project I created in effort to learn the Go programming langauge and at the same time try out a new frontend anti-framework called Svelte.

The idea for the application came from the Agile exercise known as Poker Planning, my team at work had varying opinions of point values as any diverse team might. This gave me the crazy idea to create the theme in a fun and unique way, as if we were Warriors battling for Points. Inpsiration for the name came from a movie called "Mad Max: Beyond the Thunderdome", and the logo I designed represents the caged battle arena.

While I had dabbled with Go before, this would require some upfront research into the best approach for using WebSockets with Go. I landed on a library from Gorilla, a well regarded set of libraries for Go focusing on web applications. Based on the library's chatroom example I was able to piece together a functioning Battle (room) as Thunderdome calls it, allowing Warriors (users) to join and vote on Plans (stories). At this point all the data was stored in application memory, which at application stop/start would be wiped out. To start storing data in a database, I decided to go with Postgres based on the fact its fast, proven, and not managed by a corporate monster like MySQL.

For the UI I decided to use TailwindCSS library to provide all the styling utility classes, saving the hassle of coming up with my own styles from scratch. Starting with a Svelte boilerplate example I built out the basic UI flow, creating a battle, adding plans, and voting. What I loved most about Svelte was its not the typical Javascript library or framework, instead it compiles the UI application into native Javascript code, which can save a lot of weight when compared to something like React.

Once I had what I considered a Minium Viable Product (MVP) of the application, I setup the public website at Thunderdome.dev and shared it amongst my work peers. We started to use Thunderdome for our teams Poker Planning excercises, which proved to be both fun and helpful by getting actual user feedback. I would keep iterating on the features, improving the existing MVP ones and adding lots of new ones. Eventually the word had spread, teams at other companies started to use the application and some even started providing feedback through Github Issues feature. Today Thunderdome is growing at a steady rate, with users in United States, Germany, Russia, and other countries.

thunderdome.dev Battle Page Screenshot circa 2020