Beeper's software stack is partly open source. They develop the mautrix bridges for WhatsApp, Signal, Discord and many more as open source.
What they keep closed source is their clients (and probably infrastructure).
The documentation to host their bridges is great [1] and the bridges works with most server implementaions (I know of Synapse, Dendrite & Conduit).
I'm running signal and whatsapp bridges for years now without problems, but it's definitely simpler to pay for Beeper.
The problem with these bridges is that they have to decrypt messages and encrypt them again with matrix. This means anyone who controls the server running bridges has access to your messages. Self-hosting means I'm still in control of my data.