I had this vision 5 years ago, for sort of an operating system for social apps. Where a regular user could build their own app by just installing some plugins, dropping a chatroom and some other components on a page, paying a developer to wire them up, and paying a designer to design the theme. And there would be a marketplace of components built by more experienced developers.
So 5 years ago I started my first open source platform, http://phponpie.com
Since then it's come a long way, and it turned into a real platform: http://platform.qbix.com
Like mobile apps, social apps require an operating system that solves common problems in a standard way:
* User signup and secure auth, login
* Should work with emails, mobile #, facebook
* Accessible from desktop, tablets, mobile
* Contacts integration / friendlists
* Real time collaboration from any device
* Offline notifications via fb, sms, app notifications etc.
* Access control and privacy - as expressive as possible
* Native apps on iPhone and iOS via Cordova
* Invitations and one-click account creation
* Encourage best practices for scaling, web standards etc.
* Installer to upgrade apps and plugin versions cleanly
etc etc.
All that stuff should have standard solutions which you can override. The apps and plugins should all interoperate.
And finally, since I really care about decentralization, it would be cool if this whole operating system could be as decentralized as Wordpress is for blogs, as opposed to say facebook. That would also solve all the scaling problems that facebook and other centralized social networks have.
That last part - decentralizing the social network - took the most effort, as I had to solve problems of security, identity, privacy, as well as app and plugin versioning and signing across a distributed network. Just like iOS is for mobile apps, and Bitcoin is for distributed contract apps, the Q Platform is if you want a social layer for your app, from user accounts to everything else, without having to write it from scratch.
Yeah, so that's what I built. Link to the open source: http://github.com/EGreg/Q