Never-ending animated GIFs as a chat system


GIFSockets are never-ending animated GIFs for sending text and images between people.


gifsockets-server is a reimplementation of videlalvaro/gifsockets. It was written in Clojure and not trivial to set up, especially without any Clojure experience.

This project is written in JavaScript and use gif-encoder for encoding and PhantomJS for canvas preparation.

To run this website locally:

npm install -g gifsockets-server phantomjs-pixel-server
phantomjs-pixel-server &
# Website will be available at http://localhost:8000/

This code was written during Node Knockout 2013, a 48 hour hackathon, but it is slowly being organized.

The server you are running is at server/app.js and the gif logic is inside of lib.

Modules which are part of this project include:

Server-side dependencies are managed with npm and client-side dependencies are managed with grunt. To install the latest dependencies

npm install
# npm http GET
# npm http GET
# ...
grunt install
# Running "curl-dir:public/js/" (curl-dir) task
# Files "public/js/filereader.js", "public/js/filereader.min.js", "public/js/jquery.js" created.
# ...
# Done, without errors.

If you never used grunt before, install the CLI tool via

npm install -g grunt-cli

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test.

Support this project and others by twolfson via gittip.

As of Nov 10 2013, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.