My Partially Sovereign Social Media Setup

Here is a quick brain dump of how I manage social media for myself and for one of my clients.

I use Mastodon as my main platform.

Note: I do not host my own Mastodon instance. There are Mastodon users that have single-user instances on their own domain. Mastodon allows you to move your account to a different instance. I’ve done it once. (It’s not painless, but doable.)

My personal Mastodon account:

https://mas.to/@HalfHeartedFanatic

Mastodon automatically creates a public RSS of public posts:

https://mas.to/@HalfHeartedFanatic.rss

I use the RSS as a trigger for IFTTT applets that (depending on context) repost to Facebook, Flickr, Threads, Xitter, YouTube.

But there’s a problem…

The Mastodon RSS links directly to the original post on the Mastodon instance, such as this:

<link>https://mas.to/@HalfHeartedFanatic/116240599008521224</link>

If I want to link to a YouTube video, I don’ t want the user to have to visit my Mastodon post first and then click again to visit the YouTube URL.

So I’ve created a PHP script that rewrites the Mastodon RSS in various ways.

https://web.tedjohnson.us/feeds/mastodonRSS.php

In this example, it’s a “link post” and my script grabs the URL and places it in the <link> tag instead of the URL of the Mastodon post.

<link>https://youtu.be/T4Upf_B9RLQ</link>

Now IFFTT can parse the RSS post and repost it as a link post to the other networks. But my main platform remains Mastodon.

It’s a little more complicated

On social networks, there tend to be 4 kinds of posts: text posts, image posts, video posts, and link posts.

IFTTT can’t distinguish between the different kinds of posts. So my PHP script has URL arguments. Each argument filters out all other post types.

Link Posts

As I described above, when my post refers to a third-party URL, the applets use the argument type=link.

https://web.tedjohnson.us/feeds/mastodonRSS.php?type=link

Note: I use an IFTTT Pro account that allows posting to Xitter. I don’t pay for access to the Xitter API. (I suppose I do, indirectly.)

Image Posts

When the post is simply an uploaded image, the applets use the argument type=image.

The applets upload the image from the Mastodon <media>tag and post it to the networks.

Text Posts

Text posts are no problem. I don’t care if they link back to my Mastodon post.

Most complicated are…

Video Posts

When the argument is type=videothe video gets uploaded to Mastodon, and then IFTTT uploads the video only to YouTube. From there another IFTTT applet is triggered which posts the video (as a link) to the other networks. (IFTTT is unable to create video posts to the other networks I use. If I wanted to upload a video directly to Facebook, for example, this system does not work.)

Exclusions and other stuff

I don’t necessarily want these applets to trigger on every Mastodon post. The script only processes posts with the #HalfHeartedFanatic hashtag. So if I don’t want my Mastodon post distributed to the other networks, I leave that hashtag out.

In other words: I have to explicitly use that hashtag or the post will not be distributed.

The script does some other things. It can tell the difference between a link to a blog post and a link to a social profile or a hashtag. These tricks are beyond the scope of this topic.

Also: There are some networks that IFTTT just doesn’t do, such as Instagram and LinkedIn. I use a free Buffer account to post to Mastodon, LinkedIn, and Instagram, so I can do everything at once.

What do you think?

Is this the kind of sovereignty that some people and enterprises want? Or is it just an idiosyncratic way of doing things efficiently for my clients — particularly clients who wish to remain on corporate social networks.

1 Like

I forgot to menton BlueSky.

My Mastodon account is “bridged” to BlueSky by fed.brid.gy. This allows BlueSky users to follow, comment, interact, etc. with my posts without me ever having to even create a BlueSky account. It’s not like true federation between Mastodon and BlueSky, but it’s the closest thing available. My PHP script doesn’t get involved.

https://bsky.app/profile/HalfHeartedFanatic.mas.to.ap.brid.gy
1 Like

Cool! Thanks for posting this, Ted. Glad you are here. :hugs: We could move this to the public #learning-journal if you like since it might be more widely interesting to folks who are trying to follow along with others to learn how to be digitally sovereign (if that’s a legit turn of phrase!).

I love how hacky this is. You should put the code up on github and share it!

I personally don’t know alot about mastodon and am glad you are encouraging me to learn more.

My impression is that even just knowing that you can leave a mastodon server is already the best reason to use it. This is one of the reasons I like Discourse. Though for Discourse, because it’s a forum platform, in practice the mobility is on the site owner level not individual level. As an individual member of a Discourse community you can download your activity but then you lose all your context because you are not alos downloading the activity of the people you have been having discussions with. Accounts can also be deleted but that is rare and discouraged - anonymization is better because when posts got deleted the topics they are in will look pretty strange!

Personally for the last 12 or so years I have completely opted out of social media. I’ve just been using the Discourse sites I used in my day job to feed my “social media” urges. The last 6 working at Discourse.org especially, because the company has a very strong internal community, both for socializing and for working. I only realized after I lost access to it when I got laid off how much I would miss all the great conversations I used to refer back to every day.

N00b mastodon question - I’ve created a mastodon.social account now - is that where I should be posting? Or should it be mas.to?

Incidentally, Discourse also has some relevant features that you might like to play with which we can do here.

The RSS polling plugin lets you grab RSS feed content and post it to a category on the Discourse site. I once tried this out on my neighborhood forum to aggregate news from various official sources, blogs and nonprofits here where I live on Bainbridge Island. It was pretty great but in the end only I ever looked at it.

ActivityPub lets you actually synchronize categories between two public Discourse sites, or between a Discourse site and a mastodon or any platform that supports ActivityPub. It’s a bit confusing to wrap your head around but Angus has made some nice video tutorials showing how it works. I am disappointed I can’t use it between two private Discourse sites - I have a category on my personal Discourse that I’ve had for years with my family containing lots of content I’d like to also have here.

Fine with me.

Email is a great paradigm for understanding Mastodon. You don’t need to have an @yahoo.com account in order to send a message to, or receive a message from example@yahoo.com.

Similarly the portability of Mastodon accounts is very similar to the portability of email accounts.

With email you can leave example@gmail.com and start using example@protonmail.com, and take your contacts with you. Anyone from any email service can still communicate with you, if they know your new address.

However, if you own the domain - example@yourdomain.com - your contacts never need to be concerned where your email is hosted. Your email address never changes.

Mastodon is the same. We don’t need to be on the same instance in order to follow or interact. If I ran my own instance - e.g. toots.tedjohnson.us - nobody would need to concerned where the instance is hosted.

Since you haven’t really started using your Mastodon account, you might consider creating your own Mastodon instance on tobiaseigen.org.

One very “sovereign” account I follow is Not Just Bikes. He has a private Mastodon server, just for his own Mastodon account, but he has more than 34K followers from instances all over the fediverse.

2 Likes

Thanks for explaining! I don’t have a social media muscle in my body but I think it’s worth trying to get one, if just to help get word out about this site and what I am trying to do here.

Using activitypub, I could set up this site to share posts from some public categories with my mastodon. That way people could follow along there without having to create accounts here.

@bhanu given I have set up a reverse proxy here already for my multisite discourse do you think it would be workable (and sensible) to also install a mastodon on the same server? Have you heard of anyone doing that?

2 Likes

FWIW from a resource usage and platform isolation perspective, it’s better to host mastodon on its own server, and if you really want to reverse proxy it using nginx, you can do that using the private network on hetzner. Hosting on the same server is less than ideal and on the smaller nodes in particular it can potentially crash discourse container if both of them get a spike at the same time.

1 Like

That makes a lot of sense. So it looks like if you want to have your own mastodon, you have to add yet another Hetzner server.

So digital sovereignty for an organization begins to look like having a constellation of servers that are all working together to meet your needs.

  • Mail server
  • Official website
  • Discourse site (or multiple on a multisite) for team collaboration and community
  • Nextcloud for file sharing, video calling, password management, open office, etc
  • Mastodon for social media
  • Plausible for web analytics
  • Backup for all of the above

On Hetzner for a small organization this is financially swingable but takes some planning and technical capacity to keep it all backed up and up to date.

personally, I will hold off on setting up my own mastodon for the time being.

You don’t need a mastodon server, at least not to begin with, and if you want I can run an audit of which services you mentioned above could benefit from getting consolidated into fewer, more resource rich servers.

I always aim to have the least number of servers for the number of services I need, sometimes bundling a few on a single machine depending upon the use a service is going to receive.

Honestly speaking, You’re right to think it as having a bunch of your own servers running in the cloud (or locally if you’re into it) it gets tiresome pretty quickly and hence it is advisable to only host services yourself where it makes economic sense.

1 Like

Digital sovereignty is measured across multiple vectors (control, ownership, dependence, portability) and across services (email, calendaring, office suites, websites). For some people and organizations—and for certain vectors—having their own domain and ensuring portability are higher priorities than for others.

Social media (this topic) is one category of service.

For people like Cory Doctorow (see this article), the Mastodon component is crucial: as a writer who has built an audience, he cannot entrust it to the whims and algorithmic unpredictability of a third-party platform. For others (perhaps @tobias ), Mastodon’s portability is sufficient—or Mastodon and social media may not matter at all.

For people like Jason Slaughter (Not Just Bikes), the rationale is less clear. I think he just hates corporate platforms — and is trying to train his audience to hate them as much as he does. YouTube, Reddit, are a degraded experience, while Mastodon and Nebula are treated as “premium.”

1 Like

That’s a very legit summing up of what we’re talking about on this site, Ted! Really appreciate it. I am resisting social media but am reminded by my recent LinkedIn experience that you get out of it what you put into it, and it can be rewarding in terms of warm feelings of connection and support, hearing from (and learning from) people you respect, and the ability to spread one’s own ideas and offerings. But on LinkedIn you do not have digital sovereignty.

If with self-hosted mastodon I can get those rewards while retaining digital sovereignty, that will be an improvement over LinkedIn.

But we have to recognize that it is a process and a spectrum.. the people we want to lure over to digital sovereignty and help them with that are still on LinkedIn. So we will still have to engage there to some extent. But resist the pull of the algorithm!

The “partially” in “partially sovereign” could equally be replaced with “hardly at all.” Although I do like Mastodon, (a) I’ve gone to great lengths to rewrite the RSS so that a proprietary platform — IFTTT — can process it in a usable way for corporate platforms, and (b) because of IFTTT’s limitations and quirks, I still use Buffer for posting to Instagram and Linkedin.

I’m not even trying (much) to lure people to Mastodon. But I do believe that social media may ultimately outgrow the “walled garden” model and that hackers and workaround culture can lead the way.

(See “How Transport Data is Like Your Mom’s 1990 AOL Account” written by Yours Truly wherein I describe historic walled gardens to make a point about public transportation.)

It would be a major pain in the ass to be truly sovereign while accepting the necessary evil of continuing to post to corporate social networks. I’d have to self-host alternatives to IFTTT and Buffer. Alternatives exist, but I’m daunted by the thought of getting them to work (and keeping them working).

To reject the necessity of evil would be to only use Mastodon and wait for the rest of the world to catch up (while evangelizing, no doubt) I can’t afford to do that. I’m in the business of digital communication and marketing. I’m compromised already.

1 Like

Wow, nice post! But so many words. :sweat_smile: I am not familiar with trufi at all so thanks for the intro! Took me a minute to realize that by “transport data” and “mobility data” and “transport systems” you weren’t just talking about APIs and open data but actual buses and public transportation!

I had forgotten (or blocked out) that ugly early history of AOL, compuserve and Prodigy.. I helped people with all three of those at one time or another. You could add Fidonet to that as well. Much of my own contribution to Fidonet back then was connected to various implementations of GIGO – “garbage in, garbage out” – a gateway which allowed people on Fidonet to have email addresses and send/receive email with people on the Internet and talk on usenet newsgroups! I even installed it at VITA for users of their low earth orbiting satellite email.

I am still evolving my own thinking around what digital sovereignty means to me right now, and you’re helping. Whatever it is we’re working on, it’s always going to be a matter of degree because everyone we’re talking to on the Internet is doing the best they can with whatever tools they can get their hands on. They may or may not even be aware that they are giving up sovereignty by using big tech.

Your experience with mastodon is similar to my experience with email and nextcloud. I now have full ownership and control over my email, calendar, contacts, files, passwords, video calls, etc etc. Meanwhile, like you on mastodon and social media, the people I am communicating with are all over the place. Most of them are still deeply invested in google and use it for just about everything, and probably can’t even imagine leaving google (even if they are using it to fight google). Some use some patched together combination of google plus other SaaS tools they have decided serve them better.

Just yesterday I was invited to schedule calls with a consultant I am going to work with on acuityscheduling.com, a tool I had never heard of before but which is actually quite impressive. It lets you book calls and pay for them at the same time. Then was sent to sign.dropbox.com to sign an agreement with them. That then gave me access to their online learning site hosted on squarespace. The calls themselves are hosted on zoom. And so it goes..

I also decided to use the Apple Mail email client to access my self-hosted email, contacts and calendar instead of the open source Thunderbird because I didn’t want to change too much for myself all at once. I also wanted to demonstrate that you can get sovereignty (or closer to it) while still using familiar tooling. This is a compromise too, because Apple is big tech!