Notes on Developing the StatusNet Desktop Client

Zach Copley's picture

I'm leading up the project to develop a set of open source StatusNet clients for all the major desktop and mobile platforms -- Linux, Mac, and Windows, on the desktop and iPhone, Android, and Blackberry on the mobile side. We've chosen Titanium, an open source rapid applications development system that leverages web technologies like HTML, CSS and JavaScript to build native applications for each of these platforms. Yesterday we released our first client, StatusNet Desktop. I thought now would be a good time to take a moment to explain our motivations for writing our own set of clients.

Go-to clients

Like other services, we need official go-to clients we can point new users to, ones that are guaranteed to work with and be in sync with the latest version of StatusNet server. We also want clients that we can white label and allow our corporate customers to repackage.

While we've generally had success getting other developers of microblogging clients to add support for our service, with a few exceptions we haven't seen StatusNet specific or StatusNet focused clients for the major platforms. StatusNet has unique features that we'd like to see expressed fully in clients, including groups, private instances, conversations and subscription tagging. We think the best way to get this done is to build clients with these features ourselves. We're hoping our clients can be reference implementations for other developers.

Atom-based strategy

Another important reason for developing our own set of clients is to help evolve the StatusNet API. Building a client is a good way to learn what does and doesn't work in an API, and shake out bugs. With the upgrade of our federation system to OStatus, our Atom feeds have become especially rich -- rich enough that client applications can get most of the data they need from them. While the Twitter API remains the de facto standard and we'll continue to support it, we'd also like to move ahead with our own API design. We're going to take this opportunity to expand our Atom-based API even further. StatusNet Desktop gets most of its data from StatusNet's Atom feeds, and in the future we hope our clients will be able to post using the AtomPub protocol.

Apache Licensed

StatusNet Deskop and all of our other clients are licensed under the Apache 2.0 license. We chose this more liberal license because we wanted to encourage the most wide spread use, reuse and adoption of the code.

You can help

I'm also StatusNet's developer relations manager. If you have ideas, concerns, or feature requests for the clients or the StatusNet API, please feel free to email me (zach [at] or contact me on Interested developers are always welcome to pitch in. The source code for the StatusNet clients is located on Gitorious. Below are links to the source, our new bug tracker and the StatusNet-Dev mailing list.

Bug tracker


Post new comment

Please note that blog comments are not monitored by our support staff. If you need assistance please visit our forums at or see the Support page for other options.
The content of this field is kept private and will not be shown publicly.
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Enter the characters shown in the image.