buddycloud dev-preview released
Today we’re releasing a dev-preview of buddycloud and would love your feedback.
buddycloud is an extensible open source distributed social network. A user’s identity looks like email@example.com and users share content in “channels”.
We started buddycloud because of the growing “closed-ness” of existing social networks. For example Twitter’s increasing API contortions about what one can and can’t do with their API or which quadrant one is supposed to operate in. We also think it’s important to build services against a known protocol that works against any buddycloud instance on any domain (not paid-for APIs). Naturally this called for a completely decentralised design built on open standards like Atom, Activitystrea.ms and XMPP.
Each buddycloud-enabled domain runs a suite of servers. Each buddycloud server uses DNS to find, connect, and sync content in realtime with other buddycloud servers. This content can be any kind of structured data or large files.
Today we are releasing open source implementations of the following buddycloud servers: the buddycloud-channel server (shares your channel / your activity stream with trusted followers), a media server (shares anything from a small avatar to a multi-TB file), a push-server (email and mobile updates), and a taste engine (“channels you might like”). Some of the team are working on more servers that will let you suck content in and out of existing social networks.
Our reference implementations are written in Java and node and use Postgres for storing data. The web-client is built on backbone.js. There’s also a console client written in Python.
Next tasks: client speedup using IndexedDB. Following permissions, Android, iOS and Firefox OS clients and release buddycloud.js.
We really hope that some of this could be useful for your project:
- code https://github.com/buddycloud
- wiki https://buddycloud.org
- demo instance at https://demo.buddycloud.org
- channel https://firstname.lastname@example.org
buddycloud Hackathon: 10-11 November 11am
We’re so, so, so, so, very close to releasing the first version of buddycloud.
Get a sneek peek at this hackathon.
- Saturday 11am: Welcome and intro: What is buddycloud, how it works.
- 12pm - hacking ideas: Get to know everyone’s skills and break into groups to work on different teams
- Lunchtime: Pizza and drinks.
- moar hacking: hackety hack
- Dinner time:moar hacking
- evening: show-n-tell of what you have made
- Sunday: Rinse, repeat
The Hillert & Co office space is at Tengstraße 37 in Munich.
- take the U2 subway line to Hohenzollernplatz
- take the tram line 12 or 27 to Hohenzollernplatz
- take the bus line 53 to Hohenzollernplatz
The station is about a minute from the office space. If you get lost or need directions: call +49 178 545 0880
To get ready, check out the buddycloud wiki
- we track our dev work on Trello
- we try to keep great buddycloud documentation
- you can follow buddycloud on the mailing list and in the buddycloud chat room
- all buddycloud code is open source and hosted GitHub
Additionally we’ll run a Google hangout for the duration of the summit and hackathon for those that want drop in remotely. I’ll post the URL on here when we start.
We’re looking forward to seeing you - let email@example.com know and she will keep a spot for you.
buddycloud hackathon weekend: 10+11 November
A quick update: the next buddycloud hackathon will be on the 10+11 November in Munich.
We’ll post more details as details firm up.
Planning the Next buddycloud Hackathon: When?
Seems there’s quite the demand for bc hackathons. At the moment we’re holding them in Munich, but if you can get enough users together on either side of another scheduled conference or event event, we could hold them in your home city.
Please help us plan on the Doodle for the next Munich hackathon
Some ideas for the next hackathon:
- protocol discussions
- Firefox OS client
- webclient next steps
- Android and iOS bits
- pizza eating
- variations in Munich beers
- your totally random idea
If you’re not aware of them github has a set of service hooks that as a repository owner/admin you can utilise in order to push event information (be it commits, pushes, pull requests, branching, etc) to a 3rd party service. There’s a whole set of these services that you can already push to from Jenkins CI right through to Yammer, and now buddycloud!
San Francisco update
It’s been very busy here. With a nice day off in the San Jose Hills this Saturday.
Right now we are working to finish the presentations and demo code ready for the demo-day at Mozilla.
The trip has been a chance to meet and mix with a bunch of smart people at Mozilla and in San Francisco. For example getting UX feedback from the team working on Firefox OS and business advice from the WebFWD team.
Best of all it’s been great knowing we have a team back home supporting us. Thanks Brazil, Thanks German, France, UK and everyone that has been pushing in commits and arguing their corner for building a solid buddycloud client in such a short amount of time.
Right now we are working to get MrFlix’s designs implemented.
and the new channel view:
now users can update their prefs too:
and create new posts
Thanks again to everyone pitching in. I feel very fortunate to work with such a great team.
Learning By Doing
At its core, buddycloud is a set of protocols and specifications that can be used to create a wide range of familiar web features, such as Twitter feeds, Facebook conversations, and Flickr albums; as well as an unknown and boundless set of additional applications that nobody has thought of yet.
The protocols underpinning buddycloud are completely open, and participate in a healthy, ongoing standards process. Anyone is free to write buddycloud applications, and everyone will remain free to do so, without fear of licensing fees or arbitrary API restrictions.
buddycloud threads an interesting needle: how can we enable all these powerful features, while still giving each user complete control of their personal data and their own privacy?
That’s why we talk about buddycloud being ‘federated’. Each server is responsible entirely for itself, but at the same time each server is able to communicate very tightly and seamlessly with all other buddycloud servers. The result is a broad tapestry in which the full nature and behaviors of buddycloud are made available to all.
One of the problems with existing social networks has been the desire of the parent corporation to control the user experience for its own benefit. When you use facebook, it’s impossible to forget that you’re embedded in that user experience. And the goals of that parent corporation may involve things that are unrelated to what’s best for the user; such as taking maximum advantage of each user’s retinal ‘real-estate’. By giving the user total control of their own data and their experience, buddycloud doesn’t risk this temptation.
Developing the buddycloud protocols and software architecture has had its own set of challenges to overcome. Any federated system needs developers and users in order to achieve the federation; so we’ve had to engage in a lot of advocacy, while simultaneously making decisions that affect the protocols and development framework. We recently made the hard decision to do a major architectural change to our web client, which involved abandoning work that had taken a lot of time and energy to produce; we did it because it was the right technical decision, though it required a big adjustment from our whole team. And we want to recognize and make those kinds of decisions early rather than late, so the fewest number of users are affected.
In light of that, and as another part of our advocacy, we want to make our own development processes and decisions more transparent to anyone who’s interested in learning more about us. There are a lot of debates - most of them friendly, but sometimes there are strong differences between developers. And we’re going to be publishing the logs of all our developer discussions as they happen - even our video hangouts! But more than that, we’re starting a blog that will summarize a lot of the key discussions and decisions that we engage in from week to week. And from time to time you’ll hear from the buddycloud CEO, Simon Tennant, who’ll talk about various events, hacking sessions, and the strategies behind the company.
Here we are hitting the stage at TechCrunch Disrupt