Introduction
Many circumstances have come together recently to allow me time and resources to commit to the Pandion project. For a while now I’ve been neglecting Pandion, except for paying the hosting bills and giving a bare minimum of technical support to users. While working at my previous employer I was involved with a Pandion-based project and built many new features, yet unfortunately few of those will see public usage. Now I’m able to revive Pandion and bring it to the forefront of real-time communications.
I. Trends
Community
The main motivation behind starting my own instant messenger, way back when, was purely for personal usage and curiosity as a learning exercise. However when other people started using it that changed and I became interested in building software that answers a real need. Now there are well over a million Pandion users and that’s a big motivation to continue the project.
I intend to activate this user base as an autonomous support community, understanding usage patterns to find ways to improve Pandion, and eventually as a way to monetise the project because the bills need to get paid and earning revenue will allow Pandion to grow beyond what I can achieve by myself.
Social networks
A major trend in the last years has been social networks. Thinking about it, an instant messaging client is not that different from any other social network. The social graph, as it is called, consists of each person’s contact list and the links between those contacts. If there is a way to browse all these contact lists then it becomes a social network. I think XMPP already provides the essential structure and protocols for a lot of social networking type stuff, but few if any implementations implement those features in a way that gives value to users. I am thinking of ways to do that in the next version of Pandion.
For example in most IM clients today contact lists become too large to manage with more than a hundred or so addresses. The “cost” of manually arranging and sorting these contacts becomes more expensive than the “benefit” gained from having them in an organised contact list. But using a social graph Pandion could automatically and accurately sort contacts into groups based on tags which others in your social network have applied to them. Using the social network to filter data automatically in a meaningful way lets users work with ever increasing volumes of data, providing great value. This is just one example, there are many more ideas that I aim to implement as Pandion features.
Features
It is rarely a good idea to let users decide what to build into an application, because there’s always a loud minority advocating their niche requirements. So coming up with a list of features to implement in the next Pandion version is a tricky problem. Mostly this up-front planning is just a vague guess, and may change quickly if the complexity has been underestimated or user demands are not what I perceive them to be.
Nevertheless, there are goals that I feel Pandion should strive for. These include:
- P2P
- Voice over IP
- Video conferencing
- File transfer
- Social Networking
- Publish-Subscribe “firehose stream”
- Social graph filtering of the stream
- User Experience
- Rich content instant messaging and presence: embedding videos, photos, datasets, …
- Skins and themes
- Personalised look and feel
- Security
- End-to-end encryption
- Architecture
- Plug-ins and extensions for practically any part of Pandion
- Cross platform on desktop, mobile, web
- Infrastructure
- Micro transactions for payment over XMPP
- Transports to social networks and messaging services (SMS, Twitter, Facebook, …)
This list is incomplete and will certainly grow as Pandion progresses. This is just an idea of the big targets that I have in mind right now.
II. Technology
Accepting that Pandion is a small fish in a vast ocean of communication software, the only way to compete is by standing on the shoulders of giants. That means re-using existing standards, protocols, platforms, libraries, and other technology.
Open Source
I’ve long been an advocate of free and open source software. In the past Pandion was de facto open source, though under a non-free license. Now I am releasing Pandion under the GNU Public License (GPL). Choosing a suitable free software license is never easy, but I am convinced that this license reflects my personal ethics and philosophical stance on imaginary property (IP).
Open sourcing Pandion should encourage adoption by more users and allow for a community of developers and contributors. It also allows re-use of other free software libraries which can speed up development further.
Open Standards
The advantages of implementing XMPP specifications, as opposed to reinventing the wheel for each feature, cannot be overstated. This applies to other data formats used by Pandion also. For voice and video there are Speex, Vorbis and Theora. For images there are PNG and JPEG. Even the Pandion file format for emoticons is an open standard. Any future file or communications formats used by Pandion will be open standards, either existing standards or ones created for Pandion and documented publically.
MCrux
A friend of mine has created MCrux, a Rich Desktop Application framework. Fancy words that mean something like the ageing “Pandion.exe” host application which embeds a web browser control that loads the HTML/CSS/Javascript of the user interface. It also exposes APIs to the app’s Javascript code for native OS calls like file system access or network sockets.
While Pandion.exe used Internet Explorer, a horribly out of date browser, MCrux uses WebKit, one of the latest and greatest browser engines. WebKit is not only standards compliant and blazingly fast, it is also cross platform. This means next gen Pandion will look better, run faster, and also work on all three desktop platforms (Windows/Linux/Mac OSX). Eventually there may even be a mobile version of MCrux using WebKit on the iPhone or Android.
There are alternatives, like Titanium or AIR, which also provide such functionality and use WebKit. But having worked extensively with both of them I would rather build on something lightweight and focused like MCrux.
jQuery
Since Pandion started such a long time ago its Javascript code base is really starting to age. I wrote all of it without the help of any application library or framework as there were none at the time. These days it would be almost unthinkable to build a large application without a Javascript framework. I have some experience with many popular frameworks like ExtJS, Dojo, Prototype, jQuery, YUI, and others. My favourite is jQuery due to its very Javascript-ish feel. For the next gen Pandion I intend to lean heavily on jQuery for XML processing and UI development. This will speed up my work and allow others to contribute more easily.
HTML5
The HTML version 5 standard introduces new APIs like 2D/3D rendering, sockets, multi-threading, data storage, drag-and-drop, MIME type handling, and more. Browsers which implement these APIs will provide most of the functionality that most applications currently require from an operating system. This “good enough” scenario will, I expect, drive many applications from desktop OS to web browser based. With Pandion being developed in HTML/CSS/Javascript it is a small step from running in MCrux/WebKit to running in an HTML5-capable browser. This means Pandion will be available as a desktop and mobile application but also as a web application.
It remains to be seen how much adoption HTML5 will have in coming years and how much developers can do with those APIs, so for now the MCrux/WebKit platform will be the main target of Pandion.
III. Business
Earning a living from Pandion has long been a goal. I have always been interested in entrepreneurship. I have made several earlier attempts at building a profitable business on Pandion, with varying degrees of success.
Open Source Company
Realising how beneficial it can be for a software project to publish all source code, I think it would be equally beneficial for my company to publish all its business plans. Similar to source code contributions this can lead to review and input from much smarter business people than myself.
To whatever extent possible I will use this blog, the wiki, and other channels to publish my plans and activities with Pandion as a business.
Products vs Services
The previous business model for Pandion was to sell commercial licenses and do white labelling or custom development for companies. While this earned enough profit to sustain Pandion and earn a respectable income for myself, it was not a scalable model that would see much growth. It also became highly repetitive and hence boring. Essentially it was a services company and not a products company.
That is why I now aim to build products which have the potential to earn revenue in relation to the number of Pandion users, and stop working on time consuming custom development, consulting, commercial licensing negotiations, and manual white labeling.
Commercial Products
Ideas for products which would offer value to Pandion users include SMS and pc2phone VOIP. It works for Skype and Jahjah so it should work for Pandion.
Micro transactions are another area where Pandion could offer an open source and open standards alternative to current payment gateways and virtual currency providers.
These products can be offered either as paid services or through a freemium model where basic functionality is free of charge and only advanced features require payment.
Infrastructure Provider
My long term vision of Pandion is not merely as an instant messaging or social networking tool but as a set of real-time communication tools. Today a broad shift is taking place from dynamic websites to real-time browser based applications. One of the key technologies is XMPP, because it provides building blocks like authentication, security, roster, Pub-Sub, MUC, and more.
Building an SMS transport, a pc2phone gateway, or micro transactions for Pandion as freemium products is a great start to monetise the instant messaging user base. But building them as open standards based services for anyone else to use and integrate has much more potential.
As the real-time web takes shape, many developers may require such infrastructure services. I hope to be there to offer them with all the required features at competitive rates.

8 comments:
I am really excited about the future plans of Pandion.
Good luck for the next generation IM Client. :)
This is GREAT news. Glad to see the webkit and jquery migration. I can't wait to see what you/community comes up with and hope to be a part of that.
I have look at so many IM clients and I still think Pandion is the best. It is so easy to customize with even a basic understanding of html.
I would love to see a really basic client that is modular and can be built upon where needed. I find many IM clients get bloated with features. I think focusing on performance, user experience, and expandability are key. I envision something like a 'drupal for IMs' where modules could tie into a core api and it is easily themeable. Not sure if that's what you are thinking but its my 2 cents.
-Jeff.
Really great news!!!
It's great to see Pandion reborn!
ummm.. seems many sleepless nights ahead.. All the best!!
@all Thanks for the support :) Means a lot!
@Jeff That is pretty much the idea. Pandion has always been easy to mod/hack by going through the HTML and Javascript. But it's usually a problem when there is an update, suddenly patches break everything. So it needs a better extensions model like Firefox or Drupal.
Wow. good luck
I love Pandion!
Video conferencing it is great idea! I hope that it will be soon. Pandion will be the best!
Post a Comment