The day I decided to build my own “Twitter”

The social media and I go way back. It’s always been about the companies who run them and you, user, a product. Until now. Fediverse is here to change everything.

I was one of the early adopters with social media and Twitter. The 2000s was a very exciting era on the Internet, because suddenly there were other services on top of MySpace. First Facebook, then Twitter, then dozens of others. I remember the times when I was registered to over 160 social medias, can you believe there were that many? I even had a talk about it in 2011 at the event hosted my then-employer. Too bad the slides are no longer available.

I have written a lot about the downfall on Twitter in Finnish, here’s the most recent one. I actually liked Twitter, it was my number one social media for 15 years. I quit Facebook years ago, I use Instagram only occasionally and all the other social medias have either gone extinct or I have no interest in. I was certain I’d never feel old, but I can’t use TikTok no matter how hard I try. For my kids it’s the one and only but I just don’t want to dance, sorry guys.

This is my Mastodon origin story.

I really changed my mind faster than ever.

Twitter was fun during the early years.

It was refreshing to be limited to 140 characters. I was slowly getting tired of Facebook, because I didn’t want my relatives to breath to my neck to every living moment. I also didn’t like the close circles, I wanted more openness. Twitter was a breath of fresh air. I also liked the fact that not everyone was on Twitter and not everyone understood the logic about hashtags, retweets and other Twitter-specific things.

Skipping through a decade. Twitter gained popularity over time. Soon traditional media adopted Twitter as their own and we began to see tweets on television. Twitter became mainstream. There were literally news based on a single tweet by some famous person. People started to understand the platform. Twitter made the hashtags known and soon the feature appeared to every other social media service. In some point I lost track of who copied who, Twitter “favourites” and star icons changed to “likes” and it implemented the Facebook-like recommendation engine, later to become an algorithm everyone hated.

I was never into politics. I’m not here for the lyrics, I’m here to enjoy the music.

I love black metal. I remember the times I was on Steelfest and the anti-fascist community attacked on the people going there because the lineup consisted of some bands that praised the Aryan race in their lyrics. Some said I was silently approving the roots of nazi ideology because I went to such an event or listened to a controversial music genre. Same thing happened to Twitter. The toxic people came all over and suddenly someone blaimed me and other users for liking a tweet of an user that might or might not have connection to a nazi. And this was way before woke times. I’m a nihilist so I just shrugged. My motto is: Be kind. And that’s what I did.

I was still happy with Twitter. I didn’t really pay attention to Elon Musk, Jack Dorsey, Mark Zuckerberg or any other big tech bros. Who cares as long as the platform works for me, right? I started to get used to tweets that are recommended to me even though I didn’t follow anyone.

Everyone around me said in the 2020s that Twitter has become a sewer of the Internet. I didn’t see that. Occasionally some angry people showed up under my tweets but I ignored or blocked them. I thought the Internet is the place we make for ourselves. I thought I was not easily shaken and I was not, I am not. I thought Twitter is not bad, it’s just those bad apples. But it was just as the fallacy pro-gun people use: “Gun’s don’t kill people, people kill people”. I knew it was wrong, but I thought it’s not Twitter’s fault, it’s the tweeters.

I first joined on Mastodon (Finnish in 2018 when I saw someone talk about it on Twitter. But back then I just registered my nickname and left it. I really thought it’s a self-hosted forum, like phpBB back in the days. I thought it’s a silo, an experiment, a small web tool for tinkerers. I didn’t put much thought to it and I didn’t obviously know anything about the Fediverse or about the possibility to interact with other servers. I didn’t realize the world back then, so I just tooted “Hello world!” and left back to Twitter, like so many others.

Twitter is getting tiring.

In the 2020s I was getting completely tired of the social media. I just didn’t like the general feeling it caused. Facebook made a decision for me when they suspended my account after years me not using it. I suspect someone hacked it using some old developer API key or something. I was quitting anyway.

Social media and especially Twitter started to trigger my anxiety, but I still continued using it. I still liked it. Back in the days I remember saying to my friends that “If I don’t tweet for 24 hours consider me as dead”. If you took that by word, I was dead for many days, even weeks during the last couple of years. The best era of social media was bygones. There were no new things to sparkle the curiousness. Fleets and other stuff were stupid and silently taken away. Not that I really wanted any new features, I wanted the old ones to be improved. Instead, they were slowly taking all of them away and turning Twitter into pile of dung.

Then something changed. There were rumors Elon Musk bying Twitter. But it didn’t happen. Of course he is just trolling, as usual, I thought.

However, then all of a sudden Musk really bought Twitter and people started to flee to Mastodon. Twitter features started to slow down and break. I saw people discussing about alternatives. I myself thought, “There can’t be another Twitter, not even close”. I thought if Twitter is gone, I’m quitting social media.

But first I wanted to see what that Mastodon-thingy was all about.

Fediverse turns out amazing.

At first I went to the Finnish and found my account. Oh, I do have an account? I had forgot about it during these four years on Twitter. I noticed the instance I was on didn’t allow other languages than Finnish and my first post was “Hello world”. I was amazed about the fact they didn’t allow me to post in English. Their moderator posted to me rather heftily that I should remove the post or he would remove it for me.

I went back to Twitter to complain Mastodon sucks, I’m not going to use it because of these rules. I also stated that I can’t register to the “international Mastodon” (I of course referred to because my username is taken. Then someone replied, “Why don’t you register to another instance or build your own?”.

What? I suppose I’m rather intelligent individual but it took me an unnecessarily long time to realize the nature of Mastodon. I was even a bit ashamed of myself, me, the developer didn’t get it at first.

I learned very quickly that Mastodon is not just one platform but consist of multiple different servers (actually a network of them) that can all communicate to each other, just like email, IRC or Internet. A very familiar infrastructure that was so obvious I took it for granted. There are simple videos available like What is Mastodon? and Mastodon Explained – needless to say, I watched them all, for the common folks and for the technical people. I was elated! I then found the post by Gargon on how to move your account to another instance. I moved on to

The more I used Mastodon, the more I wanted to host an instance of my own. After a week I did it and was born. Why the name Read more here (content warning: Death, anxiety and the fear of death).

I absolutely love the fact that as a developer and designer I can make my own things. I’m used to it as a web developer, I build websites every day. So why not build my own social media as well? I kinda forgot about the beauty of it in this scope.

I instantly built an opt-in web app for Finnish people to follow other Finnish users. The app uses Mastodon API and Vanilla JS and with it Finnish people can sign them up to a list and follow each other from other instances. I first tried to get it right with Svelte, but you could say I’m more of a traditional web guy. I wanted to challenge myself and do it without any JS frameworks. It turned out fine and became a thing on the Finnish Mastodon community.

finnish-mastodon-users on Github

After this I built a Mastodon list for the tools I find useful in the Fediverse. All of a sudden I was totally into Mastodon.

Time to build a new home.

Suddenly I felt free. Not only Mastodon felt my own, it was my own, and at the same time the world was at my fingetips. Most of the people I actively followed on Twitter migrated to Mastodon during the end of 2022, especially the indie web, WordPress and front-end developer communities. Some non-technical people were brave enough to join as well. I was happy. Mostly.

I still checked Twitter maybe once a week. I don’t know why, perhaps out of a habit. I was kinda sad that all the fine folks that had heard about Mastodon didn’t make the move, but at the same time I realized I’m not here to change them. Each decides their own. For a while I returned to a Twitter myself but it didn’t last a day when I realized it’s not worth it. I didn’t enjoy using the platform any more, not after all the bad decisions.

I was forced to think what Twitter really meant to me. It meant the freedom to be what I was, to post what I think, to quickly share thoughts and ideas. It was based on kindness, on love and understanding. It was something that I could stand behind, to rely on. Until it wasn’t. No more. Nothing was left alive. (If you for some peculiar reason are wondering what I’m talking about, read: The Verge Timeline: Elon Musk bought Twitter, and here’s everything that happened next + Search Engine Journal: Elon Musk’s Twitter takeover: A timeline of events).

I decided not to delete my Twitter account, because I care about the aesthetics of the tweet embeds in my blogs. Past is the past, it cannot be removed.

Mastodon is superior to Twitter by all standards.

For me Twitter throws errors, loads up tweets forever (even on those bad DNS days) and generally is slow, clumsy and broken. Mastodon is fast, seamless, a joy to use. It has all the features I ever wished for including editing, custom emojis, content warnings and more. Hundreds of developers (including me, haha) are constantly improving the platform.


I like Twitter aesthetics. At least for what it was.

I absolutely love Twitter’s UI. World class designers didn’t do wrong there. Except after Musk they ruined the font sizes and it’s still not fixed. But as a visual, UI-centered person Mastodon felt downgrade to me in a sense.

Let’s face it, Mastodon is not perfect. It’s different. It should never be exactly like Twitter. It resembles Twitter as it’s based on the same idea, posting short posts. Despite being like Twitter, it doesn’t feel “as modern”. Its default user interface feels old school. There are growing amount of apps though that are circumventing this, pretty good ones too. However, for Android there are not a lot of good choices and for a person that prefers browser PWA, the UI is what it is for Mastodon. It’s good, but like 90% good. It should be great, awesome, out of the box.

I wanted more.

First I got myself into Elk. It’s awesome Twitter-like Mastodon client. Its UI is great and I loved the Nuxt.js based stack. I took Elk as my daily Mastodon client on both desktop and mobile and soon spotted bugs. Well, it’s still in its alpha stage, I get it. I was eager to help so I sent a couple of pull requests. Then I started to experiment with a new color scheme and opened a feature idea about that. There were a couple of usability issues that prevented me from taking full-on Elk so I reverted back to using the Mastodon on browser.

What next? I’m a CSS wizard, so I got an idea. 💡

Let’s build another Twitter.

No, not that way, I’m not going to ditch Mastodon. I mean, let’s build an UI that looks exactly like Twitter.

Yes, I know, many full-on anti-Twitter people will vomit seeing that sentence alone. But as a CSS dude I wanted to know how long it takes for me to build a CSS theme that makes Mastodon default UI look exactly like Twitter. After couple of hours of coding I got it:

But seeing Twitter colors and icons there felt really strange so I wanted to create a new theme that looks modern Twitter-like, but better. On top of that it has to feel like Mastodon. My favourite color is purple, especially deep purple. I love Mastodon’s brand too, but it needs a bit polishing in my opinion. So I decided to get to work.

I coded CSS for days. Had like 8 hour coding sprees. Traditional CSS only, with modern features like CSS variables (which I really hope to see in the core in the future, there is an issue about that).

After a while, it was ready.

Meet Mastodon Bird UI.

I found it proper to rename the thing from “Mastodon Twitter UI” to “Mastodon Bird UI”, because it was a brand new theme.

My instance now looks exactly like I want. Yes, it looks like Twitter, but I love it. The animations, layout, alignment, mobile view and icons are inspired by Twitter, the rest is derived from Mastodon brand colors. I’ve combined and tweaked icons from Iconoir, Feather and Ionicons which are all open source. The default FontAwesome that Mastodon uses just won’t cut it for me. FontAwesome is so 2012, kinda like Mastodon, in a sense.

Mastodon Bird UI is available on GitHub. If you are a Mastodon instance admin, you can install it for your users to use. The mobile UI also works wonders as an PWA, standalone Google Chrome app on Android, that is.

Mastodon Bird UI on mobile.

The future of Mastodon is bright.

If it’s up to me, I’ll use Mastodon and Fediverse ’till the day I die. I will keep on promoting Mastodon and improving it the best I can. I want to be optimist. It will scale, no matter the nay-sayers say. It will prosper.

Mastodon is not meant for everyone just like Twitter is not for everyone. Yet I prefer Mastodon over Twitter every day.

After saying all of this let me be clear: Mastodon is not Twitter and it should never be an exact replacement, but we can learn about what went wrong with Twitter and use that to build a better digital world for ourselves. We should not forget the good things.


With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.