p2p social networking with Rotonde & Beaker

Rotonde is an experiment into the idea of self-hosted social media feeds.

As described by its own specification, it is "platform agnostic", meaning that it doesn't need to be tied to a specific website, service or API. You can host the data anywhere, and distribute it in any fashion you like, as long as the structure of the data is correct.

@neauoire has opened a new codebase that brings the Rotonde concept to Beaker Browser, a p2p web-browser built on top of the dat protocol.

This guide will demonstrate setup of Rotonde within Beaker, allowing you to create new posts and follow other Rotonde users.

Install Beaker Browser

If you haven't already, install a copy of Beaker Browser.

The guide below will demonstrate how to install and use Rotonde, but if you'd like to know more about how to use Beaker, visit their Documentation website.

Fork an existing Rotonde feed

Creating a new Rotonde feed is as simple as making a copy of one that already exists. Beaker Browser conveniently allows users to "fork" p2p websites.

First, visit @neauoire's Rotonde feed at the following dat:// URL: dat://2f21e3c122ef0f2555d3a99497710cd875c7b0383f998a2d37c02c042d598485/.

Then, in the dropdown menu to the right of Beaker's address bar, click Fork this site. Specify the title of your fork to be the name you'd like to use (eg. @alice), then click either Finish Downloading Files, or Create Fork (whichever appears first).

Forking a Rotonde feed

Open your new Rotonde feed

After forking a website, it will become available in your "Library" inside Beaker. Open the application menu in the top right corner of the browser, then click Library.

Opening the library

Your new website titled @alice should now be available in the left sidebar. After this website is selected, you can navigate to it either by clicking the blue Share button, or URL external link icon next to your website's name.

Opening your new site

Resetting your fork

The website you forked will contain @neauoire's Rotonde feed. To clear this out and setup a fresh feed for yourself, click the Input command here field (this is called the "commander") at the top of the page, and press Ctrl + Shift + Backspace.

You can then refresh the page after running these commands.

Clearing your Rotonde feed

Edit your profile

To edit your feed's profile (username, description, URL), you can click the commander, and enter any of the following (press Enter after each):

edit:name <name_goes_here> (eg. @alice)
edit:desc <description_goes_here> (eg. "p2p navigator")
edit:site <URL_goes_here> (eg. https://p2p.is.cool)

Editing your profile

Follow another user

In Rotonde, users can follow each other using their p2p URL's. The URL that you copied and pasted, or clicked out to from your Beaker library, is yours.

You can share this URL with other users of Beaker Browser if they'd like to visit your feed, and also follow you.

To follow another user's feed, ask for their URL, and copy and paste it into the commander. Hit Enter to begin following them, then refresh the page to start seeing their updates.

If you'd like to try, here's my Rotonde feed URL: dat://6fd46b20841eb9652081894a16014f12e19f47b97af4ab10c093284fba611d15/

Following a user

Create a new post

In order to create a new post on your feed for others to see, you can simply enter new text into the commander, then hit Enter to begin distributing it to your followers.

Creating a new post

Editing a post

You can edit your posts by clicking on their timestamp, which will populate commands into your commander. It may look something like this:

edit:0 <post_goes_here>

If you alreaady know the ID of the post you'd like to edit, you can type this command out manually.

Editing a new post

Deleting a post

You can also delete your posts in the same way you would edit them. To delete the post we just edited, we could type the following into the commander, or click a posts timestamp and edit the command that way:


Deleting a post

Distributing your feed

Beaker Browser is built on top of a p2p protocol called dat which allow users to distribute and share websites directly between each other.

As explained earlier, the fundamental method of sharing your p2p websites (and in this case, your Rotonde feed) with other Beaker users is via the dat:// URL that you can copy to the clipboard from your Beaker library.

When a friend visits your URL, both your Beaker Browser, and your friend's Beaker Browser, will talk directly to each other and funnel data from one side to the other. Your friend can choose to seed that same URL with Beaker, so that if you go offline, and your friend is still online, your site will still be available to other users.

The idea of a p2p network is that users will seed websites and data they are interested in, allowing distribution of that information to be more resiliant and available to others, without a central repository.

In order to seed another user's Rotonde feed or Beaker p2p website, you can add it to your library by clicking the dropdown menu on the right side of Beaker's address bar and click "Add to Library".

Seeding a p2p website

You may want to be able to seed your Rotonde feed to other users, even if you are offline, and nobody else is available to seed for you. We can do this using a p2p website hosting service called Hashbase.

Seeding your website with Hashbase

Hashbase is a hosting service built by the creators of Beaker Browser, which can act as another seed for dat:// based websites.

Register for Hashbase, and then Login to their dashboard.

First, copy your Rotonde feed's dat:// URL from your Beaker library to your clipboard.

Next, on Hashbase's dashboard, press the blue Upload archive + button. Paste your feed's dat:// URL into the URL field, and set the Name field to "rotonde". Then, press Add Archive.

Seeding your p2p website with Hashbase

After your Rotonde feed has finished seeding to the Hashbase servers, your site will continue to be served to new visitors even after you close Beaker Browser, and go offline.