Skip to content

Category: Technology

Choosing a Mastodon Server and Why You Shouldn’t Stress About It

Mastodon Social Network Logo

The average person’s experience of signing up for a social network thus far has been pretty straight-forward. When you join Twitter, you go to twitter.com and sign up, that’s it. You’re on Twitter. Or perhaps you download the app and sign up there. But beyond picking your username, there’s not much else in terms of decisions to be made.

One of the first stumbling blocks for new users coming to Mastodon is the concept of servers. It can be a source of confusion initially, particularly for non-tech folks as the terminology can be unfamiliar.

A common suggestion offered to people joining Mastodon, is that choice of server is important. Finding a like-minded community that has values and guidelines that align with your expectations will greatly improve your experience, particularly with local feeds.

As such, many people face a touch of analysis paralysis when scrolling through that big list of servers, reading descriptions, server rules, and codes of conduct, not quite understanding the full significance of this choice, but having the sense that it’s somewhat important.

This introductory experience can be a bit confusing to some, and downright fear and stress-inducing to others. But it doesn’t have to be.

I’m a PHP developer but also more generally an open source software enthusiast. Should I join phpc.social, or fosstodon.org? I of course have interests besides technology as well. I am Canadian, should I join mstdn.ca? There are literally thousands of servers out there all dedicated to different interests with different rules and community guidelines.

One of the things to know about Mastodon is that unlike just about every social website in history, your data and profile are largely portable, meaning you can change servers and take your data with you.

The process is a bit clunky, and there are limitations, but knowing it’s possible should make your initial choice of server a little less stressful, as you can always move, and take your followers, follows, and other data with you.

I’ll get to how that works, but first let’s talk a bit about why Mastodon is like this.

Why must I choose?

Mastodon is a decentralized network, meaning there is no central server behind the service, there is no single owner. The network is made up of a bunch of independent servers, some run by organizations, some run by individuals.

Some servers are quite large like the general-interest mastodon.social with 178k active users, where some shared-interest servers like the one I’m on, fosstodon.org is a bit smaller with 18k active users.

Some servers might be invite-only or require prospective users to fill out an application as the owner is looking to build a more curated community, and some people even setup their own single-user servers just for themselves.

All of these servers share content by federation over the ActivityPub protocol- basically, they all speak the same language and can easily pass data back and forth, which is what enables somebody on one server to follow and receive content from anybody on any other server in the network.

This all sounds very complicated, but it’s not really. A very common analogy that everyone should be familiar with is Email. We all have email addresses. You might have a Gmail address, or a Yahoo, or Hotmail. Maybe your email is provided by your Internet Service Provider, or maybe you somehow still have an @aol.com account. Many of us have email addresses specific to our place of work.

All of these email addresses are hosted on different servers and all of these servers can speak with each other and exchange data because they speak a common language or protocol.

This is why Mastodon user ids are a bit more complex-looking. When you’re looking for a person on Mastodon, you will generally need their username and their server. For example, I’m @dsamojlenko. Like with email, the part after the second @ is the server where my profile lives, and helps your server find my profile on my server.

There is a bunch of nuance and exceptions here, like when you’re addressing someone on your own server, you don’t need the back half of the address. And if your server for some reason blocks my server, then we won’t be able to follow each other as our servers can’t communicate.

But that’s it in a nutshell- there is no one central authority or server called Mastodon. There are a bunch of independently run communities running Mastodon software that can communicate across their boundaries using a shared protocol.

How to move your profile to a new server

Note: not quite everything is completely portable - any content and media you shared on the server can be exported, but cannot be imported to another server. This is due to technical limitations.

When changing servers, you can export your followed accounts, muted accounts, blocked accounts, and blocked servers to a .csv file, which you can then import to your new profile.

To do this, on your old profile, go to Preferences->Import and export->Export, then select the things you want to take with you and export them to files.

Then on your new profile, go to Preferences->Import and export->Import and upload your files there. Easy peasy!

This works great for your follows, lists, blocks, and so on. But what about your followers? There is no .csv export available for them. You need some way of letting them all know where you’ve moved to, so they can update your address in their follow list.

Thankfully, Mastodon has made this process really easy. At the bottom of your Profile page, you’ll see a section with features to redirect your old profile and automatically update your followers with your new address.

This process is completed in two steps. First, you have to setup your new account. On the Profile of your new account, click the link under “Moving from a different account.”

Here you will enter the address of your old account and click “Create alias.”

Next, you will forward your old account to the new one by visiting the link under “Move to a different account” on the Profile of your old account.

On this screen, enter the address of your new account, and your password for your old one, and click Move Followers.

Boom! All of your followers will automatically be instructed to unfollow your old account, and to follow your new account.

This could take a bit of time as the request needs to be federated through the network to wherever your followers are. It also may not work for all of your followers as some servers may not support the move activity.

But again, just knowing this is possible should take a bit of the stress off of choosing “the right server” from the get-go.

I still need to choose a server, how do I decide?

All that said, there are a few simple things to keep in mind when choosing a server to get started on.

I highly recommend starting with the list at joinmastodon.org. Any servers listed there must adhere to the Mastodon Server Covenant, a baseline set of requirements that the server operator will commit to:

  • Active moderation against racism, sexism, homophobia and transphobia
  • Daily backups
  • At least one other person with emergency access to the server infrastructure
  • Commitment to give users at least 3 months of advance warning in case of shutting down

If you find a server that seems to fit your interests, great! Sign up and get exploring! If you’re not sure, pick a general-interest server, or a regional server, or just sign up to mastodon.social, the server run by the creators of Mastodon.

Over time you’ll get a sense of the community on your server, you’ll learn about other communities, and if you find a place you think would be a better fit, you can just pick up and move.

And remember, what server you’re on does not determine who you can follow- you can follow anyone anywhere in the Fediverse (as long as your servers don’t block each other, a topic for another time).

A final consideration, you could just have accounts on multiple servers! Nothing stopping you from participating in multiple communities. Just be respectful of the customs and culture of each.

Welcome to the Fediverse!

Mastodon and the Fediverse

Mastodon Social Network Logo

The great un-twittering is well underway. However you feel about Elon Musk’s takeover of Twitter, many people are choosing to leave the platform under his leadership, or at least starting to explore alternatives.

Enter Mastodon. Or, to use the more accurate nomenclature, the Fediverse.

The Fediverse describes a broader network of services that are connected to each other over the open protocol that powers it all, ActivityPub.

But nevermind all that for the moment. Mastodon is the Twitter-like microblogging replacement that Twitterati are flocking to in search of the next thing, in case the last thing is not long for this world.

I first tried Mastodon a few years ago, and found it lacking – buggy, slow, and nobody there. I signed up again about a year ago, and have popped in from time to time to see how things were progressing with this nascent social network.

With the recent influx of Twitter refugees, the network is being put to the test. User registrations have exploded, some of the bigger servers have been struggling with the load, and there’s a lot of patient Mastodon old-timers sharing explainers on the technology, terminology, practices, and traditions of Mastodon to the new arrivals.

I have found myself fascinated by it all. It brings to mind the early days of Twitter, and even the early days of the internet itself.

There’s a real sense of community and DIY-ism. Users are figuring out the conventions and best practices for how to build healthy communities together.

Mastodon is a federated network, meaning that rather than the network being owned and controlled by a single entity (or individual), the network is made up of many different instances or servers that share content over the ActivityPub protocol.

Servers are generally oriented around shared interests, so Local timelines populated with posts from people on your server, can be super interesting and useful, and a good way to find people with similar interests to follow.

Choosing a server to sign up on feels a little daunting at first, but it doesn’t have to be. Ideally, you will join a server that aligns with your interests, but there are plenty of general-interest servers, and no matter where you end up, you can follow anyone anywhere in the Fediverse, and your account data is portable.

In a social media world largely driven by algorithms meant to drive engagement, and walled gardens meant to capture your attention and keep it, Mastodon is refreshing. Your Home timeline is populated with posts from people you follow, in reverse-chronological order.

Content moderation is not a controversial subject. Indeed people who run servers are encouraged to actively moderate against bad behaviour, or risk being cordoned off from broader network.

There is no advertising on Mastodon, so the network isn’t trying to aggregate and harness your data in creepy ways to sell your attention to advertisers. Instances are often self-funded through crowd-funding initiatives and donations from the community.

And it’s all built on open protocols and open source software. This is truly the realization of the dream of the early internet. This is the antidote to the current corporatist algorithm and advertising-driven internet of a few massive websites fighting to extract ever more data from you to sell to the highest bidder.

The Fediverse is made up of many interest-focused Mastodon servers, but also any service that implements the ActivityPub protocol. There are Instagram-like services (Pixelfed), Facebook-like services (Friendica), YouTube-like services (PeerTube), Meetup-like services (Mobilizon), Reddit-like services (Lemmy), and many more.

All of these services are connected over the ActivityPub protocol, and you can follow anyone on any service right from Mastodon (or wherever you are in the Fediverse).

Many quesitons remain. Is Mastodon ready for prime time? Can it really replace Twitter? Will it reach critical mass? Can it scale? Are my friends there? Is it too complicated for normal people? What are Toots and Boosts?

This blog post is long enough, so I’ll just close by saying that based on my experience the past few days, I’m very optimistic about Mastodon and the Fediverse. It is demonstrating that the open web is still alive and well, and I’ll have a lot more to say about it in the future in this space.

In the meantime, connect with me in the Fediverse:
@dsamojlenko@fosstodon.org
@dsamojlenko@pixelfed.social

You can also follow this very blog in the fediverse:
@dsamojlenko@dave.samojlenko.com

PHP Caddy v1.3.4

I just pushed out a new version of PHP Caddy today with a bugfix that should make it a lot more stable.

I have been using PHP Caddy as my primary development environment on my PC at work for the last month or so.  At first it was wonderful – stable, fast, easy, as advertised.  But as I got into the swing of using it, I started running into issues with the PHP FastCGI (php-cgi.exe) process crashing and causing 502 Bad Gateway errors – occasionally at first, but more frequently over time until it was barely usable.  I have no idea what causes it to crash, and I have exhausted my google-fu trying to find a cause or solution, until now.

When I first started building PHP Caddy, I had PHP 7.0 installed, and that’s what I’ve been running since.  This week, as the crash frequency was reaching unbearable levels, I decided to try upgrading to PHP 7.1.  Initially, this didn’t make much difference – the crashing continued.  However, in my continuing search for a solution to the problem, I found a reference somewhere that said that PHP 7.1 had added support for running multiple processes on Windows.  This rang a bell, so I looked into it.

Success!  Setting the environment variable PHP_FCGI_CHILDREN=2 before starting up the PHP FastCGI process, tells php-cgi.exe to spawn multiple processes (3 total), and fixed the stability issues completely.  I have now been running PHP Caddy continuously for the past two days without crashing.

If you are using PHP Caddy and have been experiencing occasional 502 Bad Gateway errors, try upgrading to PHP 7.1 and be sure to run composer global update.

Introducing PHP Caddy

Here’s something I have been working on recently:

PHP Caddy is a tiny PHP development environment for Windows, inspired by Laravel Valet.

No hosts file, no configuration, no frills. Just run it and go write some code.

Why?
In a world where Homestead and Valet exist, this is a good question.  A couple things:

1) Due to the corporate nature of my current job, I work on a PC during the day, so Valet (MacOS only) is not available to me.  At home I get to play with Valet, and it makes daytime me very jealous.

2) While as a developer I have slightly higher privileges on my PC than the average bear, I still do not have full administrator privileges and can’t install everything I want, so some of the Valet for Windows alternatives that provide all the dns niceities of Valet are not available to me.

3) Sometimes a virtualized environment like Homestead is a bit (sometimes a lot) slow on Windows.

So, I built this thing.  I like it a lot.  It runs very fast for me, and makes developing in PHP on Windows a bit more enjoyable.  Maybe you’ll like it too.