Socialhome version 0.5.0 released

Approximately one month since the previous release, #Socialhome 0.5.0 is out with 102 changed files, 2870 insertions and 999 deletions by 2 contributors.

For users there are only a few features added in this release, most of the work being internal refactoring and work in preparation for future features.

Please see the full changelog here.

New features

A few notes on feature highlights.

Shares in streams

Shares are now pulled up to the "Followed" stream. What this basically means is that when a person you follow shares something authored by a person you don't follow, the post will be pulled up in your stream by the share action.

Generally, you should only see a single post once. If you follow the author whose content was shared, that content has already been in your stream, and thus a share will not repeat it. Note however that since stream pre-calculation is a new thing, it is possible that content seen in the stream before this feature was added will pop up in a new share once more.

There are still some things to do for shares, these are being tracked in this issue.

Stream precaching

Related to "shares in streams", there was a lot of refactoring work to create the new base for how all streams function. This includes unifying lots of code and rewriting it so that in addition to pulling content out of the database, we can "precalculate" streams. This is done to ensure streams load super fast even if the calculations on what content the stream has are heavy.

The only stream that is currently precached is the "Followed" stream. Precaching means it will load as fast as the public stream even though we now include shares by non-followed users and include them only once - which would be a heavy calculation to do without precaching. The real benefit will come when custom user defined streams are available.

How would you like to configure the content in your stream?

GIF uploads

Yes, we love GIF's <3

Links in content

All links in content (whether textual, markdown or HTML) are now treated equally. They will all be used as candidates for OEmbed/OpenGraph fetches and all will be processed to add a target="_blank" to the link, forcing it to open in another tab/window.

Stream URL changes

All stream urls now live under /streams/, so for example followed stream is /streams/followed/. The old url's should still work until they are needed for something else.

Features coming up

Vue.js streams

Christophe Henry has been hard at work rewriting the current Django template + #jQuery based streams in #VueJS. The status of that work can be tracked here. We're hoping to replace the current stream frontend with the Vue streams within the coming months. This will drop a lot of legacy code and speed up development of new features, and will also mean our #API is fully complete for the stream features.

ActivityPub protocol support

This is still something we want to do as soon as some of the basic features are first implemented. Currently it looks like having it before the end of the year is slightly optimistic, but federating with for example #Mastodon using #ActivityPub will be a strong priority to get early next year.

Docker images

There has been some work on #Docker images to run a Socialhome instance. Will post more info as they are ready.

What is Socialhome?

Socialhome is best described as a #federated personal profile with social networking functionality. Users can create rich content using Markdown. 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. 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.

Official site: https://socialhome.network.


Want to work on a #Django and Vue.js powered social network server? Join in the fun! We have easy to follow development environment setup documentation and a friendly chat room for questions.

#changelog #news #socialnetwork #thefederation #selfhosting

socialhome - A federated social home.

Socialhome HQ

Alguém aí pode indicar #mobile #apps para #Diaspora #Friendica #Hubzilla #Gnusocial? #federated

Thiago Skárnio

#MIT has a Digital Currency Initiative that has a report on the decentralized web:


If it hasn't been posted before, here it is now! Good read so far, but wish there was some analysis on other tech like #hubzilla or other #federated web hosting and content. #foss #floss


Awesome, this library will allow me to add #emoji reactions to #Socialhome that can be #federated out as a standard like, if positive 👍 😁


emoji-emotion - List of emoji rated for valence in JSON

Jason Robinson

Another #thefederation / #fediverse / #federated social recap by Mike.

Will all those f's transform into X's? We'll see.

Jason Robinson

Been in the #federated social sphere since 6 years or so and only now actually tried #Friendica 😱 Been spending way too much time looking through #Diaspora lenses..

Have to say it sure does have a lot of settings available. Had to create an account to test some #federation stuff with #Socialhome.

Jason Robinson

Den letzten Absatz kann man da wirklich getrost weglassen, da ist nur der 1. Satz wirklich passend. Sonst ein guter Artikel!

Einen grosser Teil der Features gehen auf die Konten derer die ihr hier findet:
@{Friendica Developers; developers@helpers.pyxis.uberspace.de}

Wenn ihr helfen wollt meldet Euch, schlagt vor was ihr machen wollt, schaut was die anderen sagen und dann legt los.

#Diaspora Alternative, #Hubzilla, #GnuSocial, #Mastodon, #Föderation, #FLOSS, #Facebook, #Federated #Socialnetwork

♲ hoergen@social.hoergen.org:

Ein kleiner Übersichtskommentar über die Facebook Alternative #Friendica statt (Hipster) #Diaspora und ein bisschen #Hubzilla mit einer eher zweifelhaften politischen Einsortierung. Dennoch lesenswert <https: besseres-als-diaspora-gibt-s-schon-laenger-als-diaspora="" forum="" kommentare="" nach-dem-netzdg="" posting-30501212="" show="" telepolis="" www.heise.de=""> hnpa



"The Next Challenge for Open Source: Federated Rich Collaboration", 10.05.2017

"When over a decade ago the file sync and share movement was started by Dropbox and later joined by Google Drive, it became popular very fast. Having your data available, synced or via the web interface, no chance of forgetting to bring that important document or use USB sticks -- it was a huge step forward. But more than having your own data at hand, it enabled sharing and collaboration. No longer emailing documents, no longer being unsure if you got feedback on the latest version of your draft or fixing errors that were already fixed before. Usage grew, not only among home users but also business users who often used the public cloud without the IT departments' approval." #FrankKarlitschek Frank #Karlitschek
read more -> https://www.linux.com/blog/next-challenge-open-source-federated-rich-collaboration

@{We Distribute+ ; wedistribute@lastauth.com} @{Zot universe NEWS+ ; zotnews@parlementum.net} #OpenSource #FederatedRichCollaboration #Federated #Federation #Collaboration #sharing #Dropbox #publicCloud #Cloud #filestorage #github #versioning #selfhosting #Nextcloud #Nextcloud12

The Next Challenge for Open Source: Federated Rich Collaboration
When over a decade ago the file sync and share movement was started by Dropbox and later joined by Google Drive, it became popular very fast. Having your data available, synced or via the web interface, no chance of forgetting to bring that important document or use USB sticks -- it was a huge step forward. But more than having your own data at hand, it enabled sharing and collaboration. No longer emailing documents, no longer being unsure if you got feedback on the latest version of your draft or fixing errors that were already fixed before.

neue medienordnung plus

federation 0.11.0 released

Federation is a #Python library for abstracting #federated #social network protocols through one API. Currently #Diaspora is supported for status messages, comments and likes + all the signing and discovery related parts. Plan is to start working on #ActivityPub support in the next few months.

If you would like to participate or want to talk about the library, pop into IRC FreeNode #python-federation or join the Gitter chatroom.

Release on GitHub.

Release notes

Backwards incompatible changes

Diaspora protocol support added for comment and like relayable types. On inbound payloads the signature included in the payload will be verified against the sender public key. A failed verification will raise SignatureVerificationError. For outbound entities, the author private key will be used to add a signature to the payload.

This introduces some backwards incompatible changes to the way entities are processed. Diaspora entity mappers get_outbound_entity and entity utilities get_full_xml_representation now requires the author private_key as a parameter. This is required to sign outgoing Comment and Reaction (like) entities.

Additionally, Diaspora entity mappers message_to_objects and element_to_objects now take an optional sender_key_fetcher parameter. This must be a function that when called with the sender handle will return the sender public key. This allows using locally cached public keys instead of fetching them as needed. NOTE! If the function is not given, each processed payload will fetch the public key over the network.

A failed payload signature verification now raises a SignatureVerificationError instead of a less specific AssertionError.


  • Three new attributes added to entities.
    • Add protocol name to all entities to attribute _source_protocol. This might be useful for applications to know which protocol payload the entity was created from once multiple protocols are implemented.
    • Add source payload object to the entity at _source_object when processing it.
    • Add sender public key to the entity at _sender_key, but only if it was used for validating signatures.
  • Add support for the new Diaspora payload properties coming in the next protocol version. Old XML payloads are and will be still supported.
  • DiasporaComment and DiasporaLike will get the order of elements in the XML payload as a list in xml_tags. For implementers who want to recreate payloads for these relayables, this list should be saved for later use.
  • High level federation.outbound.handle_send helper function now allows sending entities to a list of recipients without having to deal with payload creation or caring about the protocol (in preparation of being a multi-protocol library).
    • The function takes three parameters, entity that will be sent, from_user that is sending (note, not necessarely authoring, this user will be used to sign the payload for Diaspora for example) and a list of recipients as tuples of recipient handle/domain and optionally protocol. In the future, if protocol is not given, it will be guessed from the recipient handle, and if necessary a network lookup will be made to see what protocols the receiving identity supports.
    • Payloads will be delivered to each receiver only once. Currently only public messages are supported through this helper, so multiple recipients on a single domain will cause only one delivery.


  • Refactor processing of Diaspora payload XML into entities. Diaspora protocol is dropping the <XML><post></post></XML> wrapper for the payloads. Payloads with the wrapper will still be parsed as before.
Jason Robinson

friendica – A #Decentralized #Social Network


#Friendica has a nice new(?) home page, looks good!


Jason Robinson

Yay, first #federated comments in #Socialhome \o> Thanks Benjamin Neff for the help with demystifying the #diaspora relayable signing #magic.

Next, once this wrapped up, following/followers.


Test post for federated comments in #socialhome

Jason Robinson

The #federated #social space like #diaspora and #mastodonsocial are a boon for the crazy new #TLD out there. Looking at you #xyz #space #town #earth #pizza #party #Netizin