Ever curious about what the software stack for programs you use looks like? I am, so I thought I’d share what Speaker Deck’s technology stack looks like right now, and then I can look back a year from now and see how much it has changed.

Speaker Deck is a simple application. You upload a pdf of a presentation that has been exported from Keynote, Powerpoint, or something similar, and it turns it into a deck of images that are easily viewed thru an HTML5 slide browser.

High-Level

So what makes it tick? Here’s the rundown from a high level:

  • html/css/javascript: currently we don’t use Flash anywhere
  • Ruby on Rails web framework
  • A bunch of ruby gems which I’ll list below
  • MongoDB, a high-performance document-oriented database
  • Redis is an advanced key-value store
  • FOG is technically a ruby gem, which get their own section below, but had to mention it here as it makes storing files in the cloud super easy

Service Providers

Platform as a service and software as a service providers:

  • Heroku is a platform for easily and quickly deploying, hosting, and scaling applications built on Ruby, Node.js, and now Clojure. A simple “git push heroku” lets us deploy to the cloud.
  • MongoHQ is where we host our MongoDB database. They manage the servers so we don’t have to.
  • Redis To Go is a hosted Redis database solution. We use Redis for job queues and Redis To Go lets us quickly scale our database to meet our needs at the time.
  • Amazon Simple Storage Service, otherwise known as Amazon S3, is a quick and easy way for us to host thousands of slides and pdf’s without going broke. They charge by the gigabyte for bandwidth and storage and its darn cheap.

Ruby Gems

There are a few more pieces of software we use for testing but this post is already getting kind of long.

So what are you using in your software stack?