Twitter last week announced they'd stop allowing 3rd party developers to embed advertisements in their streams. Bummer. First they released native mobile clients, now this. Facebook isn't any different. They're forcing developers to use their payment system and taking a larger slice of the pie. Then there's Apple's closed iPhone/iPad system. Who wants to deal with these headaches? No doubt it's easier to get off the ground, but I'd rather put my weight behind a standalone product and not rest the fate of my business on a platform.
Story: The Pains of Building on a Platform
I had my first taste of building on top of someone else's platform when I started TypeFrag back in December, 2003. TypeFrag was built on the back of Ventrilo, a piece of software that we licensed, resold, and built an entire web app around. It was a waking nightmare, as we had no control over the technology. Ventrilo was coded and run by a single individual who was as slow with his updates as he was in responding to the development community's requests. We were the largest Ventrilo host, but we didn't have any leverage.
About a year into TypeFrag, as Ventrilo began to become really popular, they raised rates on us and everyone else. That sucked. We had no control over its development and little to no influence on new features, and that left us with very few options. When a new version did come out, we were not given any advance notice and had to quickly re-write our control panel code and re-deploy the new server code to our dozens of remote servers around the world.
The constant awareness that you're relying on someone else is enough to drive you bonkers. We were left with no option but to build our own software as a fail safe. We hired full-time developers and began building GameComm — voice software we could fall back on if Ventrilo was to bite the dust.
Eventually, back in 2006 we failed at building that software, and shortly after that, in early 2007, I exited TypeFrag and GameComm. I just couldn't deal with the idea of not having control over our product. Until you have your employees and your own welfare riding on the whims of another company, you cannot know how terrible this feels.
The granddaddy of all reasons, and the only one strong enough in itself to refute any contrary opinion, is that at any time Twitter, Facebook, etc., can make any change to their Terms of Service that their heart desires, leaving you high and dry. It's worth repeating: At any time the API developer can change their Terms of Service, leaving you with no leg to stand on. None.
In any developer's agreement you ever sign on for, there's a little clause hidden in unreadable English saying that the company can change its Terms at any time for any reason whatsoever. If you don't like it, that's tough. Twitter laid that out clearly enough: "Twitter may update or modify the Twitter API, Rules, and other terms and conditions, including the Display Guidelines, from time to time at its sole discretion by posting the changes on this site or by otherwise notifying you (such notice may be via email)." Twitter is not alone. All API developers include a clause like that.
You cannot rest the fate of your business and your personal livelihood on top of another person's platform. Do not be in denial about this. Ad.ly's Business as Usual blog post is a perfect example of this. They got completely screwed by Twitter's change of Terms of Service, but are acting as if things are all fine and dandy. They're not. Simply walk away if your business is threatened by any signed agreement.
But a Web Browser is a Platform!
Every web application is built on top of a web browser. We're all at the whim of Firefox, Safari, Chrome on the browser side and Windows, Linux and Mac OS X on the operating side. That's a given. There's nothing we can do about that. But as platforms they're much more stable and continuous than API's like Twitter. As web entrepreneurs, we have to adapt to the new technologies, specifications, and so forth, but these are not going to changing overnight, and the market dictates what changes a lot more.
Let's table the discussion that it's as dangerous to build on a web browser than it is to build on the back of Twitter, Facebook, Foursquare, and others. That argument is irrelevant. I got chided on Hacker News for neglecting to say that our businesses are built on "ever-changing" web browsers and operating systems, but really that's simply diverting the issue away from the more worrisome platforms.
But VCs are Investing in Platforms
Plenty of VCs are putting money aside in their funds to invest in platforms like the iPhone, iPad, Facebook, Twitter, and others. fbFund, for example, is a $10 million fund set up by Facebook and Accel Platforms to invest in startups building on the Facebook Platform. This is a win-win for Facebook, because even if they don't make back any of their money, these startups directly add benefit to Facebook as a whole by producing quality apps. But who else wins if these apps can't trust Facebook not to change its Terms?
Another example of a fund gambling on platforms is Kleiner Perkins and their $100 million iFund for iPhone applications. Back in 2008, Kleiner Perkins bet that the iPhone would sell so many devices that there would be a lot of money to be made in the Apple marketplace. When this investment was announced in March, 2008, it struck me as odd. Venture capitalists are looking for exits: either acquisitions or IPOs. How the heck is an iPhone app going to realize either of these outcomes? Maybe as a talent grab acquisition (see Twitter's acquisition of Tweetie), but certainly not as an IPO.
Just because VCs are betting on there being money in building on top of platforms, that doesn't mean that it's a smart move for you. Some of these are hot technologies, and VCs are willing to take the risk with a small portion of their fund, but I wouldn't bet my shirt that this is a winning strategy in the long-run. Investment is going to start slowing down for platforms if it hasn't already. Chris Dixon's comment after Twitter's announcement really sums up my feelings: "Twitter is like a drunk guy with an Uzi killing partners left and right. Expect investment in ecosystem to drop significantly."
Get People To Build on You
While I hope I made it clear why you shouldn't build a company on top of another platform — no control, no assurances, no input, your fate is in their hands, it's limiting, and so on — you should make it possible for others to build on top of you. You should have an API. You should encourage developers to integrate pieces of your app inside theirs. This'll create new exposure to your product and increase your stickiness (the more services relying on you, the larger your reach). No qualms here on that score. Just don't be the sucker trying to build a profitable and sustainable business on a single platform.
As a Hobby
There's nothing wrong with building on top of another platform for a hobby project. You want to build something quickly, you want to take advantage of a large pool of users, and you want make something fun. If you're successful, you'll gain some reputation, make people happy, and have something neat to share. Just don't do it at a business.