This is more than just advocacy to develop a healthy NIH syndrome (not invented here), but a call to arms that you have to organically develop your own user-base from the ground up.

I think balancing these three things successfully (your code/design, your platform, your potential user pool) is probably something that's going to be written about in some depth over the coming years.

The key thing to remember is that short-term gains don't always translate into long-term gains with any of those three things -- Zynga is a particularly useful example: not really their design, not their platform, and not their user pool. Yet during their meteoric rise, we were virtually swimming in articles talking about how they used psychology and reward feedback loops blah blah to hook users onto their software. This translated into lots of users and therefore lots of revenue. Missing from all of the writeup at the time was the inevitable fact that users get used to your gimmicks/novelty wears off.

This translated into a general loss of players, loss of revenue and investors who were itching to move to the actual owners of the platform and user pool rather than the derivative company working with hand-me-downs.

So relying on all three things from somebody else doesn't appear to be a good path to go down.

It's easy to criticize, but practically speaking, startups can't really develop all three things on their own. We have to leverage previous work where we can to get started. Ideally that's your code/design, IP is valuable stuff. But for efficiency we all leverage other libraries, open source projects, etc. That's just modern coding practice these days anyways. We're basically just finding neat ways to put the legos together to get a spaceship or a race car. Finding a balance between your code and your leveraged components, in a way that builds value for your company is not trivial. Sometimes the glue between components really is worth a hell of a lot.

Platforms are tricky, again, if you are small, you end up running on somebody else's platform. Infrastructure is hard, expensive and often requires specific skill sets to get running smoothly at scale. EC2 may be the closest thing there is to a good balance that would let companies migrate to their own infrastructure if they wanted to. But infrastructure is also commoditized at this point, and an acquiring company may look at all that hardware sitting in a rack as a liability more than a value. However, there have been some successful infrastructure startups (Heroku). But if you are using somebody else's, be careful that you can move off onto your own eventually (or between, or back and forth). Regardless, the more of somebody else's platform you are using the less value you've developed for your company on the code side which leaves...

Users. This is what it's really about right? Companies really buy other companies for their users. The code/design is a nice to have in most cases, but it's really just a vehicle to get eyeballs to engage with your product. Sure there's some high-end particularly valuable code out there that's patented and doing something special that's worth millions. But users are really where it's at. Some questions to ask, are you sharecropping somebody else's user pool? Zynga is. It's up for debate if that's a successful strategy. Short term is appears to work, long term it appears not to. You need to at least rent-to-own, and Zynga simply didn't have a way of dipping into Facebook's pool, engaging the users, and then migrating out of FB and into Zynga's own pool. At the end of the day, by simply stopping using Zynga's products, the users fell back into their default state which was to be FB's users, not Zynga's.