An application has specific features. A platform gives you the ability to build new features by connecting or extending a set of primitives. When an application can be customized in many different ways, especially with hooks for custom code, it starts to look like a platform.