I personally would advocate the combination of Zulip for text chat plus Jitsi for calls and screen sharing.
One use case Jitsi doesn't support that Discord does is "push to talk"; that's something I haven't seen a good alternative for, other than Mumble, which seems much less usable for other purposes. But for other purposes, Jitsi works very well; I've had thousands of hours of calls on it at this point.
In an ideal world, I'd love to see a web standard for a web app to request access to a single (user-determined) key, to allow web apps to do push-to-talk while staying in their sandbox.