At the end of 2006, I had thought that the 2007/2008 election cycle would be the cycle of widgets: cute little web utilities that could live on any website, allowing the user to take some small but concrete action. Widgets have always been a big part of MySpace, whether they played music, showed a photo album, or just generally wasted pixels and bandwidth. If you use Mac OS X, your Dashboard is made up of widgets. If you use iGoogle as a start page, those are widgets as well, although Google has branded them as Google Gadgets. Facebook Apps are really widgets, and the vaunted Open Social API is really just a Google Gadget library.
So we do have some containers (places) to put widgets into, but it’s not quite universal yet, and incompatibilities are abundant. Furthermore, widgets have been quite difficult to make well. Technically, they require knowledge of Adobe’s Flash, or Javascript and AJAX, or even heavier serious development skills to create Facebook Apps or Google Gadgets. To make them look appealing, some serious design chops, along with graphics tools like Adobe Photoshop or Illustrator, were necessary as well.
A few months ago, Adobe released Photoshop Express, a light version of Photoshop contained entirely in a web application. Photo editing tasks like cropping, color adjustment, and filtering were now possible for free and over the Web. In the same vein, a company called Sprout launched a Flash widget creator, aptly named Sprout Builder.
Sprout Builder lets you get started with some pre-made templates, and I took advantage of one of them to create a faux campaign widget. This widget includes a sign up form, an embedded video from YouTube, a calendar, and a feed display (from JumpTheShark.com, because as we all know, Ted McGinley is the harbinger of shark-jumping):
The Sprout Builder interface should be familiar to users of any Adobe product (Photoshop, Illustrator, Fireworks, Flash, et. al.), but it does take about twenty minutes to get used to. There are several useful integrations that come bundled with Sprout Builder:
- YouTube Videos
- Feeds
- ChipIn Donations
- Google Charts
- Google Forms powered by Google Spreadsheets
- PollDaddy
- Twitter Tweets
- Yahoo! Maps
These are all well and good, and as seen above, I used Google Spreadsheets to create a sign up form. Making a good-looking widget with rich media is easy and intuitive with Sprout Builder. But there are two major features that are lacking from Sprout’s widget capabilities, and they are essential to making truly useful widgets:
- Form submission to any arbitrary URL – While the Google Forms integration is useful, an even more useful feature would be the ability to send HTTP POST data to any URL. This would be essential to cutting out the middle step: allowing supporters to directly sign up to an email list is much better than manually importing a spreadsheet on a regular basis.
- Arbitrary data sources – Feeds are nice, but truly arbitrary data sources via XML would be even nicer. For example, the Poll Watcher and Delegate Count widgets on MyDD are powered by XML files that can be edited by a human or updated regularly by a scheduled routine. Because XML can be verbose, more simple file formats like YML or JSON can be supported.
Sprout Builder is pretty amazing as it is. One can create great-looking and very useful widgets with the existing toolset. But adding in the ability to pull data from and push data to arbitrary sources would make it absolutely indispensable to campaigns and organizations who want to distribute widgets but don’t have the resources to make their own from scratch.
UPDATE: TechCrunch reports this morning that SproutBuilder has actually released an SDK, which is how Twitter and Google Forms integration is accomplished. Developers are now free to create their own integrations, and I'm wondering if I should take a stab at the two suggestions I made above. There still appear to be bugs however, because at the time of this writing, the Google Forms integration seems to be down on the Sign Up page in the widget above.

