Mozilla’s Raindrop to Provide a Tidy In-Box for Everything

Mozilla on Thursday introduced Raindrop, a project that seeks to consolidate online communications.

The Raindrop team consists of the same people who worked on Mozilla’s Thunderbird, an open source, cross-platform email client.

Mozilla Labs Raindrop

Mozilla Labs Raindrop
(click image to enlarge)

Raindrop will complement Google Wave, the new data communication and collaboration tool from Google.

About Raindrop

Raindrop employs a mini Web server to fetch users’ conversations from different sources such as email, Twitter, RSS feeds and YouTube and pull out the important parts. Users then interact with these important parts through their Web browsers. Raindrop is open source and is based on Bespin, a Mozilla Labs experiment on building extensible Web code editors using HTML 5.

Raindrop works with Firefox, Safari, Opera and Google Chrome. However, Microsoft’s Internet Explorer is excluded, because it does not work with HTML 5, explained Rafael Ebron, director of marketing for Mozilla Messaging. “We are targeting HTML 5, and when Internet Explorer works with that, we’ll work with it as well,” Ebron told TechNewsWorld..

The idea is to make the communication process people-centric, the Rainbow team said on its blog.

“It’s really giving you the in-box back,” Ebron said. “The idea is to collate the different message types.” That’s where the team’s experience with the Thunderbird email client will be useful. “One of Thunderbird’s strengths is it can handle multiple email accounts and blogs in one account,” Ebron said. “We’re taking that and looking at the different messaging types like Skype, Twitter and email and seeing how it makes sense in the Web environment to consolidate them.”

Social networking sites like Facebook already go some way toward consolidating different types of online messages into one interface — for example, you can post a YouTube video with a message on your friend’s Facebook page.

That’s not quite the same thing as what Raindrop is trying to achieve, Ebron pointed out. “With Facebook or Twitter, you are on their Web page,” he explained. “Raindrop is a message client within the browser and you can see all the conversations within your own browser instead of having to go to another Web site like Facebook.”

The idea of consolidating all a person’s online communications makes sense, Rob Enderle, principal analyst at the Enderle Group, told TechNewsWorld. “Microsoft Outlook and Lotus Notes were and are both communications consolidation platforms; Raindrop and Google Wave simply go further faster,” he explained.

The Raindrop team will support front-end applications of various kinds, including mobile apps, but its flagship apps will be built for any modern Web browser that supports Open Web technologies. Version 0.1 of its prototype embeds Bespin to support a fast, iterative development style. It also provides front-end widgets and back-end code that supports important high-level concepts such as people, conversations and mailing lists. Apache’s CouchDB open source database and the Python language are key parts of Raindrop’s prototype architecture.

Mozilla is inviting app developers to write Raindrop extensions that use standard open Web technologies like HTML, JavaScript and CSS, or use lower-level application programming interfaces to create their own experience.

About Bespin

The Bespin project is trying to create an open, extensible Web-based framework for code editing. This will increase developer productivity, enable compelling user experiences and promote the use of open standards, according to the Bespin Web site.

Social collaboration is at the core of the Bespin team’s vision. The team met with the Google Wave team and is looking at collaborating with Wave.

Bespin also has a Ruby on Rails plug-in called “Bespin on Rails.” This lets users embed the Mozilla Bespin code editor component in their Rails views using simple helper tags.

About CouchDB

Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript. It offers incremental replication with bidirectional conflict detection and resolution. A CouchDB database is a flat collection of documents, each identified by a unique ID.

CouchDB is accessed through a RESTful JSON API than can be accessed from any environment that allows HTTP requests. CouchDB has a built-in Web administration console that speaks directly to the database using HTTP requests issued from the user’s browser.

CouchDB is written in Erlang, a programming language that allows for a flexible design which is easily scalable and readily extensible. Unlike MySQL, CouchDB has no schema and has a flat address space. This allows developers to add new document types with new meaning safely to existing document types.

The CouchDB database can be queried and indexed. It has a table-oriented reporting engine that uses JavaScript as a query language.

Raindrop’s Architecture

Developers have to give Raindrop credentials to fetch messages from different sources. “We want it to work with any message source on the Internet — other IMAP email accounts, feeds, instant messages, and other social networks,” the Raindrop team said.

The run-raindrop command fetches messages from message sources and stores the raw data received in Couch documents. An extensible work queue then runs over these raw messages, creating additional “schemas” for each message. Each of these schemas is also stored in Couch documents.

Users can create new work queue extensions to mine interesting data out of their messages, and raindrop will save those schema in their own Couch documents. In addition to the documents created from the messages, all the HTML/JavaScript and CSS used by the user interface is stored in the CouchDB database. In general, a single “application” is stored in attachments to a single Couch document, so it will be easy to support multiple applications from the same couch, the Raindrop team said. The user interface (UI) is then served directly from the couch and is rendered in Firefox or a webkit-based browser.

The UI fetches documents related to a message from the couch and uses those data documents to display the messages. Both the back-end and the UI code support extensions, so if users have a back-end extension which extracted useful information about these messages, they can write a front-end extension to take advantage of that information in the user interface.

However, a lot of work needs to be done on Raindrop’s security; Mozilla acknowledges it’s not yet adequate. Currently, Raindrop asks a user to enter his name and password for each service, such as Gmail or Twitter, he wants pulled into Raindrop. That information is then stored in plain text, either as a file on disk or inside CouchDB as part of a CouchDB document. “This is clearly bad. Very bad,” reads a message on the Raindrop team’s security page.

Solutions such as OpenID+OAuth won’t work because many services such as IMAP don’t support them. Also, the architecture of CouchDB causes some problems. CouchDB does not support SSL.

The Raindrop team is looking for solutions. “Security is paramount to Mozilla, and we wouldn’t release a finished product that would affect users,” Mozilla’s Ebron said.

Raindrop and Google Wave

Although Raindrop and Google Wave may appear similar, they are not the same thing. “Raindrop is more of a message desk or organizer, while Wave tries to introduce a model that replaces threaded email discussion by collaboration and conversation in place,” Gregory Lloyd, president of Traction Software told TechNewsWorld. His company has created the Traction TeamPage proprietary social networking platform.

Mozilla might integrate Raindrop with Google Wave in the future, Mozilla’s Ebron said. “Wave is a type of message and that can be integrated into Raindrop,” he explained.

Leave a Comment

Please sign in to post or reply to a comment. New users create a free account.

More by Richard Adhikari
More in IT

Technewsworld Channels