Finally switched to Jellyfin with its accompanying Roku app (and the web interface, in a pinch). Much happier with that. Jellyfin in docker on my fileserver, map the drives there, start it up with auto-restart (which will also start it on boot) and forget about it. Configure and watch some on the web, but mostly just watch from the couch on a Roku. Much better UI, despite being far from perfect. Snappier and less fragile, even in its web interface. Media source management's less crazy-making.
I don't really use live TV, streaming (the plugins I usually wanted to use on Kodi were usually broken or too janky to use, anyway), or radio, on Kodi, though. Or the games features—I use Lakka instead, which I like much better UI-wise. I don't think Jellyfin can replace those features, if you use them.
I believe its slow because theres a lot of legacy code in there since the Xbmc days which, had they had the resources, would probably have been rewritten.
I have tried Plex and currently have Jellyfin set up. Plex I removed immediately due to "cloud" login (yes I know you can disable it, I did by removing it). Jellyfin is useful but I still find myself using Kodi directly as it just works.
It's super cheap, it's secure because it doesn't have any useless cloud services, and it can also play retro games on emulators (not using Kodi's gaming support though, it's very immature). Maintenance is zero except when I decide to do an upgrade, which is once every 3 years or so.
I switched to Kodi and it's been working great so far.
How is that any better than XML? https://kodi.wiki/view/Advancedsettings.xml#guisettings.xml_...
Personally I find YAML to have a false sense of cleanliness. Sure it looks a lot "more readable" than XML until you mess up the syntax/indentation and end up with dictionary keys a level up/down from where you intended. The list-of-dicts syntax is particularly gross to me, e.g.
models:
- model: "a"
type: "x"
- model: "b"
type: "y"[0] https://gist.github.com/dandidums/a9c92f77f6ef940ec727395b45...