Socialhome allows you to build a rich profile that federates across the federated social web. Your content will be available to tens of thousands of users that you can also follow and interact with their content.
The code is hosted on GitHub under the AGPLv3 license.
Create an account and create some content!
Please note however that the software is in early stages and does not support the whole set of features that are planned. If you feel something is missing or should work differently, please get in touch! You can chat to us via GitHub issues, IRC, Gitter or Matrix chat.
Content in Socialhome is visualized in a grid. A WYSIWYG editor is available for creating rich Markdown content. Edit is supported, also through the federation layer. Images can be embedded inline with text.
In addition to Markdown, special trusted users can use full HTML/JS/CSS to edit content.
All content grids are streams in Socialhome. The public stream shows all available public content available from all users, local and remote.
Additionally each user home page is a stream of content pinned to the profile page by the user.
Tag streams show all the content that contains a certain hashtag.
All content is equal, including user profile page content. Any type of content created by a user can be pinned as permanently visible in the user profile. The pinned content can then be arranged by the user in the order they wish.
This profile content is still normal content as any other content in the system. It will federate and it can be replied to.
Socialhome doesn't make a distinction between profile and other created content. All profile content you create can be pushed via the federation layer to other nodes in #TheFederation.
Socialhome is missing features and needs a lot of polish on the UI side. If you are familiar with #Django (or want to learn!) and are interested in getting involved, please don't hesitate to get in touch!
For guidelines how to contribute, please first read our contributing documentation.
Proudly powered by Django
A picture is worth a thousand words
#Socialhome really shines with image based content. Plan is to also have the possibility to view any stream with just the images it contains.
Socialhome v0.6.0 released
.. and we have a logo!
The logo, which highlights both the "home" and the "grid" aspects of #Socialhome, is contributed by lightone - thanks a million! <3 The documentation brand page has an SVG and various PNG's for download.
Other user facing changes in this release include the following:
- Profile "All content" streams now include the shares the profile has done.
- Unknown shared content shared by a contact is now fetched from remote if it doesn't exist locally.
- Modified timestamp is now used for when federating out to remote nodes. This makes edits federate more reliably to some remote platforms that support edits.
- Fixed various OpenGraph related issues.
- Fixed poor performance of loading replies. This regression happened when introducing replies for shares.
A total of 7 authors contributed to this #release which is a record so far! #Hacktoberfest helped bring in a few authors. A total of 77 commits were made, affecting 134 files, contributing to 3864 insertions and 865 deletions.
Right now there is still a lot of work being done on the #VueJS streams, thanks to Christophe Henry again for working on these. Current estimate is that the next release will replace the current #jQuery based streams with the new rewritten ones. This will introduce some feature updates, but mostly it will be an internal rewrite. What it does do though is open up more features to be added. The current streams code is not going to be expanded expect to fix bugs.
Once the Vue streams work is shipped, we're looking to work on long standing missing features like tag streams and limited visibility content. #ActivityPub federation will likely be pushed to early months of 2018.
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.
shcli now available as a Snap
100 users ✌
the federation - a statistics hub
Podlist and statistics for The Federation (diaspora*, Friendica, Hubzilla, GangGo, Socialhome).
How to: creating content via
Socialhome has an API which covers most of the use cases for building a client. There is also a Python library/cli client that allows creating content over the API. This is a short introductory on how to use that.
shcli requires Python 3.4+. The client has only been tested on Linux, though it should work on Windows and Mac too. The only real dependency it has is the
Create a Python environment
shcli in a virtualenv or globally, depending on your use case. For desktop users, a global installation makes sense.
Install virtualenv for your system and create a Python 3 virtualenv and activate it.
Ensure you have a compatible Python 3 version of
pip installed. For example on Ubuntu, this would be the
pip install shcli
Globally (for example on Ubuntu):
sudo pip3 install shcli
Phew, now we're past the hard part.
Get API token
Go to your Socialhome account profile and find
API token from the profile menu. Copy the token for later use. If you ever lose it, this is the place to generate a new token.
Using the tool is easy. It currently only allows creating content, so commands and options are not plenty. More will be added in the future.
The client takes a command, a domain, a token and then parameters for text and visibility. The domain is your Socialhome account domain (for example
socialhome.network) and token the API token copied in the previous step. To protect the token, the client always uses a HTTPS connection. This is why the protocol is not given in the command.
shcli create socialhome.network 1234567890abcdefg \ -t 'Hello world!' -v public
For complex creations, the client can retrieve the text from a file. Instead of
-t, pass in the file name with the
-f parameter. Visibility can be one of
That's it pretty much! The response will be either the created content as JSON or some kind of error, if something went wrong.
You can also use the API through Python by importing
shcli.create and passing in the same arguments as for the cli
The repo for
shcli is on GitHub licensed under MIT.
Socialhome is now on The-Federation.Info
On a related note. We don't have a logo. Anyone want to contribute one? Fame and fortune will be yours! <3
the federation - a statistics hub
Podlist and statistics for The Federation (diaspora*, Friendica, Hubzilla).
Profile picture update lands!
Even though we like seeing more and more #Django ponies in the stream, we recognize users might want a slightly more personal picture for their profile. So, finally, you can set your own profile picture! Changing the picture also updates it to your remote followers through the #federation layer.
Access the profile picture upload page through the drop-down in your profile. First upload an image, after which it is possible to set a center point for the automatic crop that happens. All profile images are square shape, but your uploaded image doesn't have to be.
This addition is available in the development branch and on https://socialhome.network which runs on the development branch.
Socialhome HQ - Socialhome
Chat with us on #Matrix
Here are some buzzwords from our technical stack: #Django, #Channels, #Bootstrap 4, #jQuery, #Masonry, #RQ, #PostgreSQL, #uWSGI, #Circus, #Mocha, #federation, #Haystack, #Whoosh. And coming up, #VueJS.
#Socialhome image uploads are now available on mobile browsers too. Previously it was only possibly to drag'n'drop an image into the editor. Now you can embed in place by using the new "camera" icon.
This change is in the development branch and will be in the next release. The official public server https://socialhome.network runs on the development branch.
Btw, profile picture upload is almost ready, coming soon!
Socialhome HQ - Socialhome
Profile search lands in development branch
There is now a global #search in the right side of the header. The search returns matches for local and remote profiles based on their name and username part of the handle. Profiles marked with visibility "Self" or "Limited" are excluded from the search results. Profiles marked with visibility "Site" will be excluded if not logged in, leaving only public profile results. If a direct match happens with a full handle, a redirect is done directly to the searched profile. When searching for profiles based on handle, profile is fetched from remote if it isn’t found locally.
IMPORTANT for node maintainers. After pulling in this change, you MUST run the command
python manage.py rebuild_index to create the search index. Not doing this will cause an error to be raised when trying to search. The indexes are kept up to date automatically after running this command once.
The future of search
In addition to profiles, search will be coming for tags and content too. There are some ideas how to represent the global search results page with these different kinds of items. It could be something like this:
In this #mockup, we break the results into their own result areas, making it easier to locate the result you were looking for. The profile and tags results would have pagination and the content grid below would scroll down, loading more results. This would make the search a kind of dynamic stream.
Opinions on this and searching social content in general welcome!
Test Socialhome at https://socialhome.network . This node follows the development branch and will always have the latest merged in features.
Socialhome HQ - Socialhome
One of the central parts here is replacing the current streams with a #VueJS app, for performance and code architecture reasons.
This is a living draft that will be updated as time goes. Feedback welcome, especially from Vue hackers!