Since this is a website about JavaScript, and it's built in Node.js, I thought people might be interested in how it all works. It's a really nice interesting example of a medium scale Node.js app. It makes use of both streams and promises in important ways.


This website consists of two Node.js servers and a MongoDB database. The bot is available at http://pipermail-bot.jit.su if you want to see the current status, and you can view statistics in the graphs on this page. The website is available at http://esdiscuss.org and you're looking at it right now.

The bot consists of two key modules

  • The pipermail module is responsible for downloading and parsing the esdiscuss archives. It outputs a stream of JSON objects, each of which contain the parsed header and the body of an e-mail.

  • The bot reads the parsed output of the pipermail bot and stores it in MongoDB.