Skip to main content

Hello, my name is Jason and I am the author of Socialhome. Ask me Anything!

Hello, my name is Jason and I am the author of Socialhome. Ask me Anything!

Project url: https://socialhome.network

Proof of AMA: https://jasonrobinson.me/content/2274394/doing-an-ama-on-socialhome-at-the-googleplus-mi/
https://socialhome.network

Comments

  1. Jason Robinson: Welcome! So, how would you describe Socialhome, and what are your plans with it? What is the use-case it addresses?

    ReplyDelete
  2. Edward Morbius In short I would describe Socialhome as a social networking server with rich profiles. I kind of see it as a cross between Twitter, Tumblr and Pinterest. You can do statuses like Twitter, longer form posts like Tumblr and it has the visual layout more like Pinterest.

    ReplyDelete
  3. What network did you love using before you decided to create social home, and what network was your inspiration/frustration to create socialhome?

    ReplyDelete
  4. Socialhome comes from my personal need for a home page. I wanted a home page that I can add dynamic content to easily. As I already had a library for federating with Diaspora I decided to add more social networking features to it.

    My goal is to add more federation support, including ActivityPub, to reach users on for example Mastodon, but also build on the rich profile part. This includes more control on defining how the profile looks. I guess one could say something a bit like MySpace in that sense :)

    ReplyDelete
  5. Can posts be edited once they are published?

    ReplyDelete
  6. wara zashi At the time Socialhome was started I was a core team member of Diaspora. I was frustrated with certain things about the software and realized the only way I could do my own thing was to start my own project. Additionally I wanted to code Python/Django instead of Ruby on Rails.

    I've also been a heavy user of Twitter, Facebook and to a lesser extend Tumblr. The grid layout comes from Pinterest which I never really used much because it is focused on image based content. I wanted something similar but for all content :)

    ReplyDelete
  7. Jason, a lot of us have moved or are planning to move over to Diaspora*. What advantages does SocialHome have over D*?

    ReplyDelete
  8. Eric Bright Yes. Post edits federate to other Socialhome servers and Hubzilla servers. Currently many platforms for example Diaspora and Friendica ignore the edits, unfortunately.

    ReplyDelete
  9. Garry Knight Socialhome is implementing ActivityPub, which Diaspora has decided not to do. So Socialhome will federate with hundreds of thousands of users soon across the Fediverse. We will still keep federating with Diaspora of course.

    Socialhome is also maybe a bit more towards rich content creation and rich profiles while Diaspora is aiming for a more traditional Facebook type of view on posts.

    The advantage of Diaspora is definitely stability. Socialhome is still in early stages and many things are missing, for example likes.

    ReplyDelete
  10. Jason Robinson Are you looking at privacy and abuse controls at all? What can users do, what needs to happen at the admin level?

    ReplyDelete
  11. Garry Knight A few other key differences:
    * On Diaspora shares are separate posts. On Socialhome they are like on Twitter and Mastodon, just "boosts" of the original.
    * Socialhome supports image uploads inline to the content. On diaspora image uploads are always "attachments".
    * Socialhome supports HTML/JS/CSS for "trusted users" on a server. This is normally just the admin since otherwise there is a security risk. This kind of content does not federate properly, but it is great for embedding youtube embeds on your profile, for example.
    * Socialhome will (in the future) support custom streams according to user configuration
    * Socialhome streams load fast ;)

    ReplyDelete
  12. Edward Morbius users have the choice of 4 visibility levels for content. Public (federates, indexed by google), limited (federates, but only to those servers where targeted users are at), site (does not federate, visible to server users only), self (visible to self only, good for drafts).

    Abuse controls don't exist yet, unfortunately. Plan is for various actions a user can take, for example to hide posts from a certain user and block a certain user (stops seeing the user totally). Also planned are possibilities for reporting content to admins and for admins to be able to delete content, ban users and ban servers.

    ReplyDelete
  13. Eric Bright Hopefully :) Unfortunately swamped with things to do atm, so not looking like it is coming any time soon. There is a fully functional REST API though, so building one is possible. Hoping for a developer to step up :)

    Meanwhile the web view works quite well with mobile browsers in single column responsive mode.

    ReplyDelete
  14. Eric Bright My own plans relatively soon (within months) include an app to at least share images from Photos on the phone - probably will be limited at that.

    ReplyDelete
  15. Jason Robinson Do you have any active users other than yourself presently? Plans to grow this out or expand development?

    ReplyDelete
  16. How easy is it to set up? At the low end: will it run on a Raspberry Pi?

    ReplyDelete
  17. Edward Morbius Yes, there are some users. Currently the-federation.info - The Federation - a statistics hub lists 109 active users in the last month, 317 in the last 6 month period. I run the "main" server + my own personal server. Additionally there is an open server in Ukraine run by a person not affiliated with the project.

    The plan is to introduce a Docker image soon (days, within week!) to allow setting up a Socialhome server much easier than it is now.

    Expanding development is tricky. I'm a father of 3 and thus have only an hour or two max per day for hobby stuff. I'm hoping to grow the developer base organically. I hope it doesn't grow too fast so things keep together ;) But a few Python/Django/VueJS developers added as contributes would help a lot.

    ReplyDelete
  18. Alex Schroeder It's a bit of a pain at the moment, requiring some sysadmin knowledge, and preferably Django knowledge. I am however building a Docker image with instructions to set it up without requiring knowledge of Python, Django or other components. Probably still need a little sysadmin skills.

    Socialhome runs quite nicely on a VPS with 2GB RAM. Any less than that would require a lot of restarts and could be a bit slow. It's not the lightest of software unfortunately. There are plans to make things more configurable to decrease the necessary requirements. But it is likely going to be larger than for example your average PHP app.

    ReplyDelete
  19. Jason Robinson Sorry I should have been more clear. A 2GB instance will be enough for "yourself and some users". For example the main socialhome.network - Socialhome HQ - Socialhome instance I run on a 8GB instance. This is to ensure streams load fast since Socialhome includes some aggressive caching so that when a user loads the stream it loads near instantly. This of course requires a lot of RAM. But in the future we want to allow configuring this so you could run an instance with less RAM but have slower loading, for example.

    ReplyDelete
  20. Thank you all for the interest and asking the questions <3 I'm happy to answer more questions for the late ones or those who just happen to bypass here. I'll be checking this randomly within the next 30-60 minutes or so and then next in approx 8 hours in the morning my tz. Questions after that will be answered if seen.

    You can also contact me on Socialhome by handle `jaywink@jasonrobinson.me` and (while AP support is WIP) on Mastodon at `jaywink@diaspodon.fr`.

    ReplyDelete
  21. Jason Robinson Thanks so much for stopping by, sounds good.

    ReplyDelete
  22. Jason Robinson sorry, I'm a bit late to the party, but I have one more question:

    You mentioned that "On Diaspora shares are separate posts. On Socialhome they are like on Twitter and Mastodon, just "boosts" of the original." - What I really like here on G+ is the ability to reshare something and add your own take on it in the reshare, like so: https://plus.google.com/+CarstenReckord/posts/ib2iuFqRnwj.

    On Diaspora, I can achieve something similar by just creating a regular new post and adding a http link to the other post, which gets it embedded into mine. But that's a) a pretty clunky workflow and b) suffers from the fact that the link is now pod-specific.

    How would you handle something like that on Socialhome?

    And thanks a lot for taking the time for this AMA.

    ReplyDelete
  23. The OSI Standard termed 802.xx, why does it start with 802?

    ReplyDelete
  24. Jason Robinson A couple of notes and questions:
    ★it's good to see there's already data export support. What format is this in though, and has the data structure of the dumps been documented? Do you provide libraries to read in this data as a data model? While Google offers data export for quite some of its platforms, the lack of documentation and libraries to access that data, which is currently causing quite some frustration among Plussers.
    ★ are there plans for supporting importing data from other platforms, Google+ in particular?
    ★ is there support against brute-force password guessing, such as locking an account after x failed attempts, and other rate-limiting options?
    ★ any plans for 2FA?
    ★ will there be support for Collections? Being able to categorise your posts into Collection categories that users could follow instead of the account, would allow people to only follow specific topics, and thus being able ignore someone's political posts, while still getting their tech posts in your stream. Being able to follow hashtags by a specific person would perhaps be decent middle ground.

    ReplyDelete
  25. Carsten Reckord The idea I have for Socialhome is to allow writing your own text (as per usual rich text editor) to accompany the share. This would make it more of a "quote". Behaviour would I believe be like here on Google+ and on Twitter. This is not implemented yet and would likely only federate well between Socialhome instances, unless other platforms add support too. For non-supporting platforms it could be federated as a normal post with a link to the quoted post (as per your indicated morning flow).

    ReplyDelete
  26. John C. Reid According to Wikipedia:

    > The number 802 was simply the next free number IEEE could assign,[1] though "802" is sometimes associated with the date the first meeting was held — February 1980.

    I first one sounds plausible, the second sounds a bit too much internet legend.

    ReplyDelete
  27. Jason Robinson re. reshares: perhaps you could keep the link as an attachment for compatibility with other federated platforms, and have the quote tag reference it for your own platform. Other systems could then just either implement the quote their way, or ignore it, while not really losing the context.

    ReplyDelete
  28. Jason Robinson what kind of object type does Socialhome use btw? Note, Article or Document? Since you started with Diaspora connectivity, Iand are focused on long-form content, 'm guessing Article?

    ReplyDelete
  29. Filip H.F. Slagter


    > ★it's good to see there's already data export support. What format is this in though, and has the data structure of the dumps been documented? Do you provide libraries to read in this data as a data model? While Google offers data export for quite some of its platforms, the lack of documentation and libraries to access that data, which is currently causing quite some frustration among Plussers.

    The format is JSON and it matches what the REST API also outputs. Docs here: socialhome.network - Socialhome API .. I would not go as far as saying it is well documented though, but I would say it is relatively clear by looking at the API results. Better documentation would be a welcome addition to the API / export. I plan to keep them compatible in format to decrease the amount of required serializers and documentation.

    > ★ are there plans for supporting importing data from other platforms, Google+ in particular?

    No immediate plans, but I would happily add importing from any source that someone wants to write an importer for. The problem in a federated environment is making the distinction of "new content" and "imported content". Is all imported content pushed out to remote servers or just imported for local storage? If the latter, the imported content is less useful since only a fraction of people will be able to interact with it. I would say identity and contacts imports would be the most useful. If some developer wants to work on a Google+ importer I would be happy to spend some time helping.

    > ★ is there support against brute-force password guessing, such as locking an account after x failed attempts, and other rate-limiting options?

    Good question! The auth framework we use for Django has support for this, just checked the docs, I will create an issue to make it configurable by admins. So soon, yes.

    > ★ any plans for 2FA?

    Yes, hopefully in the not so far future. Currently not implemented. It will be TOTP most likely.

    > ★ will there be support for Collections? Being able to categorise your posts into Collection categories that users could follow instead of the account, would allow people to only follow specific topics, and thus being able ignore someone's political posts, while still getting their tech posts in your stream. Being able to follow hashtags by a specific person would perhaps be decent middle ground.

    I'm not entirely familiar with Collections (having not used G+ that much). But it sounds like the idea for custom streams I have. The idea for custom streams is that a user can configure their own custom streams. A custom stream would have a name and one or more rules. These rules would probably initially be AND type but OR could be added later. If a post matches the rules -> it is added to the user stream. Much of the work was already done for this to enable pre-calculating stream content (the "fast stream loading" feature).

    Rules could for example be post authors, hashtags, language, words in text, images/no images, etc - really anything that can be done to analyze a post and match to a rule. Since all this happens on content save, not when loading the stream, we can do the heavy lifting in the background and then just pop out the content to the user fast when they visit.

    Does this answer your question?

    ReplyDelete
  30. Filip H.F. Slagter ActivityPub support is still WIP. Currently I'm implementing fetching profiles, follow and then delivery (http sigs, etc). After that actual content. Inbound support will be added for as many types as necessary while converting them all internally to our "content" type. Socialhome uses the federation library in between which abstracts the protocol specific things away so from Socialhome all will look the same irregardless of protocol.

    But for outbound that is an important question. I was planning Note initially, for maximal compatibility, but I think Mastodon just added support for Article, so that could be the better solution. Might need to do some additional research here. It could even depend on the content, ie Note for short form, Article for long form.

    ReplyDelete
  31. Thanks again for the interest! I will have to go do some paid non-open sourcey work now, will check back later in the day.

    Maybe later today I will go through these once more and create any issues in our issue tracker, for those things posted that didn't already have an issue. Some very good ideas posted here via the questions 👍

    Issue tracker here: git.feneas.org - Boards · Socialhome / socialhome

    Btw, I'm actively looking for a Python / Django / Vue.js developer to help shape the platform. If you have had a look and see possibilities, contact me and lets talk. Possibility to strongly influence the platform and gain a place as a core developer for a capable developer. Obviously, non-paid work :) Contacts: https://jasonrobinson.me/content/1/contact-httpsjasonrobinsonmemediamar/

    ReplyDelete
  32. Jason Robinson excellent answers, thank you!
    Especially keeping the export in the same format as the API is a good thing. From what I gather, Google used to have the same for GPlus till they reworked the Acl system.

    Re. importing content: that's actually an interesting point. I guess that might be something for AP to consider adding? Besides having an Inbox and Outbox, to perhaps also have an Archive that can be used for this purpose?

    Re. rate-limiting: good to hear it's getting looked it! Especially if it isn't just per-IP, but also resilient to distributed attacks.

    Re. 2FA: I'm assuming TOTP support will make apps like Google Authenticator are supported, so that sounds great! Another system that is worth considering, is where you can approve a new login from an already signed-in device, such as Google Prompt uses. Though that's probably more useful when you actually have native mobile apps.

    ReplyDelete
  33. Jason Robinson Re. Collections:
    Custom Streams sound like they could indeed help, especially if they could optionally be merged with the default stream. I.e.: All content from everyone I currently follow + #Tech from UserY + #DrWho from UserZ. Where UserY and UserZ aren't people who I am already following.

    Currently here on G+ you can do the following:

    ★ Add a Person to a Circle: the visibility setting (mute, low, medium, high) decides how much content of people in that Circle show up in your main Stream. The content shown is pulled from all the content they post, including content posted to any of their Collections. (IIRC, by default adding a person to a Circle will automatically follow all their Collections, but you can still opt-out of individual Collections of them)
    ★ Follow just one or more of their Collections, but don't add the Person to any of your Circles: Only the content posted to the Collections you follow, shows up in your main Stream.
    ★ Search for specific keywords or hash tags, none of it can be saved to your Stream though.

    The Collections can actually also be used to improve discoverability of users, by promoting the most popular Collections, as you can for instance see here on G+ in the side bar.

    ReplyDelete
  34. Jason Robinson Unfortunately my experience with Python is limited to writing simple scripts for the IRC/chat client WeeChat , and my expertise lies more with Ruby, so I doubt I'll be much help codewise, but I'll try to pop over to the issue tracker at least to leave some further feedback.
    I'll also sign up for a Socialhome account when I have some more spare time, to actually check out your service, as I do like what I've been hearing so far. :)

    Thanks again for taking the time to respond to our questions! Much appreciated!

    ReplyDelete

Post a Comment

New comments on this blog are moderated. If you do not have a Google identity, you are welcome to post anonymously. Your comments will appear here after they have been reviewed. Comments with vulgarity will be rejected.

”go"