I've been really impressed by the growing number of software platforms that let outside developers contribute code through a pluggable architecture (plugins/extensions).
I've been studying which platforms have the best plugin communities...
Excellent Plugin Architectures with thriving plugin communities:
- WordPress (and WordPress MultiUser) for blogging: 4245 plugins
- bbPress for message boards: 165 plugins
- Firefox for browsers: 1265 extensions
- Magento for e-commerce: 732 plugins
Then there are platforms with less active plugin communities:
- MediaWiki for wikis: 22-38 extensions?
(For the sake of focus, let's put aside or ignore platforms that enable full-fledged software apps, like Microsoft Windows, iPhone, and Facebook.)
What would you say gives a software platform a successful plugin architecture with lots of plugins, versus another platform with a smaller or inactive developer community?
Just to get things started, here's a partial list:
- The platform does something broadly useful: let's people browse the web, buy and sell stuff, publish blogs and message boards, etc.
- The platform is open source (or at a minimum, the source code is freely available).
- All important functions in the platform are fully plugabble through hooks and filters.
- All or most pluggable functions are well documented (or there's a wiki so developers can document it for you).
- There's a forum or email list where developers can share plugins, and share tips and tricks
- There's a forum or email list where less sophisticated users can get help installing and configuring the plugins.
What kind of things can a platform developer do to create a pluggable architecture that encourages lots of outside developers to create plugins?