Graffiti Marketplace
As I mentioned earlier, I recently checked in some changes into the Graffiti core to support what I'm calling the "marketplace" feature. Since Graffiti is a new, and therefore smaller product than Community Server, it's a bit easier to try out new ideas. The concept of the marketplace is simple.
In Microsoft Word, when you want to create a new document, you can start with a blank document or select from a list of templates...all shipped with the product. Additionally, however, you can grab a template from online without leaving Word. This was the basis for the marketplace idea. Initially, for the hack-a-thon, I built it for widgets. Knowing that many people would create new widgets for their entries, I realized that I couldn't compete at that level...I just wasn't creative enough. But, I thought, do we really want to ship with *every* widget ever created?
Conceptually, that presented a couple problems:
- A particular widget may be completely inappropriate for a particular site
- All possible widgets must be complete before we ship v1
- Too many widgets will be available and admins will have a hard time selecting which seem like a good fit
- If we ship widgets after launch, users (probably non-technical) will need to "install" the new additions
- If 3rd parties wanted to create widgets, and we're hoping they would, our widget catalog would be dispersed
The solution, IMHO, was to build the portion of the Control Panel that would allow admins view, filter, download, and install these widgets and keep an updated "catalog" of widgets available online.
So, that's what I did...
Earlier this week I took that prototype, flushed it out to be a bit more generic, added single-level category support, added the ability to view items by the same creator, and then checked it into the codebase. So as of today, Graffiti supports both a theme and a widget marketplace. And plug-ins are coming soon. Below you'll see an early screenshot of what it *may* look like in final form.
One of the next steps will be to begin to decide which items will live in the marketplace and which will ship with the product. Then, once we're solid on the API, we'll be able to publish the specs and begin to allow 3rd parties to create items that will easily plug into the product.
Sound interesting? Thoughts?