Bracketology is the premier centralized fantasy gaming platform for reality TV shows, turning the TV shows’ drama, twists, turns, and eliminations into an engaging game for thousands of online players.
It all started in 2016 with four girls: Jessica Dahlstrum, Kaitlyn Hurley, Lexi Later, and Mary Roberts. Avid fans of The Bachelor, they had played in their own fantasy Bachelor league for years. Sending over their picks via text and keeping score in a Google Sheet, they sometimes wondered how many people would appreciate just the same: more content on their favorite franchise, some extra fun and excitement, and an ability to compete with fellow fans online.
One day, over lunch in LA, they drew the framework of what would become the Bach Bracket website on the back of a cocktail napkin. They started with $750 paid to a web designer for a series of wireframes. When the founders got the quote for gaming platform website development, they realized they might need to do more than dip into their savings. However, after seeing their vision come to life in those PDF mockups, they couldn’t stop.
Over six years, Bach Bracket developed into the biggest fantasy platform for reality TV with over 580,000 unique users to date. Although similar products have emerged since then, it remains popular due to its simplicity and fan-focused approach.
Today’s Bracketology, still led by its first property Bach Bracket, is a set of fantasy leagues with interactive games based on weekly TV shows:
30+ women are trying to win over the heart of one man. Online players make weekly predictions trying to guess who ends up with a ring.
Two women search for love amongst 30+ men.
This is an elimination-style competition between the Bachelor and Bachelorette alumni isolated in an exotic tropical destination.
Contestants live in a house isolated from the outside world and are voted out weekly while being continuously monitored by live television cameras and personal audio microphones.
Registered players join the games, create their own fantasy league brackets, and predict various events for each episode, how long a contestant will last in a show, etc. They also join and form leagues to compete against friends, colleagues, and others.
The games are free to play for users, and players have the choice of multiple types of games with different rules. Larger public leagues are free to join, with the chance to win prizes from a Bracketology sponsor, podcast league, etc.
After each show episode is released, for each prediction that proved correct, points are awarded. The results are summarized in a general table for players to see the leader in their league. The system also automatically scores and ranks a player’s league after each episode. At the end of the season, the three players with the highest points win the 1st, 2nd, and 3rd place.
For example, for The Bachelor game, the official league prizes for the 1st, 2nd, and 3rd place are determined and set by Bracketology. The prizes in the form of Bracketology Bucks (in-app currency that is yet to be implemented) will be awarded at the conclusion of the final elimination round, once all points are calculated.
To create an account, new users need only an email address; a phone number is optional. They can upload a profile pic and subscribe to emails to stay up to date with the show’s updates. Log in is simple: email and password.
Soon, users will be able to communicate with other players and receive messages from Bracketology on the message board on their account home page.
A player can browse public leagues that anyone can join or search for a specific public league by name. In the case of a private league, a user needs to request to join and receive an invitation email or link from the league commissioner (admin). Players can also create new public or private leagues and invite others to predict, for instance, who of the contestants will get inebriated, whose dates will be most appalling, etc.
There is no limit to the number of leagues they can join, and they can leave a league at any point during the season (after which all their data and scores in that league will be erased).
Players can select among several game types available within each league. When they click on the game type, the Picks screen opens. The way to make picks varies by game type. For example, the user may select the contestant most likely to receive a rose in the next episode of The Bachelor. There is a countdown timer for each game type to show how much time is left to edit the player’s brackets. For week-to-week game-type leagues, users can make their brackets for two eliminations at a time. Their picks are saved automatically, and a feature exists that allows admins to unlock ceremonies/episodes so players can enter late or unsaved picks.
The system scores each episode as it airs. Scores are typically posted after the episode airs on the West Coast. The general Scoreboard displays scores as a total of a player’s scores from each game type, but there are also unique scoreboards within each game type so players can see how they fare in specific game modes.
In the spring of 2021, three friends acquired the controlling stake in the Bach Bracket project. One of them happened to be a co-founder of Aloa, a digital outsourcing services platform and Onix’s long-term partner.
Seeing an opportunity to develop Bach Bracket into something bigger, they contacted Onix as a one of the top sports application developing firm with a request to support the existing website and application and create its updated version rebranded as Bracketology.
Creation of the project documentation
Building an updated architecture
The fantasy gaming platform app redesign with adaptation for mobile browsers
Front-end and back-end development
Setting up servers and third-party services
Subsequent product support
The decision to rewrite the application was made due to the limitations of the previous technology stack. Over 5 years, the product’s user interface (UI) design and functionality became outdated. With the existing code base written in Ruby on Rails, any changes, new features, and scaling in the future would be much more complicated and expensive.
Another goal was to improve the user experience (UX) and to make the app as streamlined and easy to use as possible.
Onix’s team embarked on the project in June 2021.
The team for the Bach Bracket old and new websites included:
Back-end Team Tech Lead & developer for the old site
WP Tech Lead
Front-end Tech Lead
Project manager (PM)
Aloa Manage, the platform’s project management system, proved excellent for facilitating their collaboration.
Servers and back-end
Internal part of the web application and front-end
Hosting and deployment of the project infrastructure
Preparation of the technical documentation and development plan
Creation of a brand-new UI/UX design for the web version and its adaptation to mobile browsers
Creation of the architecture and programming of the front-end and back-end parts of the web application
Total testing and normalization of the product before release
Preparation and implementation of the site content
Creation of a custom admin panel for the platform management
The main problem was that the fantasy gaming platform is most actively used for a few hours per week – on the evening of the weekly episode release – when the number of users reaches 100K at a time. Initially, the app ran well on Heroku, but as traffic increased, it began to experience problems and limitations. Heroku’s deployment API seemed to fail 1-2 times a week.
The application needed greater capacity and flexibility at a minimal cost. The team was tasked with smoothly optimizing the server and halving the maintenance cost. As it was a production app, without testing servers, there was no room for error.
AWS charges customers only for what they use, and with larger applications and infrastructure, it quickly becomes a more affordable option. AWS also offers tools and services for cost optimization and control.
The AWS cloud covers more access zones than Heroku and expands its AWS regions – exactly what a growing fantasy gaming platform needs.
AWS’s virtual server instances come in a wide variety of CPU and memory configurations, have full root access, and offer better performance than Heroku.
It’s preferable if the client wants to host other cloud services on AWS and keep everything in one place.
Onix’s team decided to deploy the application in AWS Elastic Beanstalk using Docker which comes with different versions of built-in Docker and scale it easily. Docker was expected to speed up the migration to AWS; it works locally and will also work in a production environment.
Firstly, we compared the costs of using AWS and Heroku. Heroku had cost around $800 per month. We calculated that using the same capacity on AWS would cost $600-650.
We also developed a chart of the application and interactions with all services.
We wrote a configuration called Dockerfile.
In the case of our RoR application, the main task was to make dependencies get installed and configure the complex software components in our stack. The ability to test everything in a local environment was a huge advantage.
While configuring the environment in AWS, we used Elastic Beanstalk. Dockerization of the application mainly consisted of creating a Docker image from code in the repository. The basis of the app’s Dockerfile was also used for dockerization of the worker (sidekiq).
The migration from Heroku to AWS took one DevOps engineer nearly three weeks to complete. This included learning Elastic Beanstalk, integration and deployment of the services (Elasticsearch, RDS Postgres, Memcached, Redis, S3, Load balancer, Cloudflare, WordPress), and setting up CI/CD (CodeDeploy and GitHub Action). Testing took a bulk of the time.
Within 7 months, Onix’s team completed the daunting task of migrating a working application to AWS and delivered a completely repackaged design for the project, transforming the old Bach Bracket website and application into an up-to-date innovative platform.
The client liked the improved interface and appreciated the constant smooth communication between the teams.
They always went above and beyond and really viewed themselves as an extension of our company’s team.
Having migrated to AWS and monitored the load, Onix’s team reduced the capacity of servers and services, cutting the costs from around $800 per month down to nearly $450.
In the new Docker and AWS-supported environment, we have achieved greater flexibility and productivity. Servers don’t require manual scaling any longer and automatically adjust to rises and falls in the load on the memory or processor. Hosting bills have also decreased.
The new degree of control, such as login via SSH, has made problem detection and fixing much easier.
Most importantly, the platform retained the ability to support the entire audience of all available shows at the same time.
The architecture was built in such a way that the extension to new shows will take only 3-4 weeks, including all necessary preparations.
This ability will come in handy as Bracketology plans to add two new reality TV shows – Survivor and The Voice – in 2022.
Onix is happy to have contributed to the project’s growth and hopes to continue the collaboration.