Shout out for mStream - the simplest and best cloud music server.
Low dependency count, very low overhead, no fees or 'premium' options like Plex and co. - just a simple html or api to app interface to your music, with optional transcoding (one setting for the whole server, if there was one complication I'd add to mstream it would be per-user transcoding options)
Works great with super large libraries.
Only big caveat i've noticed, is that it sends the albumart every track, so if you've got some music with a 1500x1500 ~500-1500KiB coverart, it'll eat your data a bit more than it should. Obviously this doesn't matter if you've got unlimited mobile data.
Doesn't have additional fluff like scrobbing or telling Spotify about every track you listen to get their albumart. (though you might want this, that's fine)
Browsing is by folder structure, not via tags. Again, this is a preference thing, I prefer to browse by folder structure, since just about every player wants to define the 'album artist'/'artist' split differently and some do and don't support 'sort artist' tag.
node.js v. Go+ReactJS (nodejs is mature now and is a single dep, golang is pretty mature but react is moving fast and breaking things)
If you have cover art in the album's folder, navidrome won't check anything else. You can configure where it will check for artist art and cover art: https://www.navidrome.org/docs/usage/artwork/