The Diaspora source code was initially released on September 15th, 2010. This project is an implementation of the Diaspora protocol as a CouchApp built entirely on CouchDB.
CouchDB is a good fit for a federated social web node due to it’s robust replication, HTTP and JSON APIs. Diaspora is an attractive implementation of a federated social web application. I want to marry the front end and features of Diaspora, but build them on the flexible replication of CouchDB. The resulting application is written in pure Javascript and HTML and only requires CouchDB in order to run.
I am shooting for Social Web Acid Test level 0 (SWAT0) compliance by implementing the OStatus stack. Since Couch can use CommonJS, I started a project called ostatus-js to write the OStatus protocols in server side javascript. To learn more about how CouchAppSpora works and interoperates with other seeds, check out this wiki page.
You can run CouchAppSpora anywhere that you can run CouchDB, and since it’s a CouchApp, the entire application lives inside your database and can be replicated from any other CouchAppSpora seed. To demonstrate the built in replication that you get with CouchDB:
- Go to couchone.com/get and either get a free hosted Couch or follow instructions on how to set up your own local Couch.
- Make a database and set up bidirectional continuous replication from
http://glitterbacon.couchone.com/couchappspora
(or any other CouchAppSpora seed) to your new database - Visit http://yourcouch/yourdb/_design/couchappspora/index.html
For more advanced features (OStatus protocols like Webfinger for user discovery) you will have to use a dedicated domain name and configure your CouchDB to use a vhost
entry for your domain name. See this wiki article for instructions.
You can either help build out the HTML/CSS/JS interface or you can help out with the backend protocols.
Check out the Issues page
If you’ve never worked with CouchApps before, I’d highly recommend learning more about them at couchapp.org
TODO: I think I have to comply with Diaspora’s AGPLV3 License…