The building blocks are already there, the hard parts are in the platform design. The minimal features set is usually simple but very easy to get wrong, and definitely a lot of work for a single person.
If you look at mastodon’s source you will realize very little of it are gems, it’s pretty much all custom, and most of the commits come from iterating on their platform design and bug fixes.
On the other hand, after trying to make it in php, I found it orders of magnitude easier to do it in elixir, even knowing little about it.


















