On the Ushahidi Plugin System

Ushahidi
Jun 29, 2010

One of the features we're really excited about for the Ushahidi Platform 2.0 release is the plugin system. What exactly is a plugin system anyway? Well, let's just use an analogy to answer that question. Let's pretend that the Ushahidi Platform is a house and adding any new stuff to that house would require electricity. Well, before the plugin system was in place, this house did not have any electrical outlets. Naturally, it could sometimes be a cumbersome process to add new stuff because you have to either bring your own generator or run an extension cord. With the addition of the plugin system, we've essentially added an electrical outlet to each room in the house. Structurally, the house hasn't changed, but now you can easily add new stuff by "plugging-in" to whichever electrical outlet you please. Jumping back to reality, we see the plugin system bringing several benefits:

Expands Development Opportunities: Developers now have greater ease and flexibility in tapping into core platform. No more extension cords and generators!

Less bugs in the core platform: Any time you build new functionality, you're going to encounter bugs. The plugin system allows us to keep new functionality physically separate from the core platform and will thus reduce the amount of bugs that pop up in the platform.

Allows us to integrate other online tools without "reinventing the spoon": Third party tools services can now be easily integrated without heavy customization of the core platform.

Anyway, a few weeks ago, David and I had skype video call to go over the plugin system and answer a few questions the Ushahidi Developer Community sent in. Please check it out to get more of the details.

We've already built a few plugins to get things rolling. Check out the growing list here: http://apps.ushahidi.com. To learn more, check out the documentation on our wiki. You can download the latest code on Github. We're really excited to see what folks can create using the new plugin system!