We've spent the last 1.5 years solving *exactly* this over at Matrix.org. Apologies that the below reads a bit like an ad, but the three key desirable attributes here map almost directly to what we're doing.
Convenience: glossy clients (late beta) available on web, iOS, Android such as https://vector.im with similar featureset to Slack/WhatsApp/FB Messenger etc. Interoperability with IRC, Slack and alpha bridges to things like XMPP, Lync, FB, Skype etc via libpurple.
Security: Decentralised architecture storing all conversations into a signed DAG which is replicated over all servers participating in a conversation. PERSPECTIVES for TLS cert management (not fully finished yet). Olm (https://matrix.org/git/olm) - our own independent Apache licensed C++11 implementation of the same Double Ratchet end-to-end encryption ratchet used by Signal (in late alpha)
Freedom: Built to give users the choice over which servers, services and clients they use, without sacrificing interoperability. Run your own server; run your own services; own your own data. 100% open source (Apache, for better or worse); entirely open specification with community involvement providing an open decentralised pubsub persistence building block for the web; non-profit charter; very active dev community writing all sorts of weird clients and sdks and bots and servers etc (eg weechat, pto.im, ruma.io etc :) The official Android SDK does use GCM currently by default, but can be disabled - an Fdroid distro would be *very* welcome.
So, um, sorry for the rant but we *really* think that open decentralised comms is a tractable problem and it's here today. Sure it's harder to build and maintain than a centralised service, as Moxie points out, but that is a price worth paying for maintaining independence, freedom and interoperability in our comms.
Yes, you can pick all three, and you can do it right now.
Convenience: glossy clients (late beta) available on web, iOS, Android such as https://vector.im with similar featureset to Slack/WhatsApp/FB Messenger etc. Interoperability with IRC, Slack and alpha bridges to things like XMPP, Lync, FB, Skype etc via libpurple.
Security: Decentralised architecture storing all conversations into a signed DAG which is replicated over all servers participating in a conversation. PERSPECTIVES for TLS cert management (not fully finished yet). Olm (https://matrix.org/git/olm) - our own independent Apache licensed C++11 implementation of the same Double Ratchet end-to-end encryption ratchet used by Signal (in late alpha)
Freedom: Built to give users the choice over which servers, services and clients they use, without sacrificing interoperability. Run your own server; run your own services; own your own data. 100% open source (Apache, for better or worse); entirely open specification with community involvement providing an open decentralised pubsub persistence building block for the web; non-profit charter; very active dev community writing all sorts of weird clients and sdks and bots and servers etc (eg weechat, pto.im, ruma.io etc :) The official Android SDK does use GCM currently by default, but can be disabled - an Fdroid distro would be *very* welcome.
So, um, sorry for the rant but we *really* think that open decentralised comms is a tractable problem and it's here today. Sure it's harder to build and maintain than a centralised service, as Moxie points out, but that is a price worth paying for maintaining independence, freedom and interoperability in our comms.