I'm a bit curious about GoToSocial, in particular because I want to host a few Fediverse/ActivityPub instances myself, and GTS seems to be a bit less resource hungry and supports "backports" of past data.

Does anyone have experience with the GTS platform vs Mastodon? I'm not interested in a "flame war", just objective comparisons.

#gotosocial #gts #mastodon #fediverse #devops #activitypub

@joho I run a fedi instance for myself and a few "playground" accounts, filled with some followings and my "poor man’s relay" (reading RSS feeds of hashtags from other instances with a script and injecting the stuff via Mastodon search API).

First I used #Mastodon (on a #hetzner cloudserver with 8G RAM). A Rails app is not a problem to install and run for me (that’s what I do for a living). But once it's running and federating, there is always something going on on the server that eats a lot of memory and creates surprisingly high CPU usage. And it fills your disc.

So I decided to use #GoToSocial (on a cloudserver with 4 G RAM) for the same stuff, with Postgres. The main difference is the Interface (I use #Phanpy instead of Mastodon’s web interface), of course. Some of the nice "bells and whistles" from Mastodon (like the automatic author attribution, automatic OG preview pics for links in the timeline and all the "trending" stuff, etc.) aren’t there, that’s okay for me.

I barely notice a system load with GTS. It also fills your disc, but you can use a short media purge time, because GTS can reload a pic or a video from its origin if it is already purged away. Something that Mastodon cannot do.

@r @joho I'm interested in your "poor man's relay" setup. Hashtag access and search is one of the few items preventing me from fully migrating to this instance.

@bill @joho I will write this up with a ruby example. The problem is: My solution is part of a larger Rails project that does all my "dirty backend work" for a lot of unrelated tasks (whenever I need some stuff on my server I add it do this thing 😀), so I have to pull the code out of this.

In principle it's easy: You read the RSS feed of a tag page from an instance (just add .rss to a tag page), iterate over it and take the "id" (which is the URL of the post) from each feed item. This id you send to your server’s API (you have to create a token for API access that has to be send in the headers with the request) with a GET request like YOUR_SERVER_URL/api/v2/search?resolve=true&q=THE_ID_FIELD_FROM_FEED_ITEM. Your server searches it in the fediverse and it is available on it afterwards.

This works only with hashtags that have posts in reasonable numbers, of course. But I doubt anyway that there are hashtags in Fediverse that have hundreds of posts in a short period of time like Twitter et al.

@r @joho awesome, thanks! No need to do any extra work if you don't want to, that description is plenty thorough to replicate.