FreeStep – Free, Encrypted, Open Source node.js Chat
Oct 04, 2014
node.js (sic) is a really cool runtime environment that allows for asynchronous, event driven coding. It uses JavaScript and runs on Google’s open source V8 JS engine.
I love the chat service ChatStep, but they advertise privacy and encryption without being willing to put their money where there mouth is and open source the system for full transparency.
I was frustrated with ChatStep’s purported security but unwillingness to open up their backend, so I decided to be the change I wanted to see in the world. I wrote an open source, mobile friendly, elegant chat that can handle image messaging. I tried also to comment my code (perhaps a bit too) liberally, as I wanted to be helpful to others who were starting in the same place I was.
Cool Frontend Things
- It’s repsonsive and mobile friendly!
- It’s built on bootstrap and underscore, so manipulating it is easy
- It’s 100% HTML5 W3C compliant
- It’s IOS web app capable
Cool Backend Things
- It runs on node.js & socket.io 1.1.0 – up to date!
- It’s easy for beginners to extend!
Cool Things
- 100% encrypted with the Rabbit cipher – encryption can be trusted even over untrusted connections!
- The key never leaves the user side, nor is there any logging performed whatsoever – extremely anonymous
- It supports the drag and drop sending of images with the HTML5 File API (encrypted, of course), with fallbacks for mobile
- It’s open source and MIT licensed – you can edit, inspect the code, and tweak to your needs
- Because it’s open source, it’s transparent. Don’t trust your data to a chat service that is purportedly secure, but unwilling to open the code for you to examine.
This is my first node.js app after a number of years doing PHP dev, so it was an interesting change of gears, but lots of fun. Hopefully you can find it useful!