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.