• All our system relies on node.js

  • Our Javascript Framework

  • Our UI framework

  • Our webserver

  • Website statistics

  • Our payment gateway

  • Our SSL terminator and load balancer of choice

  • All our code is CoffeeScript, blending seemlessly in our JS stack

  • Our main datastore

  • Session management, Leaderboards, instant messages, and many others use Redis (cluster with Redis Sentinel)

  • All our metrics go through InfluxDB, both applicative and system

  • Two clusters, one to store logs, one to index data for our customers

  • All our services use Consul for discovery, configuration and cluster management (auto scaling, health monitoring, dynamic reconfiguration, leader elections)

  • Work queue and delayed messages are still managed in RabbitMQ, phasing out

  • All our APIs use Express

  • Accounts/Payments database

  • Internally and with our clients, we communicate mostly through slack. We're a remote team, so Slack is our communication backbone

  • Lightweight sprint management

  • Development

  • Development

  • Grafana is our monitoring system, with system and applicative dashboards

  • Kibana is used to search our application logs

  • Business and system counters go through StatsD and are pushed to InfluxDB

  • Our developers use Vagrant to provide a private development server environment

  • Clients' Assets are stored on S3 for reliability and redundancy

  • SES is our Email gateway

  • Git is used for all our source control

  • Installed on a private server, to manage our private code base

  • Our open source clients are on Github, as well as our REST API definition

  • Used to document all our REST APIs

  • Communication with our clients, support tickets

  • Internal file sharing

  • Our blog is on Ghost