There's nothing like setting up your own Mastodon instance to learn how network federation works. Some of the lessons learned can be useful to all Mastodon users, not only those of us who administer our own instance. One thing I learned by setting up my Mastodon instance earlier this month is this: You may think you're seeing all the publicly available Mastodon content, but you're not.
More specifically, when you do a hashtag search, you almost certainly won't see all the public posts tagged with that hashtag. And when you look at someone's public profile, you may not be seeing all their public posts, either.
Fortunately, a few simple steps will broaden what you see, which can dramatically improve your Mastodon experience.
Network federation and the ActivityPub protocol
As you may know by now, Mastodon isn't one centralized service, but rather a network of independent servers using a federation protocol called ActivityPub. When someone creates a public post, that post is viewable on their own local server by default. The post is also sent to every other server where that user has at least one follower. If someone else boosts the post, then it also goes to every server where the booster has followers. But that's it: People on unconnected servers won't see the post.
Posts are not sent to every server across the Fediverse, even if they're public and have a hashtag.
In other words, just because all Mastodon servers can communicate with each other doesn't mean they do. "Links are user to server and not server to server," according to Masto.host, a turnkey cloud service for people who want to host their own Mastodon servers. Even if two Mastodon servers regularly exchange posts, that doesn't mean they're exchanging all posts.
This network design dramatically affects what content you see and who sees your posts. I discovered this when I spun up my new server instance before migrating my account there. When I tested a search for hashtags, I got back nothing. My server worked fine, but no users were posting to or following it yet.
Another example: I was following the #FOSSY hashtag this weekend to read posts about the Free and Open Source Software Yearly conference. On my new instance with my now active account, I saw nine people posting with that hashtag in a two-day period. On a small Mastodon instance focusing on the Boston area, there were 10. Meanwhile, fosstodon.org showed 100 people and mastodon.social showed 103. Big difference!
Once you understand how the Mastodon network works, you can fine-tune your settings to see more of what you'd like to see.
6 tips for a better Mastodon experience
Here are six ways to better see the Mastodon content you want, and assist others in doing the same.
1. Boost posts you like
This tip may be more important to help other users, but it's critical to making the whole thing work. Many users don't understand just how important it is to boost posts, especially posts by newcomers and users with few followers. You don't need a large following to be a big help. All you need is one follower on another server to get a newbie's content sent to that server, giving it a larger potential audience. A post by someone with zero followers usually won't be seen anywhere except their local server—unless and until someone else boosts it.
2. Look at user profiles on their original home server
I can't stress this enough. If you look at profiles before deciding whether to follow someone, you may be missing a lot. On your instance, you may only see posts of theirs that have been boosted by people on your own server, and that may not be all their posts. It might look like they've only posted once in three months, when in fact they're quite active.
If you're using the Mastodon web interface, there should be text below someone's posts on their profile page that says, "Older posts from other servers are not displayed" along with a link to "Browse more on the original profile." But that text doesn't tell the whole story. It's not only "older" posts you may be missing, but new posts that weren't sent to your instance even though they exist elsewhere.
3. Search for content on other instances
This is true even if you're already on a large Mastodon server. Searching on one or two other instances can help you find interesting content, especially from newcomers or people with small followings. Be your own algorithm!
A Mastodon server's main page has a search box where you can search for content on that server by hashtag, or you can search for people. You'll find the main page at the server's base URL, such as https://mastodon.social, which is the original and largest Mastodon instance. If you go to a URL like https://mastodon.social/tags/rstats, you can see all the public posts available on that server with the #rstats hashtag, not only posts by people with local accounts on that server. The following URL structure works on most servers: https://mastodon_instance.com/tags/tag_you_want_to_see.
You may want to compare what shows up on different servers, or augment what shows up on your own instance with content from another one. If you use the Mastodon web interface, you might want to have another browser tab open with content you care about from another server along with your own.
In addition to searching for hashtags, some people look at the "local" feed of a server they're not logged into that specializes in a topic of interest. For example, fosstodon.org is a community for people interested in open source software. If you go to https://fosstodon.org/public/local, you can see fosstodon's public local feed. That might show you interesting content about open source software that you wouldn't think to search for. That URL structure should work for almost all Mastodon servers: https://mastodon_instance.com/public/local.
There are ways to streamline this process and make it less clunky. If you're on a mobile device, some apps such as Toot! for iOS let you subscribe to a server's local timeline without an account. That lets you integrate scanning other servers seamlessly into your Mastodon viewing environment.
4. Enable the advanced web interface for Mastodon
If you're using Mastodon on the web, go to Settings (the gear icon) > Preference > Appearance and check Enable advanced web interface. This allows you to have multiple columns in your browser, including pinning lists so you don't have to search around to open them. The advanced interface also lets you pin hashtag searches.
Also, consider installing the third-party Graze browser plugin. If you want to read a feed from an instance where you don't have an account, the Graze plugin for Chrome and Firefox makes that a more elegant experience. Without it (or something like it), if you want to like, reply to, or follow someone on an instance where you're not logged in, you need to copy the URL from that post or profile, and then paste it into your instance's search box in order for the interaction to work. With Graze, you can click and respond as if it were local.
A caveat on Graze: At the moment, it has what I find to be a somewhat distracting animated view of graphics, so I only activate it when I know I want to use it.
5. Use groups
Groups are an interesting option created by users independent of the Mastodon project. The idea is simple: Everyone interested in a topic follows the group. Then, when someone mentions the group account in a post, that post is boosted to everyone in the group.
This gets around the issue of not all hashtagged posts being sent to all servers in the Fediverse. It's like following someone, but only getting their posts about topics you care about—no matter what server they're hosted on.
Guppe groups has a number of tech groups including rstats@a.gup.pe, which has more than 1,700 followers. You can see a group's profile at the URL structure https://a.gup.pe/u/TAG (where tag is the group hashtag or topic). To follow a group, go to the same URL structure and you'll be able to follow it from the group's main page.
Anyone can start a group, although you'll need to publicize it on Mastodon in order to get signups. You can only see Guppe's most active groups on the groups homepage, not all of them. You'll have to use the URL structure to check for groups, such as https://a.gup.pe/u/python for the Python group and https://a.gup.pe/u/sql to check for an SQL group (there isn't one yet).
There's also a group project at https://chirp.social/ which I haven't tried. It has a directory.
6. Be your own aggregator with RSS
If your sole interest is reading content on Mastodon, you don't need an account at all. Most public Mastodon posts are on the open web and also included in RSS feeds, which you can view by user, by instance, and by hashtag if there are hashtags present. To view posts on fosstodon.org about R with the #rstats hashtag, you can read them at https://fosstodon.org/tags/rstats. For the RSS feed, just add .rss to the end of the URL, such as https://fosstodon.org/tags/rstats.rss.
All instances and hashtag RSS feeds follow the same structure: https://mastodon_instance.com/tags/hashtag.rss.
You can follow a user with the URL structure https://mastodon_instance.com/@username. For example, I'm at https://masto.machlis.com/@smach, since I'm running my own instance at masto.machlis.com. Again, for an RSS feed, just tack on .rss at the end: https://masto.machlis.com/@smach.rss.
Should you switch to a larger instance?
Once you grok that all content doesn't appear on all Mastodon servers, you might think that being on the largest instance would be your best strategy. But that's not always the case. There's a lot more to the Mastodon experience than reading content. If you want to use it truly as a "social" network, you may want to discuss things with a like-minded group and have a local-feed timeline focused on things you care about.
Server rules and moderation policies may also be important to you. That's especially true for those who are at high risk for online abuse, including Black users and other people of color, LGBTQ+ people, and users discussing controversial social or political topics. Some smaller sites have more effective policies and moderation against abuse than larger ones. Some sites discourage posts about controversial topics while others don't. Some sites are sticklers about issuing "content warnings" that require click-through to the body of a post on any potentially controversial topic while others aren't. Some sites plan to block the new Meta "Threads" project if and when it adds ActivityPub federation, others don't.
Multiple factors can help you determine where you want to make your home in the Mastodon Fediverse. If you start out on one server instance and find a better fit later, you can move your account and take your followers with you, as I did recently, although your old posts will remain at the old account's server. Fortunately, whether you're on a topic-targeted smaller instance or a more general larger one, you can still take advantage of other servers.
Final notes
Some small instances get around the issue of not receiving a lot of content by using what's called "relays," which is a setup to exchange all posts between servers. However, relays can quickly run up system costs, so I don't believe they're very common.
Also, most Mastodon instances are run by volunteers, and those servers cost money to run. If you can afford it, consider donating to your instance to help with server, storage, and other expenses. You can find information on whether your instance is seeking donations, and if so how to contribute, on its About page, which is at the URL structure https://mastodon_instance_url.com/about, such as https://mas.to/about .