The fundamental problem with platforms is that they do not generate value with their first users. They suffer from the ‘chicken-egg’ problem, which they need to solve.
Without users there is no critical mass and without it no transactions are generated. They need to start from a certain degree of complexity in order to start and grow. This is the real barrier to entry they have, and the grave of many startups.
At the same time, they must have a certain openness that allows them to create other ways of generating value (‘applications’) in ways that are not always predictable. That is, they must have some degrees of freedom; enough for some creative chaos to take place inside them.
The case of software is the most typical: Linux, OpenBSD, Android, WebKit, Wikipedia, etc. allow building business models on them making emerge an ecosystem.
It is always better to start from a working business and migrate to a platform than to start from scratch.