Tomboy, a popular open source note-taking application, is coming to the Internet. The Tomboy team is creating a Web application called Snowy that will allow users to keep their notes synchronized in the cloud. It also offers a rich interactive Web interface, enabling users to seamlessly access and edit their notes through a Web browser.

Novell developer Brad Taylor created Snowy in his free time as an experiment. It matured recently when Tomboy developer Sandy Armstrong teamed up with Taylor during one of Novell's Hack Weeks in an effort to accelerate progress on the project. A preview of the new Web synchronization feature has landed in the latest version of Tomboy. Snowy is built with Python and uses the open source Django framework. One of the most compelling aspects of Snowy is that it is open source software, which means that users can self-host their own note servers.

To facilitate synchronization with Snowy, the Tomboy developers created a REST API that uses the JSON interchange format to convey note textual content and metadata. The REST API is documented so that third-party developers can create interoperable software. The implication is that anyone can build alternatives to Snowy or integrate Tomboy note synchronization support into existing Web services. It's also possible to create alternative client software that can use the service for note storage.

The open REST API is already attracting some interest from developers who are looking to add Tomboy note synchronization capabilities to their own software. Henri Bergius, for example, added support for the Snowy REST API to the Midgard open source content management framework. Canonical is also exploring the Snowy API and is considering the possibility of adding support for Tomboy note synchronization to its Ubuntu One web service.

Software freedom in the cloud

Snowy is distributed under the terms of GNU's Affero General Public License (AGPL), a copyleft license that is intended for Web software. Much like the conventional GPL, it guarantees the freedom to study, modify, and redistribute program source code. Unlike the GPL, it broadens the scope of these freedoms to encompass Web users and not just the recipients of a program.

This means that individuals who access a remote instance of a program that is distributed under the AGPL are entitled to the rights that are granted by the license. Web application providers are consequently compelled to disclose the modifications that they make to AGPL software that they host for public access.

The AGPL is largely a response to the emergence of the Software as a Service (SaaS) model and the growing popularity of cloud computing. The license aims to adapt traditional copyleft principles so that they can be properly applied to modern Web software.

The trend towards hosted Web applications poses a significant challenge for the open source software community. Free Software Foundation founder Richard Stallman insists that rejecting the entire concept of hosted Web applications is the only acceptable course of action, but that short-sighted approach is ultimately self-defeating because it will only serve to marginalize open source software.

It's becoming increasingly clear that tight integration with Web services will be needed in order to ensure that Linux remains a competitive platform on the desktop relative to proprietary alternatives. Incited by that revelation, the community of software developers behind the open source GNOME desktop environment have discussed at length the prospect of creating open Web services that can be leveraged by GNOME software. Such discussions, which have been going on for years, have generated a lot of intriguing ideas but very little practical software.

The Snowy Web service is a very big step in the right direction. It demonstrates how a truly open Web application can be used to empower users of open source software and give them the freedom and flexibility in the cloud that they enjoy today on the desktop. Users can freely choose their provider or deployment environment and can maintain full control over their data.

Building rich Web applications with Open standards

Snowy is an ideal showcase of the open Web in other ways, too. Its rich user interface takes advantage of emerging standards-based Web technologies to provide support for interactive editing. Specifically, it uses the contentEditable property which is introduced in the HTML 5 draft and is already supported by all major browsers.

This property makes the contents of an HTML element editable by the user and supports a number of style commands that can alter the markup and apply various formatting elements. The contentEditable property makes it easier for Web application developers to build WYSIWYG rich text editors. Snowy is an excellent example of a practical usage scenario for this especially useful feature of HTML 5. For more details about contentEditable , you can check out an overview of at the WHATWG blog.

HTML 5 is gaining a lot of momentum as prominent Web service providers embrace the parts of it that are supported widely in browsers. Many features in HTML 5 can be used to build sophisticated Web applications without having to rely on proprietary browser plugins. The contentEditable feature is only one of many that will power the next generation of Web software.

Conclusion

Snowy is still under heavy development and the developers are working on a multitude of additional features. According to Taylor, other plans include creating a mobile version of the Web interface that will work well with smartphone browsers and adding support for note sharing and collaboration. Support for the REST synchronization API could also potentially be added to Tomdroid, a native Android port of Tomboy.

Taylor intends to launch a free hosted version of Snowy called Tomboy Online that will be available for users who aren't interested in hosting their own Snowy instance. Much work will be required, however, before Snowy is ready to be deployed for large-scale use. Taylor and Armstrong hope that additional developers will participate in the effort and contribute to the Snowy project.

Although Snowy is relatively new and still has some limitations and rough edges, it's an impressive project that brings a lot of value to Tomboy users. Snowy is also a significant contribution to the ongoing discussion about how to translate the ideals of open source software to the Web while bringing the Web to the desktop.