53
 74

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.

15 days ago (edited)

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.

15 days ago (edited)
8

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.

6 months ago

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.

23 days ago (edited)

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.

5 months ago (edited)

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.

15 days ago (edited)

Proudly powered by Django

11 days ago (edited)

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

5 months ago
4

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.

5 months ago (edited)

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

5 days ago

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

9 days ago
9

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

11 days ago
9

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

15 days ago (edited)

#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

15 days ago
3

Socialhome v0.3.1 released

In addition to new features and bug fixes, this release has several #security fixes for the way inbound remote #federation payloads are handled, especially regarding content update. All #Socialhome instances that we know of have been updated to this release.

Full changelog:

0.3.1 (2017-08-06)

Fixed

  • Bump federation library again to fix a regression in reply relaying due to security fixes in the library 0.14.0 release.

0.3.0 (2017-08-06)

Security

  • Reject remote content updates via the federation layer which reference an already existing remote content object but have a different author.

    Note that locally created content was previously safe from this kind of takeover. This, even though serious, affects only remote created content stored locally.

  • Reject remote reply updates via the federation layer which try to change the parent content reference.

  • Bump federation to ensure remote entity authorship is verified correctly.

Added

  • API has two new endpoints, the "Content" and "Image Upload" routes. (#120)

    • Content API allows browsing content objects that are visible to self, or public for anonymous users. Content objects owned by self can be updated or deleted. Creating content is also possible.
    • Image Upload API allows uploading images via the same mechanism that is used in the content create UI form. The uploaded image will be stored and a markdown string is passed back which can be added to content created in for example mobile clients. Note, uploading an image doesn't create any content itself, it just allows embedding images into content, just like in the UI.
  • New API docs exposed by Django REST Swagger. These are in the same place as the old ones, at /api/. Adding to the documentation is still a work in progress.

  • Add image upload button to the create/reply editor. This makes it possible to upload images from mobile browsers. (#120)

  • Make profile "following" button link to "following contacts" page, if user is logged in and own profile.

Changed

  • Create and update content will now redirect to the content created or updated. Previous behaviour was user preferred landing page.
  • Delete content will now redirect back to the page where the delete was triggered from. Previous behaviour was user preferred landing page. If the content delete is triggered from the content detail page, redirect will happen to user preferred landing page as before. (#204)

Fixed

  • Fix internal server error when replying to content that contained only characters outside the western Latin character sets.
  • Visual fixes for content rendering in content delete page.
  • Make direct profile handle search survive extra spaces before or after the searched handle.

#thefederation #changelog

14 days ago

Socialhome v0.2.0 released

I think we said "release every few months".. It's been 3 days, so might as well :)

This release contains among the search feature and bug fixes, a #security fix for an XSS issue that was just discovered. If anyone is running a node that we don't know of, please upgrade your version ASAP.

https://github.com/jaywink/socialhome/releases/tag/v0.2.0

Full changelog:

Security

  • Fix XSS vulnerability in profile edit. Unsanitized profile field input was allowed and one place showed a field without escaping it. The fields are now sanitized and escaping has been ensured.

    The problem concerned only local users and not remote profile fields which were correctly sanitized already.

Added

  • Added search for profiles (#163)

    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.

    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.

  • When searching for profiles based on handle, fetch profile from remote if it isn’t found locally (#163)

Changed

  • Improved content/reply create/edit form. Replies don’t contain visibility or pinned form elements any more. Added also some help texts regarding drag’n’drop image embed, visibility and content pinning.

Fixed

  • Make reply notifications to local users not send one single email with all local participants, but one email per participant. Previous implementation would have leaked emails of participants to other participants.

  • Correctly send replies to remotes (#210)

    If parent content is local, send via the relayable forwarding mechanism. This ensures parent author signs the content. If parent author is remote, send just to the remote author. The remote author should then relay it.

  • Ensure calling Profile.private_key or Profile.key don’t crash if the profile doesn’t have keys. Now the properties just return None.

  • Fix regression in profile all content stream load more functionality. (#190)

  • Filter out “limited” visibility profiles from API list results. These profiles are not available in the search so they shouldn’t be available to list through the API either.

#socialhome #changelog

jaywink/socialhome
socialhome - A federated social home.

22 days ago
9

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

24 days ago
9

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 🍻

a month ago
1