Get your own free workspace
View
 

FrontPage

Page history last edited by Abi 2 years, 5 months ago

Growl.fm

 

Overview

Growl.fm is the tentative title for an open source, public notification system for the web. It allows web applications that support it to send you notifications on any platform at any time, while giving you total control and a consistent user experience.

 

The idea is to provide a public web API for applications to post notifications to, and then to deliver them to the user via a local Growl-style notification system, such as Growl (OS X), Snarl (Windows), Prowl (iPhone), or Mumbles (Linux). This creates a unified interface for applications on the web to notify their users, no matter what platform, in a way that puts users in control, and makes local Growl-style notification systems more useful by opening them up to notifications that are more "distant" and therefore more valuable.

 

Growl.fm would also allow you to optionally keep a history of your notifications, create filters, and optionally specify backup notification means like email, SMS, or maybe Twitter DM. Also webhooks. ;)

 

Public Open Source Service

Growl.fm would be open source, but even more, it would be a public open source service. It may not be useful to have multiple instances of it as a service, so there would be a canonical service people would use, run and maintained by the community. This is a model I've been working on for a while. Financially, the idea is to run the service on Google App Engine, where sysadmin is completely abstracted and there is a pay-as-you-go model. We attach the billing details to an account that can accept donations, but we provide a calculation of how much money is in the account and how long the service can run. This is displayed somehow on every page, showing users that if they don't donate and there isn't money in the account, the service will shut down. There is complete transparency and automation, allowing the service to live and be sustained by its users.

 

Implementation

Growl.fm requires a web application with a REST API and some magic to talk to all these local notification systems. This will most likely be through XMPP. If we want to provide everything necessary, we may need to run our own XMPP server. This way, we can assume their XMPP user given their Growl.fm user data.

 

Client

 

Most Growl-like notification systems do not provide a way to easily send notifications to them over the network without a direct connection. The solution is to leverage the fact they are open source, and add Growl.fm support via XMPP. This is a lot of work since there are many notification systems (of varying popularity, though) such as Growl, Snarl, GFW, KNotify and libnotify (the last two are part of the OS and so, it's not easy to patch them; a standalone application is probably necessary to support them). 

 

The current plan is to not distribute modified versions of Growl but rather submit patches to the open source projects and wait for them to become part of the application. This could take a lot of time not just because it needs to be coded, reviewed and tested but also because Growl (for example) might not see the solution like XMPP that we go with since they already support .

 

So, while getting built-in support for XMPP/Growl.fm is important in the long-term (hopefully, it can happen earlier than expected) , the initial goal will be to build and distribute a cross-platform XULRunner-based (like Firefox, Miro, Flickr Uploader, etc.) application. A lot of the code for this app can be borrowed from Yip v0.2 which supports sending notifications Growl for Windows, Snarl, libnotify and Growl on Mac. The only thing we have to add is a XMPP client in Javascript or C or Python. 

 

Here are the proposed initial (and absolutely necessary) features in the client application:

 

  • Simple and straightforward login into Growl.fm
  • Receive notifications from Growl.fm

 

Future Features

 

While we're at it, we can add in a hook to post notifications from local notifiers to Growl.fm, although this is more of a nice-to-have. Also, if we're going to provide a one-stop-shop for local notification downloads (our own branches, if our modifications don't make it back into the main branch), then we can also distribute YIP, Growler and other plugins that take advantage of the various Javascript notification APIs.

 

Webapp

 

  • Create user account with email and a password
  • Jabber IDs are automatically created for you?
  • Identify users based on hash of email
  • Allow users to approve applications

 

TODO...

 

Messages (Flash) as a Service

Most web applications have some way to notify the user of the success of an event, such as registration or creating a resource in that applications (ie "You successfully created a widget!"). Web frameworks tend to have this feature builtin, such as Rails flash or Django session_messages. This could theoretically be done with this notification system instead. However, some developers may not like the idea of notifications not taking place within the browser ... more specifically in their app. This leads to a new idea ...

 

Embeddable web implementation of Growl

With flash messages and the rise of Javascript notification APIs, there is a large number of web-based notification producers. While so far Growl.fm is great for the user, and is nice that app vendors can integrate with it for users that are using it ... it doesn't provide value to their users that are not using Growl.fm. This may be a point of hesitation for app vendors. However, what if we provide them with the functionality of Growl that will work within their site as the default option. From there, users can customize it (like users can customize their Growl skin), or direct notifications to their local notifier.

 

What this does is provide app vendors an incentive to use this service without worrying about how many of their users use it. This would then become a funnel for new users to "buy-in" to Growl.fm and use it for other things.

 

Advanced Filtering

While there would be a similar notification type and notification producer enable/disable option panel as there is in Growl, we can also provide advanced filtering based on embedded Scriptlets. Advanced users can then write code in any supported language to parse messages and decide if it will be filtered, and potentially even decide a specific route for the message (ex: send to email instead of Growl).

 

Potential Names

It's probably not going to be growl.fm ... please only submit names that are available.

  • Notify.io
  • Web Notification Service 

 

 

Comments (3)

A'braham said

at 3:37 pm on Jul 18, 2009

Would people use there own xmpp ids?

Jeff Lindsay said

at 6:28 pm on Jul 18, 2009

I think it would be nice to have an optional configurable XMPP interface that you could use your own jid with, but for the ideal out-of-the-box experience, I think Growl.fm would provide them with a JID and an interface to enter their Growl.fm username.

A'braham said

at 12:18 pm on Jul 19, 2009

Concerning the Messages as a service, seems like you would basically need a mash of a javascript xmpp client + javascript notification. Think strophe and jquery growl. let me know when you get the server set up, and I'll see if I can build a growl for windows plugin.

You don't have permission to comment on this page.