Free speech on Twitter and the concept of the Public Timeline

Twitter’s design is flawed. This fact is obvious to a lot of people but I feel like I’ve finally worked out what’s missing.

If you want to say anything remotely controversial you basically have one choice: should you use a private or public account?

A private account is a real drag. You probably won’t get harassed but few people will get to read your tweets. They somehow have to decide you’re worth following without knowing who you are. To make it even worse, when you get a request it’s your job to decide whether @joebloggs89 is friendly or a troll.

So most people use public accounts. The insane thing about public accounts is that anyone on Twitter can send you a notification. There are over 300 million active Twitter users and that means millions of idiots. Any of these idiots is welcome to get up in your phone with stupid or aggressive messages when you’re trying to have a conversation. You either have to block them one at a fricking time or import a block list from someone else, which is bound to be incomplete and outdated.

These two options are polar opposites. Why can’t there be a middle ground where you can just hang with your like-minded homies without having to explicitly follow each other? There simply isn’t room for that in Twitter’s design.

It’s often said that you have the right to say what you like but not the right to be heard. This is not true on Twitter—they give you both. It’s great fun for noisy obnoxious people and shithouse for people who get pestered.

I discovered that this middle ground can exist while playing with GNU social. (Cue sigh from my suffering friends, who’ve heard me talk about nothing else for the last month.)

It started when a popular conservative tweeter @instapundit announced that they had a “Quitter” account. It was hosted on and they encouraged others to sign up. It appears they were excited to move off a corporate platform as this would in theory protect their freedom of speech.

So far so good. Sweden is a well known bastion of libertarianism against the Social Justice Corporations of Ameri—wait hang on, that’s not right.

The problem is that, while being the biggest and most famous server in the GNU social landscape, is not disposed to hosting conservatives. Honestly I couldn’t explain their politics. I’m not even sure if it’s popular in Sweden but it definitely isn’t libertarian.

However conservatives are well and truly able to create their own server. That server can participate in the network as fully as In this sense GNU social offers a fair playing field. You can be kicked off an individual server but your server can’t (easily) be kicked off the network. If you set up an account on, users could easily follow you.

At this point you might be wondering why a particular server would bother to curate their users. Why does it even matter if you can just set up an account somewhere else?

The answer is the public timeline. Probably by happy accident, it’s one of the most popular features of GNU social. The public timeline shows you all posts on a particular server. It’s a great way to see what people outside your circle are talking about. You can find new and interesting people to follow.

Imagine what the public timeline on Twitter would look like if you could download it—a torrent of spam, abuse, malformed grammar and utter trash. That doesn’t happen on the friendly GNU social servers because moderators kick off abusers. If nothing else those users constitute a waste of volunteer resources.

Where on Twitter you only had a choice between private and public, on GNU social there are three levels at which you can browse:

  1. People you follow
  2. People on your (or some particular) server
  3. The entire network

If you join a server you like and browse at level 2, the server administrators and moderators have got your back. You only see messages from people who pass the test of being cool enough to be on this server.

This concept doesn’t even exist in Twitter. That’s what I think is missing—the ability to form loose moderated communities.

The next step is to block out outsiders if you choose. To my knowledge this feature doesn’t exist yet in GNU social. It’s being actively discussed so I’m sure it will appear soon. You could choose to disable notifications from anyone you don’t follow. You could disable notifications from anybody in the external network that you don’t follow.

This is the nice middle ground. You can still hang out in a cool community. You can follow people on remote servers if you think they’re cool. But you don’t have to take any bullshit from anyone on the remote servers. The trolls have the right to say what they like but not the right to be heard.

It may not be perfect but it’s a damn sight better than Twitter has managed so far.