socialhome A federated personal profile with social

../../../_images/Socialhome-dark.svg

Jason Robinson

Jason Robinson, author of Socialhome, previously core team member of Diaspora, invited expert at the W3C SocialWG.

Open source advocate, Pythonista and Djangonaut. Federated social web hacker.

Description

Socialhome is best described as a federated personal profile with social networking functionality. Users can create rich content using Markdown and even HTML/JS/CSS (if set as trusted user).

All content can be pinned to the user profile and all content will federate to contacts in the federated social web.

Currently federation happens using the Diaspora protocol with future plans to include at least ActivityPub as well. Federating using existing protocols means Socialhome users can interact with tens of thousands of other users.

Please check the official site for more information about features. Naturally, the official site is a Socialhome profile itself.

Architecture

../../../_images/architecture.png

At the lowest level we have the database (PostgreSQL) and Redis based cache/queue storage. Search is currently powered by Django-Haystack + Whoosh.

On top of this we have the background jobs, which are powered by RQ.

In the middle sits Django.

To provide data for the frontend we have 3 solutions - WebSockets (powered by Channels), a REST API powered by Django REST framework and Django template engine itself.

For the frontend, we will have 3 solutions.

Currently everything is Django templates.

We will want to keep some of the pages as Django templates. For the streams (and possibly other pages), we want to create a Vue.js app.

Additionally, mobile apps would be provided.

git clone https://git.feneas.org/socialhome/socialhome.git

~/projects > git clone https://dev.funkwhale.audio/funkwhale/funkwhale.git
Clonage dans 'socialhome'...
remote: Enumerating objects: 11492, done.
remote: Counting objects: 100% (11492/11492), done.
remote: Compressing objects: 100% (2912/2912), done.
remote: Total 11492 (delta 8221), reused 11470 (delta 8210)
Réception d'objets: 100% (11492/11492), 5.38 MiB | 1.74 MiB/s, fait.
Résolution des deltas: 100% (8221/8221), fait.

Code Layout