54
 92

Socialhome HQ

hq@socialhome.network



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.

Try it!

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

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.

Streams

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.

Profiles

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.

Federation

Socialhome federates using the Diaspora protocol. This allows content to federate not only to other #Socialhome nodes, but also with nodes from #Diaspora, #Friendica and #Hubzilla.

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.

Get involved

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.

Major changes

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.

Additionally there are some #API changes and various other tweaks mainly interesting for people who run or would like to customize a Socialhome server. See the full changelog.

For developers, #Docker files now exist to do development without installing all the complex components required. See the developing with Docker documentation.

Release statistics

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.

Up next

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.

Contribute

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

lightone

Socialhome client shcli now available as a Snap

shcli allows creating content using either the command line or #Python API. Now in addition to installing from PyPi, it's available as a #Snap.

If on a recent #Ubuntu desktop or server, just do sudo snap install shcli and start posting. On the desktop you can also use the software manager to install it as any other package.

On other systems, for example #Arch, #Debian, #Gentoo, #Fedora, #OpenSUSE, #OpenEmbedded, #Yocto, #OpenWRT and #Solus, install the Snap daemon first.

#socialhome

How to: creating content via shcli

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 requests library.

Create a Python environment

Either install shcli in a virtualenv or globally, depending on your use case. For desktop users, a global installation makes sense.

Virtualenv

Install virtualenv for your system and create a Python 3 virtualenv and activate it.

Global install

Ensure you have a compatible Python 3 version of pip installed. For example on Ubuntu, this would be the python3-pip package.

Install shcli

Virtualenv:

 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.

Post stuff!

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.

An example:

 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 public, limited, self or site.

That's it pretty much! The response will be either the created content as JSON or some kind of error, if something went wrong.

Python API

You can also use the API through Python by importing shcli.create and passing in the same arguments as for the cli create command.

Code

The repo for shcli is on GitHub licensed under MIT.

#socialhome #howto #python #api

Socialhome is now on The-Federation.Info

You can now find and track #Socialhome nodes on https://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 #changelog #devdiary

Socialhome HQ - Socialhome

Chat with us on #Matrix

We've now a #socialhome:matrix.org room on Matrix too, in addition to our IRC and Gitter rooms. All these rooms are bridged, so you only need to join one to talk to participants in all three.

#Django developer?

Want to help build a cool social network site that federates with #Diaspora, #Friendica, #Hubzilla, and in the future #Mastodon too? Come talk and join in, help is required!

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

#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!

#devdiary #changelog

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!

Where?

Test Socialhome at https://socialhome.network . This node follows the development branch and will always have the latest merged in features.

#socialhome #devdiary #changelog

Socialhome HQ - Socialhome

Started a #Roadmap section in our documentation. Below the high level architecture of current and possibly future #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!

Thanks @{Augier; augierle42e@diaspora-fr.org} for the good discussion regarding this in our little #Helsinki #hackathon at the Anders office a few weeks back, and for kicking off this mammoth task 🍻

Playing around with mock-up for redesign of #Socialhome cards. As an idea, reactions could be #Slack like emojis instead of just a single like reaction.

Want to give feedback? Please do in the GitHub issue - comments don't yet show in our end from around #TheFederation :)