Trying to move group chat from telegram to a more private option, but the key feature is its web interface which is so convenient...
I've checked SimpleX, Session, Briar & Element-Matrix, but the first 3 do not have a web version and the latest only has a free version for self-hosting and I haven't looked into self-hosting yet.
I'd completely understand if what I'm looking for doesn't exist for free, but if anyone has a suggestion here, I'm interested!
I think Element does what you're looking for. Get yourself a fediverse account, log in and watch it go. Difficulty, as ever, is getting your contacts to switch.
Movim v0.28 released within the last 24 hours. It has a web UI (that is optimized for both large & small viewports), E2EE via OMEMO, OTR, or PGP (but users can choose native clients if they wish). With the NLNet funding they are extending to full video conferencing + compatibility with the Dino native GTK client. Subjectively, it looks pretty sharp for a web client. You can also use it to share ‘posts’ for announcements & public feed aggregation—something a group chat should never be used for (announcements & other long-term messages get lost in the black hole search can’t find & unreleated posts all around it with messy-to-follow threads since this sort of content isn’t supposed to be chat).
It’s not quite as easy as services.movim.enable = true for NixOS but the NixOS module isn’t far off once an XMPP server has been selected with optimized defaults beyond standard setup—& the option I would personally recommend for self-hosting as declarative config is easier to work with in the long run, but there are non-Nix options. Being PHP, it’s fairly performant as well as not being built on some space-wasting, RAM-sucking ‘eventual consistency’ model that will cost you out the ass (which is Matrix, by design). The front-end, being mostly vanilla JS, is not using some heavy, bloaty framework. This will meet all your needs & not require expensive hardware host even on an old laptop at home or part of a multi-purpose server (does not need dedicated hardware).
The first messenger without user IDs, Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers. This radically improves your privacy.
E2EE with a server web interface is a technical impossibility. The ends are the clients. By definition the server is only there to pass encrypted data from client to client. Presumably you can make this work with a web client using the browser's local storage, but at that point you're not actually looking at a web site and you might as well just use the official app. This is one reason why Telegram doesn't do encryption by default: group chats are particularly hard to do with EE2E.
But the JS is served to the browser each time the page loads, you can't be sure it stays the same between loads. Sure, this is the same problem as malicious updates, but still exaggerated - the opportunity to slip in altered code is "every time you open the page" rather than "every update". Plus much more convenient to do targeting.