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.
So what makes it tick? Here’s the rundown from a high level:
- 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
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.
- rails 3.1
- Nunemaker’s fork of imanip
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?