What has been happening lately
Beginning with Quadrant v26.3.1-v26.3.3, I've started doing a lot of things to the Quadrant codebase. Things that I've wanted to rework drastically since 2024, but always lacked the motivation because it was A HUGE task for me at the time that would regularly take me days.
Poor practices in the past
Previously, Quadrant used to handle modpack syncing and account notifications by polling the API every 3 seconds (yikes). This was fine with me due to the fact that the machine hosting the API wasn't used for many other things when I started Quadrant ID/Share/Sync, etc., so having these kinds of loads on it wasn't a big deal.
The reason why Quadrant hasn't been getting as many updates lately
However, Quadrant has only been growing lately, despite the fact that I haven't had much time to work on the app within the past year, due to exams, other life events, and a bit of burnout from coding overall. This led to the fact that the API was getting thousands of requests per second, which it handled fine-ish, but I've come to the realization that now is the perfect time to try and rework those old systems that weren't exactly suitable long-term. Now the project is about 3 years old and has more than 20k installs on Flathub and more than 2 thousand on MS Store, so I figured that now would be the time to properly make the client suck less, hopefully without reinventing a bunch of wheels myself.
Present situation
Luckily, times have changed, and thanks to recent developments in AI, a lot of previously "HUGE" tasks can now be done in a day or even less. The GPT Codex models starting from 5.3-Codex have been genuinely eye-opening in the way that I started approaching development. Now I only have to design the idea of what I want to do, with no need to actually write that much code, which speeds SO MANY things up. Thus, now I'm happy to announce the following changes to the existing Quadrant app (Quadrant Next).
- Real-time notifications
- The Quadrant ID notifications now get announced via a WebSocket.
- Quadrant Sync now announces its updates via a WebSocket connection as well, and it doesn't make the client resync itself with the server right after updating a modpack.
- The Linux version sucks a bit less now
- Don't get me wrong, WebKit is still ass, there is no other way to put it; however, I have been experimenting with alternatives.
- To try to mitigate how horrible WebKit is, I've reduced the number of animations in the app and optimized some of the pages. This is still very far from a perfect solution on Linux, but it's better than nothing.
- ARM builds are now on Microsoft Store
Future plans
With the help of Codex, I've split the core features of Quadrant from Tauri in order for them to be potentially reusable with other frontends. Right now, I'm not actively working on making a Linux/Windows native app for Quadrant, nor do I have the time or will to do so. However, decoupling the main logic from the other things leaves the door open and makes Quadrant more independent from Tauri, so that anyone willing to deal with my code can actually do so without fully reworking the app 90% from scratch.
Better Linux support, alternatives to WebKit
Out of curiosity, I've tried to get AI to port Tauri to CEF, and unfortunately, that didn't go very well. I've also considered trying to port the existing frontend to Electrobun, but for now, that seems like way too much work. It's definitely doable, but it'd turn a codebase I intended to be much easier to maintain than Quadrant's old Flutter version into a huge mess, so for now I'm holding off on that idea, however if I do get bored in the summer, I will consider trying to make a branch/fork of Quadrant based on Electrobun with (hopefully) better Linux compatibility.
MacOS support
I don't have a Mac device, but I'd be more than happy to merge a PR bringing in the right defaults for Apple devices.
Quadrant v26.4 with true real-time sync
And some info about Quadrant's current state and future plans for the app.