The history of Whisthub

If you're reading this, then you probably already know that Whisthub is a website where you can play card games such as Colour Whist, Manille and Hearts online with your friends, other players or against computer players. It was officially launched in December 2019 as a website for playing Colour Whist online, but its history actually goes way back. In this blog post I want to give an overview of how the website got to where it is now. Buckle up!

2010: The idea

I learned to play cards in 2010 at the age of 17 when I was in the last year of high school. Everyday we would play a few games of Kleurenwiezen - called Colour Whist in English - after lunch and we've played for hours and hours in the bus during the school trip to Italy. I still have the scores that I archived in Excel sheets up to this day.

The results of a game of Kleurenwiezen played on April 1st, 2010
The results of a game of Kleurenwiezen played on April 1st, 2010

Unfortunately, I planned on going to a different university than most of my friends and thus gone would be the hours of playing cards. As I already had some experience with programming in PHP at that time, my good friend William jokingly suggested that I should make a website where we could continue to play. That actually isn't the worst idea, I thought.

2011: The first prototypes

During my first year at Ghent university, I worked on an initial prototype. It wasn't really meant to become something, I just wanted a project that could help me get bettter at programming and card games are perfect little projects for this. They are not too complex to build, but you come into contact with all facets of programming: you have to write the core game logic, an interface that is easy to use and then the server code to glue it all together and make it possible to play multiplayer games. If you want to get into programming or web development in particular, I really recommend writing a version of your favourite card game!

I also made a few new friends that I got to play cards with. As we were students, time was on our side and we had several nights where we almost played until dawn. Most of the time we were playing Kleurenwiezen, but if we were only three, then we would would play Hearts with three players. This is a version where 2 is removed from the deck and then everyone receives 17 cards. Ironically this version is not available on Whisthub. It was however my first encounter with Hearts.

After two years I had a version that was more or less working. It was horribly written and mainly consisted out of a bunch of PHP spaghetti code, but it worked. It was however never more than that: just a thing that I had fun building, but nothing meant for the general public. It did land me a well paying student job in the summer of 2012 though!

I did some research and found the old code, and to my big surprise and joy, I was able to get it running again! So behold, below is what the initial prototype of Whisthub looked like. As you can see, a lot of the core principles have remained the same! For example, the list with possible bids is not just a flat list, but a list with sublists instead so that bids of the same type are grouped together, much like how it works today.

Picture of the initial prototype
Initial prototype of what was then called "W"

2015: The origin of the name Whisthub

In 2015 I graduated from Ghent University. Even though my major was civil engineering and not computer science, my master's thesis was actually a combination of both: I had written a calculation program for composite concrete and steel beams. I had great fun writing that program, but after graduating, I fell in a black hole and that's why I took the card game project that was just named "W" at the time back on.

Over the years my favourite programming language had changed from PHP to JavaScript, so I decided to start from scratch, but this time in JavaScript. With the advent of node.js in 2011, I could also use JavaScript on the server, and this made it way easier to reuse code between the client and the server. Up to this day, Whisthub is still fully written in JavaScript.

This is also the time where I came up with the name Whisthub. During university I got to know GitHub, which is a platform for software development and version control. I love that website so much that the name Whisthub is a reference to it. GitHub still plays a fundamental role in the development of Whisthub as it's where the code is stored and all bugs and other issues are tracked.

Apart from the name, another difference with the initial prototype was that I now actually intended to launch the website for the public. I had my first job and was making my own money, so I registered the domain I knew however that immediately after launching the site, there would be an insufficient number of players to easily fill a table of four. I realized that adding an AI would be an absolute necessity.

After creating a basic working version in JavaScript, I decided to tackle the daunting task of writing an AI for playing Kleurenwiezen. I had absolutely no experience with this, so it was a pretty big swing. I tried an approach with Monte Carlo simulations in combination with exact calculations of probabilities, but honestly I didn't know what I was doing and it led to nowhere. Eventually I got so stuck and frustrated with the AI that I lost interest in the project.

Screenshot of the initial version of Whisthub in 2016

2019: Finally, the launch

In the summer of 2019 I gained interest in Whisthub again. I had learned about a new client side framework called Vue.js and was eager to try it out. As I mentioned before, a card game is an ideal project to try new things out, so that's what I did.

The use of Vue.js made working on the user interface so easy that soon I had migrated the entire interface to it. I could now focus again on what was still blocking the road: the AI.

Having learned from the previous experience with the AI, I knew that I would have to be pragmatic this time to avoid going down the rabbit hole again. Soon I had a major breakthrough with the AI - which is out of the scope of this post, but I might write about it in the future - and I started testing it with some friends. The results were very promising!

Now that the AI was out of the way, I added a user account system and then designed the general layout of the website which has largely remained unchanged since then: you can immediately start a single player game against the AI and scroll down to reach the lobby where you can create new rooms, join existing ones, or watch ongoing games. As such, in December 2019 I considered Whisthub as officially launched!

2020: The pandemic

During the first weeks of 2020 the user base grew very slowly. As I envisioned it was very hard to find four players. I often ended up playing with one of the very first users, Philip, against two AI players after waiting half an hour for no one to join our room. I will never forget the sheer excitement the first time I saw a room of four people playing.

But then it all changed. In March 2020 the Covid pandemic hit and suddenly people were forced to stay at home. It didn't take long for Whisthub to be flooded by thousands of players looking for some fun and distraction to fill their evening.

More than 408 playing rooms
May 1, 2020: more than 408 playing rooms!

Obviously I never envisioned this and the website was definitely not prepared for it. During the first weeks of the pandemic I did some extreme programming under high pressure, often deep into the night, to mitigate the server crashes and add functionality to handle the sheer amount of players. For example, the possibility to protect your room with a password was something I worked on deep into the night during the first days of the pandemic. It's also during this time that I developed the reputation system, which is still a fundamental concept on Whisthub.

It was a stressful period, but of course also very exciting. Whisthub was suddenly featured on tv, on the radio and in the newspapers as a way for people to fill their time in the pandemic. Who could have thought that this silly little card game project of mine one day would help thousands of people to stay in touch and have fun during one of the most absurd periods in recent history. It truly was something.

The birth of a company

Before 2020, the website was just a hobby project meant for learning and experimenting. However, during the pandemic I received a lot of emails of people thanking me for putting this online and asking how they could support Whisthub. I hadn't really thought of ways to monetize Whisthub, but it was clear that it could be done. Obviously there were costs that I had to cover, but as I had already been working on Whisthub for 10 years, I was also hoping that maybe one day I could earn a living from it.

However, I realized it would be a long road, especially because I didn't want to put ads on the website. Let's be honest: everyone hates them, but they are often the easiest way to monetize a website. Still, I didn't want to use them as it felt like I would be harming my own child. As such I decided that a freemium model would be the solution: keep the website free for occasional players - especially important during the pandemic! - and offer additional features for a small contribution, colloquially known as Whisthub premium.

And so on May 6th, Whisthub BV was officially founded, shortly after which I launched the premium subscriptions. Admittedly, the functionality within the premium subscription was rather limited in the beginning. You could change the appearance of your cards, change the rules in a room and limit room access to premium players, but that was about it. Most of the initial subscribers hence mainly did it out of sympathy and to support the further development of Whisthub.

That all changed in December 2020 with the launch of tournaments. The first tournament, the Whistcup was a tremendous success with 128 players competing for the crown in the days between Christmas and New Year's Eve. It felt so good to be able to leave the dreaded year 2020 behind like this.

2021: Expanding

One constant during the pandemic was the amount of emails I received. People were thankful that Whisthub existed, but it was only possible to play Colour Whist at that time and it turns out that there are a lot of other card games that people would love to see added.

"Well, why not?" was what I thought. After all I had a solid foundation which should - in theory - make it easier to add other card games too. I immediately thought of Manille, a game hugely popular in the western part of Belgium which had been requested quite a few times. And as such, Manille was officially launched on Whisthub on March 23, 2021, more or less one year after this pandemic thingy started.

Initially it didn't have a lot of success though. Sure, there were some players, but the breakthrough didn't come until the website, which had a large user base, ceased to exist in April 2021. My guess is that the creator had wanted to shut down the website for quite some time, but didn't do it because it was the only one around until Manille was added to Whisthub. They even suggested to their players to move to Whisthub, something I will be forever grateful for.

After Manille was added to Whisthub, I focused on adding Wiezen. As it is basically a simpler version of Colour Whist, I was able to reuse almost all the game logic, especially from the AI, and it was officially launched in September 2021.

The launch, however, was overshadowed by the fact that there were huge server issues during that period. I worked for hours and hours to resolve them, again deep into the night, but it eventually lead to a major improvement of how Whisthub works behind the scenes, something that would have to be done anyway sooner or later.

Picture of server issues
Server issues on Whisthub, September 18, 2021

2022: Kingen and Hearts

Another game that had been requested a lot was Kingen, also known as Barbu King, and then especially the double variant, where everyone chooses three negative games and two trumps games. I quickly implemented the core game logic for it, but the real challenge would prove to be the AI. That's because Kingen actually consists out of 7 different games, meaning that I would actually have to write an AI for 7 different games. Auwch!

Fortunately, in January 2022 I got into contact with someone who had a lot of experience with Kingen. He basically taught me how to play the game and was truly invaluable in the development of the AI. The fact that Kingen is available on Whisthub is largely due to him.

Anyway, now that Colour Whist, Manille, Wiezen and Kingen were all available on Whisthub, I had pretty much covered the most popular card games in Belgium.

The next step for Whisthub, I felt, was to attract an international audience. The problem is that I couldn't just add a card game that was popular somewhere as growing a user base out of nothing is an extremely slow process, as had been proven in the past. It's a vicious circle: if you don't have sufficient users, people discovering the site won't come back, meaning there are even less users.

That's why I decided that the next card game on Whisthub would become Hearts. The reasoning here was that it's a popular card game around the world, but also rather well known in Belgium due to it having been bundled with Windows. As such my existing user base could serve as a kickstarter to find an international user base.

And like this, Hearts was officially launched on Whisthub on December 6, 2022. I again had some huge help from the same person that helped me with Kingen, who thanklessly helped me improve the AI of Hearts as well. The initial AI was largely based on the one for the No Hearts game of Kingen, but actually those games are very different, so it was way too easy to Shoot the Moon when playing the AI. Thanks to the help, I feel like the Hearts AI now plays sufficiently well to make it enjoyable to play against.

2023: The future

The main goal of 2023 was to attract an international audience with Hearts, but unfortunately this is going slower than I hoped. Nevertheless there have been numerous improvements to the website - both visible and invisible. One of the major goals still is to add a friend system. It's something I've wanted for a long time, but which requires some thought on how it should work exactly. It's definitely coming in the future though.

Of course adding more card games is still planned as well. I haven't decided what the next game will be, but it seems that Belote is a strong candidate as it has already been requested numerous times. The main difficulty here will - again - be the implementation of the AI, which is especially difficult if you don't even know how to play the game yourself!

Anyway, looking back on where Whisthub came from, it has been an amazing journey so far. If someone would have told me 10 years ago that Whisthub would offer 5 card games and have thousands of active users, I would have never believed them. As of September 2023, I am finally working part-time on the website, but growing the website is the only option to eventually achieve my dream of doing it full time. Again, I do not want to add ads to the website, so of course you can always help by getting a premium subscription. If you already have one, I am eternally grateful. Thank you!

Well, I hope you all made it to this point and that me writing about the history of what can only be described as my child has not been too boring. Let's get back to work and make Whisthub even better!