Cross-platform build sync and launcher
A cross-platform GUI built with Go, Wails and SvelteKit for syncing builds from Azure Blob Storage, tracking GitLab pipelines and launching the game, as part of porting a Python toolset to Go.
Source code is not public.
- All platformsWindows, Linux and macOS
- Less supportCompared with the Python toolset
- All studiosInternal Grand Strategy Games studios use it
Hearts of Iron IV already had a game binary syncing setup when I joined the project. We ported its Python application to Go. I helped with the port, and my focus was the GUI: a cross-platform frontend that I spearheaded, built using an AI-native, agentic workflow.
The problem
The Python application was complex to maintain, and Python’s handling of dependencies and environments kept causing issues for developers. The shell scripts that came before it were hard to approach for many users.
The tool
The Go version has a shared library with the core functionality, which we built together and which both the CLI and the GUI use. The core tool interfaces with Azure Blob Storage to resolve builds: it syncs binaries and fetches builds by branch, commit or merge request.
My part
- Helped port the Python application to Go.
- Spearheaded the GUI for Windows, Linux and macOS, built with Go, Wails and SvelteKit.
- Built the pipeline tracking, which starts and tracks the GitLab CI pipelines that produce builds.
- Built the development launcher, with launch presets that users can customize.
- Built the self-update mechanism, so I could push updates and users could choose when to apply them.
Result
Users no longer had to manage Python environments, and the tool was more accessible than the earlier shell scripts. It needed less support, and the more complex UI made features possible that weren’t before. It is now used across all internal Grand Strategy Games studios.













