54
 90

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.

#Hacktoberfest is halfway

There is still time to contribute to #opensource and earn yourself a Hacktoberfest 2017 t-shirt + stickers. All you need to do is sign up on the Hacktoberfest website and make 4 PR's on #GitHub.

To help potential contributors to #Socialhome, we've tagged a bunch of easy to approach issues in our issue tracker with the 'hacktoberfest' label. Check them out! We have a friendly chat room where you can get help or more information.

Get hacking!

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.

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

jaywink/socialhome
socialhome - A federated social home.

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 :)