Todd Wolfson

Software Engineer

November 21, 2013

gifsockets are never-ending animated GIFs that can be used to send text and images between people.

Demo: http://console-log.2013.nodeknockout.com/

The gifsockets project was initially developed during Node Knockout but formalized in the following weeks.

If you think you have heard of gifsockets before, you have. videlalvaro/gifsockets was the first implementation; written in Clojure and not trivial to set up, especially without any Clojure experience.

As a result of my poor experience, I decided to reimplement the concept in JavaScript. It is built using gif-encoder, a fork of gif.js for node and streams, and PhantomJS for canvas preparation.

During the formalization process, a lot of smaller modules were built-out, the most interesting of which is gifsockets which allows for using gifsockets on any writable stream.

  • gifsockets - The heart of the gifsockets project, a mediator for subscribing any writable stream to newly written GIF frames
  • gifsockets-middleware - Plug and play middlewares to set up a server with gifsockets
  • gif-encoder - A fork of gif.js with stream support and is optimized for [node.js][] performance
  • phantomjs-pixel-server - A PhantomJS server which takes text and converts it to an rgba array of pixels

More information can be found in the demo repository:

https://github.com/twolfson/gifsockets-server

Top articles

Lessons of a startup engineer

Lessons from being a 3x first engineer, former Uber engineer, and working at even more startups

Develop faster

Removing the tedium from creating, developing, and publishing repos.

Sexy bash prompt

A bash prompt with colors, git statuses, and git branches.