I hate to pay for things that I can do myself. I think anyone with half a brain does actually. There comes a point though where the value of your time starts to change, and suddenly very important things have bubbled their way up to the top of your todo list. Things like real-time error reporting and user tracking are things that I need, but not things i'm willing to reinvent the wheel for.
Below i've listed a handful of services that my team and I have put our trust in, and that are helping us focus on the one thing that matters most: shipping our product.
I sent out a Testflight build to my little sister the other day. Due to the 12-hour time difference between us, she happened to sign-up while I was asleep. I woke up to a screenshot from her of a 500 error. Fail! I spent some time grepping the log files on the server and ultimately discovered what happened. It took a while to reproduce the issue though, and so I knew that I needed better error reporting. This brings me to the first application in my bag of tricks: Sentry.
There are a lot of error tracking services at our disposal these days. New Relic, Honeybadger, and Airbrake just to name a few. Sentry is arguably the prettiest and my favorite right now. It was born out of Disqus, one of the world's largest Django deployments. Like Wordpress, it comes in an open-source and hosted variety.
After attempting (and failing miserably) to upgrade my own install, I trashed it and jumped on their hosted platform. I didn't want to see errors from my error tracker. The UI is clean and modern. It's a bit flat, but good flat like LayerVault and not like Metro or a high-school gymnast. Unlike New Relic's atrocious Easter Sunday™ color scheme, it's easy on the eyes and feels well put together. It appears minimalist and lacks clutter, but the error reporting and tracebacks are detailed and useful. It's a great developer tool made for engineers, but it certainly wasn't designed by one. I like that.
It's hooked into the back-end (Rails) API for our soon-to-launch iPhone app. I've also got it plugged-in to the Django application powering Wheelflip, the site that I built and operate for one of my closest friends. Finally, it's keeping me posted on all the things I missed when building the uber-simple Rails blogging platform that is rendering this post to you right now. Siri, remind me to add a proper 404 page.
I am quite the happy camper with Sentry. If you decide to give 'em a shot, sign-up here to send some internet love my way!
This is kind-of a given. Basecamp has a solid reputation for being a consistent and useful tool for collaborating on projects. I've been a paying customer on and off since what feels like the dawn of time. We're currently planning and collaborating on all our projects with Basecamp Next.
I'm a huge fan of Kanban-style software like Trello and Kanbanpad, but right now everyone on the team is most familiar with Basecamp. I also feel it's a bit friendlier for long-term planning. I use Trello to plan out my week as I can quickly see the status of things I am working on. But in terms of the overall project pipeline, Basecamp is doing great right now. I've used Pivotal Tracker quite a lot, and frankly it makes me nauseous. Sprint.ly is similar and gives me the same feeling. It's cluttered and seems to require too much initial effort to get things organized. Asana too. With Basecamp, the UI stays out of the way and doesn't try and do too much. The HTML5 drag-n-drop file upload is also a subtle yet invaluable feature.
Google Analytics is a joke. I feel like i'm wrestling a Windows machine when I use it. For a straightforward, drop-dead-simple analytics experience: Gaug.es is the way to go. My one gripe is that I can't auth with Github, their new owner. I'd imagine that isn't too much to ask and will come to reality at some point. I've got Gaug.es deployed here on Whalesalad and also on Wheelflip. For larger projects requiring more detailed reporting it won't suffice, but for a personal side-project it gives me just what I want: What's popular and who's talking about me.
Dropping Segment.io into the back-end of our Rails app was a no brainer. Until I met the vicious Unicorns in production, it required hardly any thought. Unicorn is a forking web server, so certain things need to be manually handled when a fork is spawned or killed. Check out this gist of my
config/unicorn.rb to see how that was handled.
All mystical animals aside, Segment.io is beautiful. Both aesthetically and in terms of the value it provides. They've really managed to build a much needed service. You talk to Segment.io and it acts almost like a load balancer, passing re-formulating and bouncing your incoming events onward to services like Mixpanel. I'd like to say we have roughly 15 lines of code in our app handling third-party analytics right now. It doesn't hurt that we've managed to engineer a pragmatic and elegant approach to event tracking within the app.
The dashboard gives you a birds-eye view of what's going on inside of your app. It's the kind of thing you'd deploy on a Raspberry Pi plugged into a TV hanging on the wall of your red zone. The giant graphs will change color to indicate the movement of trends, and they're drawn with SVG so they look smooth and crisp.
I'd also like to tip my hat to Calvin (@calvinfo), a helpful chap who appears to be quite the polygot programmer. He's been building a lot of their API clients, and provided some fantastic support while I was debugging my production issues. He's proof that if you're smart and talented, you can learn Ruby in a few weeks and bang out a solid v1.0 API.
My experience with Segment.io has been above and beyond pleasant. They're some smart people doing good work, and that's very respectable. I'm not paying yet, but I won't have any hesitation handing over my Mastercard when we're tracking more activity.
It doesn't matter what crops up in the world of cloud computing and one-click deploys, I always come crawling back to Linode. They've got data centers all around the world, really fast support, and their hardware never disappoints me. I'm not locked in to 1 compute node, half a 500mhz of one eighth of one CPU per hour, or any other shenanigans.
I could easily write volumes on how great Linode is. Long story short, if you need the flexibility of one-click deploys and performance that is near bare-metal, go over to Linode and get yourself a box right now. That's a referral code. You better use it, I just saved you boat loads of time and frustration by steering you in the right direction here.
My one and only complaint with Linode is that I'd like hourly billing to do experimentation. I guess you can't have your cake and eat it too. Fortunately billing is pro-rated though, so if you deploy a box and kill it, that remaining balance gets put back into your account. I have a small handful of boxes there, so it's no big deal.