My pal Alex and I are writing a chat app that uses Google’s Firebase products. It’s coming along nicely and we continue to add new features. The more I use the real-time database the more I love it. Their JavaScript library makes it very easy to get started. I’m still getting used to denormalizing the data, but I think I got it.

Allowing users to register and sign-in is also a breeze. We don’t have to worry about our database getting hacked. We probably wouldn’t worry about that anyway, but now we can let Google do the worrying for us.

I hope to make our chat ultra secure! It’ll use a hybrid encryption system that employs AES (symmetric) and RSA (asymmetric). The user’s private RSA key will be encrypted using AES 256. When a user sends a message, they’ll generate a unique encryption passphrase and use it to encrypt the message with AES. The passphrase will then be encrypted using each user’s public RSA key. The recipients can then decrypt the passphrase and then decrypt the message.