Single Point of Failure

Why I no longer use Google for everything

Periodically a story makes the top of Hacker News about someone who's just had their Google account disabled. Every time I read those stories, I think through what would happen if my account got disabled, and as you might imagine, it wouldn't go well for me, since I don't have any good friends who are Google employees who could bail me out.

I don't have any problem with what Google's doing, and I still intend to use some of their services, but it has become a massive single point of failure for me, and I don't have any recourse if something happens, since Google has no support.

I've decided to fix that by switching to separate providers for the services I depend on. Here's the breakdown of what I'm switching and what I'm keeping.

Switching

Email

This is the most important service I'm switching, since it's what I use and depend on the most. I've tried a number of alternatives, and I've decided to go with Fastmail, since they support custom domains, IMAP, SMTP, and have a nice web interface. It's also not expensive for 10GB of space at $40/year (or $32/year if you prepay 5 years). Fortunately, I've been using my own domain with Google Apps, so this switch will be completely seamless for everyone I communicate with.

Email Clients

As a side effect of dropping Gmail, I also needed to switch mail clients on my Android and iOS devices. The key feature I need in a mail client is identites, since I send mail from my custom domain, not the Fastmail account username. On iOS, this is simple, since the native mail client supports sending from a different email address.

Android however, does not support this in the native Mail application, so I had to find a good alternative. The one I ended up with is Kaiten Mail, which is excellent and well worth the $5. It has support for Identities, archiving mail and a plethora of customization options. My only gripe with it is the icon, which looks a lot like a trash can.

Contacts and Calendar

While Fastmail does provide contacts, they don't offer CardDAV syncing, which makes them unavailable on Android and iOS. My solution is to use a separate service, a self-hosted instance of Kolab for both Contacts and Calendar. This works with iOS and Android, since it has support for ActiveSync. It also has a very solid web interface for managing both.

I've also been experimenting with ownCloud's Calendar and Contacts, but I'm unimpressed with their web interface and I probably won't keep it. The main reason I'm trying it is the CardDAV and CalDAV support, since those protocols work well across all platforms, desktop and mobile. Kolab has announnced support for both in the next version, so I think it's still the better choice.

CalDAV/CardDAV Support (Mobile)

This is mostly for my own reference once Kolab has support for CardDAV and CalDAV - iOS has native support, Android does not, but there are good sync adapters available from Google Play for both - CardDAV-Sync ($2) and CalDAV-Sync ($2) which both support 2-way syncing.

Reader

I've been largely off of Reader for a while, since it's been obvious Google didn't care about it. The only place I still use it is on iOS, since it's the only service my favorite RSS reader (Byline) syncs with. Other than iOS, I've moved all my feeds over to both NewsBlur and Feedly, and have been alternating between the two. I'm waiting for the dust to settle after Reader shuts down to decide which I'll stick with.

Music

I'm setting up ownCloud to replace this as well. I'm using ownCloud's file sync to move Music up to a server and then for playback I'll use a separate tool (ownCloud has a built in music player, but it doesn't have many features for filtering albums or artists.) My intention is to setup, Ampache, Subsonic, Jinzora or something else on the server to use for playback and streaming.

This is an area where I might end up back with Google, since nothing I've tried has been very good and I also have everything in Amazon's CloudPlayer, so it's not really a single point of failure for me.

Keeping

Voice

I haven't found a good alternative to Google Voice; SendHub is close, but it's missing a number of key features like SMS to email and at $25/month for 500 minutes it's a little expensive on top of a cell phone bill. My current plan is to start experimenting with the Twilio API to see if I can duplicate the most important features of Google Voice myself.

Docs / Drive

I don't use Docs enough to merit finding an alternative and I already use Dropbox for syncing.

Search

Google still has the best search engine. It's also not strongly tied to my account, so I don't have to worry about losing data.

Summary

I have a few final thoughts on this process:

  1. Google's great on the wallet

    Google's offerings are free, which is really hard to beat if you're trying to be economical. However, that comes at the cost of no support. Now that I'm out of college and have an income, but less time, I'm willing to pay for support and the assurance a service isn't going away.

  2. Google's/Microsoft's/Yahoo's/etc... free offerings suffocate markets

    Looking around for good alternatives to products Google or Microsoft offer for free is really hard. There's no really good open solutions for online calendaring, or, until the recently announed death of Reader, RSS readers. Nobody wants to compete with Google.

  3. Rent a dedicated server

    Nothing gives you more flexibility than having a big beefy dedicated server to run VMs on. When I want to test a new tool, all I have to do is clone a template VM and install it. If I like it, I keep the VM, if not, I delete or archive it and move on.

That's my experience switching from Google. If you have suggestions for good alternatives I'd love to hear about them. Feel free to post a comment or tweet @justjohn.

Mass GTUG Chrome Hackathon

Yesterday was the first Massachusetts Google Technology User Group (Mass GTUG) hackathon I've participated in, their Chrome Hackathon. It was a great experience with a pair of talks in the morning; one on building chrome apps (given by @jankleinert) and the other on hacking Chromium OS. The main even was the afternoon (from 1-5pm) devoted to developing interesting apps and extensions for Chrome. There were a total of 10 demos from the afternoon's work ranging from a Chrome extension for managing a todo.txt task list to a tool for collaboratively editing LaTeX documents.

My project for the afternoon was a social wallboard. I had it in enough shape to do a short presentation by 5pm, but I didn't manage to get all the features that I wanted in (4hrs really isn't very long.) I have a good start however and intend to keep working on the project. Hopefully I'll have something usable in a few weeks after I've had a chance to solidify the OAuth authentication flow with the social services; I implemented the base code for Remember the Milk and Flickr during the Hackathon but I plan on adding a fair number of additional services over time (Twitter, Google Calendar, Delicious, etc...)

My primary takeaways from the day of hacking are that if you want to have a good demonstration after one afternoon you really have to cut back on the scope of your project (i.e. don't involve too many third party services; especially ones with OAuth) and it would have really helped to have a team of people to distribute the load across and brainstorm with. Overall though, it was totally worth it and I'm looking forward to the next chance I have to participate in a Hackathon.