How we helped Star Stable improve their desktop app performance by 50%

Project overview
This is the story of how Star Stable Entertainment – a Swedish game publisher – improved the performance of its desktop app by 50% and introduced an in-launcher payment system for its 26 million registered users.
Inside this article
About the Client
Star Stable Entertainment is a Swedish publisher of the game Star Stable Online. In this MMORPG, players travel on horseback through a fairy-tale 3D landscape, having adventures and solving quests. The first server was launched in 2011, and today, the game is available in 180 countries and has 26 million registered users. The Star Stable app is available in desktop and mobile versions.
.png)
What our Client needed
Star Stable wanted to develop a desktop game launcher for Windows and macOS. The company needed to refactor the app to a newer solution to allow its further scaling. The new app version also had to provide fast and smooth login, game installation, and updates. Our Client also wanted to enable purchases within the desktop application, including subscriptions and virtual currency.
To achieve these goals, Star Stable needed senior desktop engineers with expertise in ElectronJS and ExpressJS, but it did not have these competencies on board. After researching software agencies that work with these technologies, they partnered with Brainhub.
Project goals
- Enabling payments from the desktop launcher.
- Refactor the application to a newer solution and enable its further development.
- Improving user experience.
Project Team
On the Star Stable project, we worked on a team augmentation basis. This collaboration is more than outsourcing because the Client and vendor experts operate very closely as one team. Two Senior Fullstack Engineers and a Project Manager from Brainhub worked on this project, along with Star Stable's internal team of frontend and backend developers and UX/UI designers.
Project challenges: application stability in different configurations
When designing a desktop application, we had to ensure the software's stability in the hardware-system relation. Our product need to work smoothly on a wide range of hardware configurations, including various firewalls and different Windows and macOS versions. We also had to consider that some players use older hardware and prepare special notifications for them.
Another challenge was that we couldn't afford to make mistakes when developing a game launcher of this scale. A desktop launcher is an application that allows users to start a game. If anything here didn't work as it should, we risked a poor player experience, leading to damaging Star Stable's reputation. And we couldn't allow this to happen.
Scope of Work: What we did for the Client
- Auto-update – when turned on, the application detects whether a newer game version is available and, if so, immediately proceeds with the update.
- Installing and updating the game – we separated this logic from the launcher (written in JavaScript) and introduced native modules (written in C/C++/Rust). This allowed to speed up the application significantly. For example, the speed of updating game files increased by 50% compared to the previous solution.
- Data-driven decisions – we have implemented monitoring tools – telemetry, analytics, and A/B testing – so the Client can make the best decisions based on defined metrics.
- Authentication – users are verified in the internal API.
- Content Slots – we have implemented slots for marketing news and product offers that can be purchased directly from Launcher.
- User account management – we enabled email verification, password change, server change, subscription management, purchase history, etc. within the launcher.
- Queue system – if the API sends a message that the server is overloaded, then in the application, we display to the players their place in the queue to join the game.
- WebSockets – the game is updated weekly. To improve UX, the app gets a real-time notification when the server is updated. With this solution, players don't have to restart the launcher to have its most current version.
- Hardware detection – the application automatically detects what system and hardware players have (including, for example, the OpenGL version) and sends a notification if their setup is not supported and the game may not run optimally.
Tech Stack
ElectronJS, ExpressJS, React, React Redux, C/C++, Rust

Trust is the most important asset in Product Development
During the Star Stable project, we were not just engineers but also technology consultants. We supported the Client as advisors by analyzing this business situation and recommending the best tech solutions. Our Client has always said that "kindness is a superpower," and throughout the project, we really felt that this was the value that set the right tone for our cooperation.
From the beginning, the Star Stable team trusted us and our expertise, allowing us to implement many ideas, solve problems, and openly share our thoughts. At Brainhub, we believe that there is no good or bad information – there is only information and the transparent communication and relationship we have built let us achieve the best results.
Probably any company would benefit from working with Brainhub, but if you have more complex issues like dealing with technical debt or have some big challenges you want to tackle but don’t really know how, I would definitely think of Brainhub for that.
– Juliana Alonso, Web Producer, Star Stable
New desktop launcher for the best player experience
Star Stable was looking for a senior team of experienced software engineers to fill their competency gap in desktop development. Working together as one augmented team, we refactored the existing solution, developed the application, and prepared it for further scaling. Our partnership resulted in a fast, efficient, UX-friendly desktop launcher with high performance and the ability to make purchases within the app.
The Star Stable project was precious for us because of the great business relationship, but it was also very beneficial, as we really learned a lot. And this is the kind of cooperation we like the most!
.png)
Lessons learned
- When designing desktop applications, it is essential to remember that the number of hardware and system configurations is almost infinite, and there will always be a case that we cannot reproduce. That's why we create applications as compatible as possible to cover the most probable configurations. Monitoring tools like telemetry, analytics, and A/B testing allowed us to make the best decisions based on defined metrics.
- In software development, we must always, ALWAYS remember who the end user is, what they need, what interests them, and what problems they face. It's very easy to get caught up in our own perspective – it's natural and automatic to us. But in the end, all that matters is the target user and their experience, especially when that group is as clearly defined as in the case of Star Stable.