The developers of Bottles recently revealed , through a blog post , details about the work they will be doing on Bottles Next, an initiative aimed at completely redesigning the architecture and codebase of the project.
The statement mentions that the current version of Bottles, written in Python with a GTK-based interface, faces significant limitations that hinder the incorporation of new features, such as macOS support, and poses problems that can only be solved through a profound structural change.
Over a year ago, we announced Bottles Next, a complete rewrite of the Bottles project. Initially, the idea was to leverage web technologies to achieve the experience we envisioned for our users. However, as is often the case, extensive research, debate, experimentation, and ongoing re-evaluation followed.
Why go through all this trouble? Well, to make sure we make the right decisions.
Following the announcement, we started experimenting with many technologies, but most importantly, we listened to the feedback from the community, particularly regarding Electron. This prompted us to explore other avenues, leading us to prototype frameworks tailored to the specific needs of Bottles Next.
And here we are today.
That is why the new approach divides the application into three main components:
- A client: responsible for the graphical interface
- A server: responsible for the logic to run applications and manage Wine prefixes
- An agent: that operates within Wine to interact directly with the Windows API.
Although initially it was considered to implement the client with web technologies such as Electron and VueJS, and develop the server in Go, the reaction of the community and the results obtained with the prototypes led the developers to abandon this idea.
Therefore, it was ultimately decided to use Rust for both the client and the server, while the graphical interface would be based on the libcosmic framework. This framework, used in the COSMIC desktop environment, is an extension of the iced library , which facilitates the creation of modern and scalable graphical interfaces. Libcosmic adopts a reactive programming model and follows an architecture similar to that of the declarative Elm language, making it easier for developers familiar with this approach to understand.

Although the developers would have preferred to work with the Go language, they ultimately opted for Rust due to the limited availability of high-quality tools for developing graphical interfaces in Go. Despite this transition, the new architecture also includes plans to maintain the classic version of the interface as an option, offering users a familiar experience while adapting to new standards and technologies.
In terms of rendering, Bottles Next will support engines such as Vulkan, Metal, DX12, OpenGL 2.1+, and OpenGL ES 2.0+, ensuring broad adaptability to different systems and hardware. This redesign promises to deliver improved performance, extend cross-platform compatibility, and provide a more robust foundation for future Bottles development.
This update affects both Bottles Legacy (the current version of Bottles) and Bottles Next. The first release of cpak will be completed in the coming weeks. This is a portable, deduplicated software distribution format based entirely on OCI images.
It is also mentioned that the Bottles Next agent, which operates within the Windows environment generated by Wine, will be written in C# using .NET. This choice addresses the specific needs of the WineBridge service, which requires efficient integration with the Windows API in an emulated environment.
Regarding development, a container for testing the initial prototype of Bottles Next, written entirely in Rust, is expected to be released in a few weeks . For now, only a basic demo version is available, allowing users to get a preliminary idea of ​​the project's capabilities and direction. This transition to Bottles Next promises significant improvements in functionality, compatibility, and performance.
Finally, if you are interested in learning more about this , you can find the details at the following link.