‹ Jack's Brain

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!

Demo Site

GitHub Repo