A Look Inside Raindrop with Mozilla's Bryan Clark
A Look Inside Raindrop with Mozilla's Bryan Clark
Join the DZone community and get the full member experience.Join For Free
DZone: What was the inspiration/reason behind making Raindrop? Is it geared toward any specific type of user besides the general public?
Bryan Clark: Raindrop is an evolution of messaging software. It definitely tries to solve a power user problem but it does this in simple ways so that any type of email user would benefit from using raindrop.
DZone: How is the user experience driving the UI end for this?
Bryan: User experience is the driver for everything in Raindrop. It started with an idea of bringing a more fun and useful email experience to people and that goal is pervasive in every part of the code.
DZone: How is Raindrop fundamentally different from Google Wave in its architecture and its features?
Bryan: Google Wave is a new protocol and interface for collaborating and we're really excited about the potential of Google Wave. Raindrop is about working with existing systems that people already use, we use existing libraries to access Twitter, Email, and other systems like Facebook. Where Google Wave is a whole new system to start using we are trying to make the existing systems usable again.
DZone: Let's go under the hood--what technologies did you use to build this? What do they enable?
Bryan: First there is CouchDB which stores the messages and serves the web based UI. Couch provides us with great possibilities for hosting and replication; you can run an instance on your laptop and somewhere in the cloud and both will keep in sync so that your mobile phone doesn't know the difference. Currently we also use Python and the Twisted libraries to pull email and twitter messages into CouchDB but that's likely to change in the future, we'll see.
DZone: Does it harness many HTML5 capabilities such as <canvas>?
Bryan: We use the @font-face properties and some CSS3 capabilities, especially in the layout. We haven't used <canvas> yet but we have plans for a number of different "personal messaging reporting tools" that use canvas with libraries like protovis to give you timelines and graphs that help you understand more about your messaging habits.
The Raindrop applications targets HTML5 capable browsers, we are leaving the others behind, so we intend to use all the HTML5 features that make sense for us.
DZone: What is the plugin system like in Raindrop? How can developers leverage plugins?
Bryan: The great thing about the Raindrop extension/plugin system is that everything is built as an extension. The system understands that there are protocols and then messages which have been created using various plugins. At the UI level all we interact with are higher level "conversation objects" created by a number of plugins from converted messages. This means that developers can easily see what is going on under the hood and intercept or extend the existing system to go beyond our implementation.
DZone: As developers who are creating a productivity tool, how could developers like yourself harness Raindrop for greater productivity?
Bryan: Personalization and sharing. As a designer and researcher I've seen so many different ways that different people use email for productivity. It's important with a messaging tool that you help the community create new ways of extending the application to be more productive and then share those extensions with others so regular users can use and improve the extensions as well. We have lessons to learn from Firefox and Twitter in this respect.
An easy example for our developers is Bugzilla and Trac plugins which undersand how to data mine these types of messages and present the information in a less "static" format.
DZone: Since this is an early version of Raindrop, are there many different paths this software could take? What's in store for Raindrop? What are some possibilities for its evolution now that it is out there for developers to play with?
Bryan: Certainly, as we're still in the design phases I have no idea what the final Raindrop, that is consumer ready, will end up looking like. We do have our goals and guiding principles which means we know what type of product we'll end up with, but the techology and UI are still being determined.
This is one of the great things about raindrop from my perspective. Many times software vendors will launch a new product and ask for designers and developers to join the community in making it better, but often many of the decisions have already been made. As a designer (or developer) it's often not as intersting to walk into a world that has already been defined and this is where Raindrop is different. Raindrop is defining itself in the open, we've done some experiements to get the goals and ideas across but we're open to new ideas from new designers and developers; people can have an actual impact.
Opinions expressed by DZone contributors are their own.