I recently came across the article – Stop Designing Paths, Start Designing Platforms – which reminded me of a post I made a couple years referring to Lea Verou’s article on Eigensolutions.

The two articles go hand-in-hand. Eigensolutions are about providing the building blocks in your application that give the ability to compose higher level features. When those features don’t work for some users then they can compose their own. This approach works well with the ‘Design platforms’ idea where the platform provides the building blocks that can be composed together to suit an outcome, instead if prescribing the outcome with ‘hard-coded’ features and flows.

It’s definately worth reading these two articles: