Open GvY85 opened 2 years ago
There was some previous discussion in #15281 about modernizing the UI, and the maintainers aren't even opposed to using an existing alternative web UI.
The problem is the lack of maintainer for it. Right now, the web UI is stable in terms of changes - it hasn't had any major refactors recently, staying roughly the same for some years now. It makes contributing much easier for old and first-time contributors since there's a good basis. Assuming someone actually contributes a new UI, they would also hopefully be able to commit to maintaining it as well. The main contributors primarily work on other parts of the project and learning a new system will take away from that, which is why a maintainer is hopefully part of the package.
Related to the choice of frameworks, I would vote for Vue. I have been working with Vue (Vue 2) at my job and it is fairly quick to pick up. Vuetify provides very nice material UI elements and I believe Vuetify 3 is nearing release pretty soon. Vuetify makes the UI design fairly easy, and you will love Vuetify if you hate CSS. I wouldn't mind contributing towards a new web UI, especially if it's written in something I have experience with, but it's not something I have the time to maintain at the moment. I may start a project for this, but I can't promise it will go places.
VueTorrent in amazing and i liked it, but if you have more than 20k torrents it would loads gui about a half hour and after each action you will be wait tooooo long.
tried this UI some time ago just out of curiosity and to compare with other implementations. it is at least usable, but it is definitely not suitable when you have many torrents (I had about 2k torrents), it is too slow and causes very high CPU usages like any other modern websites (aka "web apps") in most cases. also with this modern material design it uses screen space completely irrational (again, modern trends...), this is maybe fine for mobile, but definitely not for desktop.
so, due to above, this UI is suitable only when you need "some simple downloader" with only few torrents (thanks to this material design it is unusable/super inconvenient or even useless in case of even few dozens of items in the list), nothing more. this is definitely not a case for qBittorrent which is "advanced torrent client".
The old UI does have some benefits.
I would think that it would be best to grandfather out the old UI. I think that there are people that will still want to use it as it is. Would be ideal if it was possible to turn on/off the new UI
As I just recently switched from rtorrent+rutorrent and checked all of the alternatives, this is my stance on the subject: While the alternative WebUI options may look good, they have a LOT of disadvantages that should be considered blockers until solved.
The original WebUI is fine and all it needs to become excellent is:
.txt
and .nfo
I think every web UI (default or alternative) will suffer from performance/scaling problems until there's a good path forward on the issues discussed in https://github.com/qbittorrent/qBittorrent/issues/16829
Something like paginating /sync/maindata
, or adding client-shaping (e.g. ?fields=
) to /sync/maindata
and /query/torrents
, would allow any client to intelligently request exactly the data it needs, which would potentially be a lot less than they fetch currently. That would allow for a number of performant patterns like pagination, lazy loading, etc depending on the client's UX.
I could also see an argument for having a bit of middleware between the WebAPI and an alternative UI, where the middleware would utilize pagination and shaping to fetch and cache data from the WebAPI, then serve something like GraphQL subscriptions (or other websocket-based patterns) to the client.
Everyone has their own unique use case. But I believe the most obvious problem right now is the lack of mobile support. Though I do not believe using vuetorrent is the right way to go.
I'd rather keep the existing WebUI because it matches the desktop UI and keeps all the features we need. If somebody wants Vuetorrent, the option is there.
Suggestion
I have been using the default WebUI for years but find it lacking in terms of usability on mobile devices. A more modern and fully functional alternative WebUI that works flawlessly on both desktop and mobile devices is VueTorrent
Use case
Alternative WebUI that is more modern and supports mobile devices.
Extra info/examples/attachments