Marc Andreesen offered a good definition of platforms in a 2007 post titled “The Three Kinds of Platforms You Meet on the Internet”:

A “platform” is a system that can be programmed and therefore customized by outside developers — users — and in that way, adapted to countless needs and niches that the platform’s original developers could not have possibly contemplated, much less had time to accommodate.

Andreessen goes on to argue that there are 3 levels of Internet platforms — 1. Access API, 2. Plug-in API, and 3. Runtime environment — the differences depending on where and how developers run the code, as well as the amount of technical expertise and financial resources necessary to do so. Level 3 platforms are the best for developers, Andreessen contends, adding that “I believe that in the long run, all credible large-scale Internet companies will provide Level 3 platforms. Those that don’t won’t be competitive with those that do, because those that do will give their users the ability to so easily customize and program as to unleash supernovas of creativity.”