Web Services used at ImpulseFlyer

I thought it’d be interesting to share the tools and services we use to run ImpulseFlyer. A lot of these are personal preferences as I’m in charge of the technology/design side of things. And we pay real money to most of these people, the biggest endorsement I can offer.

Heroku

heroku.com

I’m basically in love with Heroku. I’m a terrible SysAdmin and pouring over Slicehost tutorials trying to get a feasible Rails server running wasted a lot of time in my early Rails days.

So I leapt on Heroku. Sure you can probably get bare-metal or VPS hosting cheaper, but the knowledge that when my server goes down that a) it’s not my fault and b) a team of people, smarter than me, leap to get it back online is priceless.

Plus my deploy process is ‘git push’. It still freaks me out how awesome that is. It lets me focus on the design and development of my app, where I can really add value. And that frankly is the key.

Sendgrid (via addon)

sendgrid.com

We use the Sendgrid add-on for emails from the app. Typically a mixture of user admin stuff and some emails to the dev team in the event of something going wrong.

New Relic (via addon)

newrelic.com

Just about my favorite developer thing. You can dive deep into the backend (and front-end) performance of your app all from a lovely web interface. If you are doing any serious web work and you don’t use this (or Scout) then you’re flailing in the dark.

Exceptional (via addon)

exceptional.io

Important. If something gets through your CI and eyeballing… you need to be told straightaway. You should also wrap your background jobs in Exceptional calls too.

SSL (via addon)

I was on the beta for the new SSL, which is a hell of a lot easier than doing it the old way. Combined with a great DNS provider like DNSimple (more later) there’s no excuse. There’s no longer a free tier for our domain-named staging environment, which is a bit of a shame but twenty bucks is hardly a big price to pay.

Hirefireapp

hirefireapp.com

An awesome utility that saves you money and ‘traffic rush’ problems. it basically pings your applicaton and spins web and worker dynos up when they are required and turns them off when you don’t need them. Necessary, if you’re running any app on Heroku with backgrounded work, it even saves you money by not leaving dynos idle.

TDDium

tddium.com

CI in the cloud. Pulls from Github, pushes to staging. Given the hassle it is to set up a reliable CI box yourself (if you are bad SysAdmin) this is frankly amazing.

Also, epic naming.

S3

aws.amazon.com/s3

All our images are on S3, we’re looking at cloudfront for these, and our assests, during our cycle through performance in the next week or two.

Campaign Monitor

campaignmonitor.com

We’re in the flash sales business, which means we send quite a bit of email compared to other businesses. Whilst our transactional email is dealt with by Sendgrid, it’s important to have a human friendly system for our regular outreach emails. I don’t want large-scale marketing emails generated by a machine.

I’ve built relatively advanced mail templates to allow our content director to add some visual spice to our emails. The content is mostly a regular format, but not one that is completely static, it needs (and our customers deserve) a human touch. Equally I don’t want to engage any engineering time every time we want to add a new section, hence CM’s web interface is perfect.

We maintain state with our app through their comprehensive API and webhooks.

DNSimple

dnsimple.com

Just a lovely interface for domain registration and DNS services plus it works sweetly with Heroku (particularly for SSL). I use them personally too. Godaddy can die in a hole.

Campfire

campfirenow.com

Used for two things, group chat as team members are frequently remote and via a few web services an ongoing track of commits, deploys, story approvals and CI reports.

Sure we could use IRC or an open-source alternative, but the straightforward interface for non-technical team members means it gets used. There are callbacks for most development services we use plus I’m a sucker for native apps, of which Campfire has several.

Gemnasium

gemnasium.com

It’s a bit of a 9 buck luxury, but an email that lets me know which of our libraries is out of date encourages me to actually look into and update the third-party code we rely on. We all need a push to update a minor security point release, right?

Again, epic naming. I love the ruby community.

Github

github.com

At this point a necessity. Most good developers are already on here, it’s ease of use is great and we’ve experimented with pull request style development but at this stage of our development team, we’re still mostly rebasing into master.

Google Apps

google.com/apps

I have my own personal dislike for new creepy, ‘social’ Google, but everyone uses their free email for domains and so do we. Some of the business guys use GoogleDocs as well, but i just can’t stand the browser as document editor thing.

Pivotal Tracker

pivotaltracker.com

It took me a long while to love Tracker, but when you fall, you fall hard. Pretty essential and they seem to be iteratively improving their UI, most of the edges I used to chafe against have gone.

I’m intrigued by Thoughtbot’s Trajectory but haven’t had the urge or need to play with it yet.

Dropbox

dropbox.com

We operate a central ‘business’ dropbox account and share specific directories to team members individual dropboxes.

Dreamhost for Wordpress

dreamhost.com wordpress.org

Our Wordpress blog runs on Dreamhost, which has a one click install and we cache to protect against traffic spikes. For simple shared PHP hosting Dreamhost is still a great solution.

Intercom

intercom.io

It’s rare that you come accross a revolutionary product, but Intercom seems to be it. It tracks your users engagement with your site and also allows you to have an on-site asynchronous chat with individuals or make an announcement to everyone on the site.

Steven, our CEO, is in love with this tool. It lets us speak to our user base human-to-human, and the feedback we get from our users is invaluable.

Kissmetrics

kissmetrics.com

We’re tracking several of our user signup and conversion metrics accross the site. It’s a bit full-on and a little confusing to set up and it’s fuzzy-matching of URLs could be better.

I’ll be experimenting with Mixpanel at some point in the future to compare implementations of the same concept.

Crazy Egg

CrazyEgg

We’ve also implemented this to test customer interaction with some of our pages. I previously used it with some success at Viki during a contracting gig.

Although this is only after battling through their slightly machievellian signup process. To get to pay monthly I had to go through: free trial for annual plan, cancel (ignoring the 40% discount offer) and then reactivate to be able just to do a $9 monthly plan.

Gauges

gaug.es

Now a part of Github I use this mainly as a quick, visually delicious, realtime alternative to Google Analytics. Useful to see if traffic is going mental and to get a high-level view of popular content and referrers accross the site.

Vimeo

vimeo.com

For hosted videos like our ‘On the Fly’ series. It’s just nicer than YouTube.

Sublime Video

sublimevideo.net

For videos we host ourselves Sublime is a great wrapper around HTML5 <video> tags that enables legacy flash support for old, bad browsers but maintains a very similar interaction design. Plus gives you lovely stats. I waver over whether we should use Vimeo at all given this exists, but apparently we need to be ‘social’ :-)

Reading through this, somewhat epic, list makes me realise that modern development isn’t just coding. It is as much about utilizing a whole suite of existing tools and knowing where best to apply your skills and where to let it be someone else’s problem.


If you liked this article you might be interested in my forthcoming Ruby writing:

Go and sign up to my mailing list to hear when I launch and to get a special discount.


2012