Synapse is the best server for now, and works relatively well (resource usage has improved lots over the last year). Bridges plug into the server, and there’s typically at least one good one per protocol: matrix-appservice-irc, matrix-appservice-slack, mautrix-telegram, mautrix-whatsapp etc. We need to improve the UX for provisioning and managing bridges though; atm it’s mix of config files and bot commands.