I've made way more Web GUIs meant for on premises embedded use, which is kind of like desktop. Generally for room escapes and puzzles, but also some pool and spa control work.
Watching people use stuff I've built is always fun, because if you just do what consumer apps did in the 90s, users can figure it out with no training fast, and it doesn't take much design skill(Making it looks good is still hard!).
Give stuff labels, don't hide stuff behind gestures or keyboard shortcuts, don't use a ton of different modes. Programmers like to make everything like Vim, separated into pieces, full of different modes and context you're supposed to just carry in your head.
Windows apps 20 years ago kind of had it figured out. You look at the screen and that's the whole state of what's happening. If you feel the need to add modes and gestures and shortcuts and layers of menus... maybe you have a deeper problem than UI and the actual functionality needs more automation.
I think my favorite UI I can show is this early version of my control board, which lets you edit sound and lighting cues and program which cues come after which other ones, etc.
https://raw.githubusercontent.com/EternityForest/KaithemAuto...
I'm not making any claims about code quality, it's way bigger than one person should probably take on themselves, and full of made in a hurry legacy stuff, but users generally seem to need only a minute or so to figure it out.
You're not going to program a rock concert with it, that would take forever(and probably be impossible) you're going to program something tiny with 10 cues and 3 lights, and it's going to be pretty easy even if you know nothing about programming lights.
My usual tech stack was CherryPy, Mako, Vue, and SQlite if I needed a database at all, but I prefer not to, because I like to keep user edited stuff versionable.
Now, I use Jinja2 for templating and I like Tornado instead of CherryPy. Mako does not have good editor formatting and highlighting support and Jinja2 is vastly more popular, people already know it.
Web GUIs can be just as easy to set up for end users as real GUIs, you can even use a real GUI with a "Launch browser" button, the way Syncthing does for many features, so I really don't have much reason to do a desktop GUI.
I've pretty much taken all my previous work that I'm actually able to share, and made it into a WIP CSS framework (https://eternityforest.github.io/barrel.css/), for further reference.
I'm a fan of reusing the same few concepts a lot, rather than having tons of different widget types.