paritybit.ca

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 0f2fac607601fb68f73c409a15671edf25cabcb5
parent f8d36b64d19433d615c690309e655883fb6bac69
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Wed,  4 Aug 2021 15:34:05 -0400

Draft of mastodon-v-misskey post

Diffstat:
Apages/blog/mastodon-is-dead-long-live-misskey.md | 454+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apublic/img/admin-overview-thumb.png | 0
Apublic/img/admin-overview.png | 0
Apublic/img/database-thumb.png | 0
Apublic/img/database.png | 0
Apublic/img/drive-thumb.png | 0
Apublic/img/federation-thumb.png | 0
Apublic/img/federation.png | 0
Apublic/img/misskey/admin-overview-thumb.png | 0
Apublic/img/misskey/admin-overview.png | 0
Apublic/img/misskey/database-thumb.png | 0
Apublic/img/misskey/database.png | 0
Apublic/img/misskey/drive-thumb.png | 0
Apublic/img/misskey/drive.png | 0
Apublic/img/misskey/federation-thumb.png | 0
Apublic/img/misskey/federation.png | 0
Apublic/img/misskey/widgets.png | 0
Apublic/img/widgets.png | 0
18 files changed, 454 insertions(+), 0 deletions(-)

diff --git a/pages/blog/mastodon-is-dead-long-live-misskey.md b/pages/blog/mastodon-is-dead-long-live-misskey.md @@ -0,0 +1,454 @@ +## Mastodon is Dead, Long Live Misskey 🍮 + +[//]: # "Okay, so, Mastodon isn't _actually_ dead, but some recent happenings and a long-standing trend of the lead developer ignoring features beneficial to smaller instances have led many to start looking at other options, be it forks of Mastodon, or other software entirely." + +[//]: # "main.min.css" + +[//]: # + +<div class="byline"> +<b>Written By:</b> Jake Bauer | + <b>Posted:</b> [DATE] | + <b>Last Updated:</b> [DATE] +</div> + +Okay, so, Mastodon isn't _actually_ dead, but some recent happenings and a +long-standing trend of the lead developer ignoring features beneficial to +smaller instances have led many to start looking at other options, be it forks +of Mastodon, or other software entirely. Recently, I and many others have taken +a look at [Misskey](https://github.com/misskey-dev/misskey), an alternative +Fediverse software that also uses ActivityPub and can communicate with both +Pleroma and Mastodon instances. + +### What's Going On With Mastodon (and Pleroma) + +Recently, Eugen, the lead developer of Mastodon (also known as Gargron) +released an [official Mastodon iOS +app](https://github.com/mastodon/mastodon-ios) which lacks basic features which +many users deem important, especially for smaller communities. As of the time +of writing, the app seems to intentionally be missing the ability to view the +Local timeline (the timeline consisting of posts only from users of the +instance you are on), and the Federated timeline (posts from all other +instances which have federated with the one you are on). +[[Source](https://github.com/mastodon/mastodon-ios/issues/221)] + +This, plus the tendency for Gargron to deny useful patches such as [Local-only +posting](https://github.com/mastodon/mastodon/pull/8427) and [configurable +character limits](https://github.com/mastodon/mastodon/pull/5697), has led to +forks, such as [glitch-soc](https://glitch-soc.github.io/docs/), and the usage +of other software, such as [Pleroma](https://pleroma.social/). + +For the time being, things seems to still be... okay. Mastodon is well-funded +and nothing has yet changed for the desktop site or the software as a whole, +but this could change at any moment depending on where Gargron wishes to take +his software. This isn't _necessarily_ a bad thing depending on his goals for +the software, but for those of us who want the Fediverse to be made up of a +bunch of smaller, more community-focused instances as opposed to a set of large +Twitter-like structures, the future doesn't look hopeful. + +Furthermore, Pleroma's development funding has recently been cut, stagnating +development and disappointing many users who were looking forward to exciting +new features such as groups. There are... other issues with Pleroma, but I will +not talk about them here. + +### Okay, So What Even is Misskey? + +To summarize, Misskey is another bit of Fediverse software, similar to Mastodon +and Pleroma, but with far more features, and a far nicer and more +polished-feeling UI. It is currently developed by one person, +[syuilo](https://github.com/syuilo) and is supported by a small amount of +corporate funding, combined with some [Patreon](https://www.patreon.com/syuilo) +contributions. + +At a glance, here are some of the features it has: + +* Clips - basically public bookmarks +* Drive - view all media you've uploaded to the server, re-use images without + having to re-upload them, and more +* Multiple UI modes built in to the front-end +* Federated chat +* MFM - Misskey-Flavoured Markdown, taking post markup to a whole new level +* Excellent admin panel features +* Custom timelines, channels, and groups +* Excellent UI customization + +You may have heard of some trouble with Syuilo facing burnout and funding being +cut. This is not untrue, but since Syuilo announced this, they have received +some more funding, and have re-structured the way they develop the project. The +project is far from dead, and with the recent boost in popularity, it could see +development pick up again—hopefully in a healthier way this time. + +### How is it From an Admin's Perspective? + +Having administrated Mastodon, Pleroma, and now Misskey for single-user +instances, I can confidently say that Mastodon is the heaviest and Pleroma and +Misskey are much lighter. Misskey is heavier than Pleroma, but not by terribly +much; both are far lighter than Mastodon. There are also murmurings +that Misskey scales better than Pleroma (which already scaled far better than +Mastodon), though more insight is probably needed from the admins experienced +with Pleroma. + +#### Resource Usage + +As far as my own servers: at this moment, the Pleroma server (Debian Buster) is +using 685MB of RAM with a load average of `0.01 0.04 0.07` whereas the Misskey +server (Debian Bullseye) is using 848MB of RAM with a load average of `0.35 0.18 +0.15`. Both are running on Vultr VPS instances. + +Misskey tends to have more big bursts of CPU usage, so, in my experience, it is +helpful to have more than one CPU core for your Misskey server. You also need +to configure swap or have a minimum of 2GB of RAM to compile Misskey because it +is a Nodejs project. You can probably get away with a $10/mo VPS from Vultr, +DigitalOcean, or Linode for servers with a handful of people, but you will +probably want to opt for the $20/mo VPSes for between 15 and 50 people. For +example, @razzlom\@quietplace.xyz runs a Misskey instance with 50 users +(approximately 10 active users) without ElasticSearch and they report that this +uses 50-60% of 8GB of RAM and 1-10% of 4 AMD EPYC cores. + +#### Admin Features + +From what I and others have seen so far, the admin features of Misskey are +amazing and the admin UI is much better than any other Fediverse software so +far. + +For example, you can see the size of various database tables, the server logs, +the server resource usage, ALL media that has been uploaded to your server, and +more from within the UI. Take a look: + +<figure> + <a href="/img/misskey/admin-overview.png"><img src="/img/misskey/admin-overview-thumb.png"></a> + <figcaption>The Admin Overview - Showing an overview of server resource usage and activity</figcaption> +</figure> + +<figure> + <a href="/img/misskey/federation.png"><img src="/img/misskey/federation-thumb.png"></a> + <figcaption>The Federation Panel - Showing stats about which servers might be down</figcaption> +</figure> + +<figure> + <a href="/img/misskey/database.png"><img src="/img/misskey/database-thumb.png" alt="The Admin Overview"/></a> + <figcaption>The Database Panel - Showing stats about various table sizes</figcaption> +</figure> + +Some other excellent features which are either missing from Mastodon, Pleroma, +or both are: + +* server-wide announcements, +* customizable post character limits (no more 1/X Mastodon threads!!), +* the ability to promote a post instance-wide, +* the ability to present advertisements to your users (assuming they are willing to accept that) which can help with funding your instance, +* the ability to easily monitor the job queue of the server, +* and the search does actually work well enough even without having ElasticSearch installed, and without needing to enable RUM indices like in Pleroma. + +Of course, not everything is without its caveats. For those used to Pleroma's +MRF system, Misskey doesn't have anything like that. Admins can defederate from +a domain and can silence and suspend individual users, but there are no options +for a user to silence a whole instance themselves or for an admin to only strip +media from an instance or only remove them from the Global timeline. + +On one hand, this does limit what moderators can do for their instance, but, on +the other hand, if an instance really is causing enough trouble to bother your +users and their moderators aren't responding, just blocking them is probably +what you'll want in the end given that, more often than not, those kinds of +instances just keep causing more and more trouble. It also keeps your options +clear and simple. + +One of the other downsides to administrating a Misskey instance at the moment +is the lack of bulk emoji import support. Although it's trivially easy to add, +tag, and categorize emoji—even from remote instances—it is currently impossible +to import a `.zip` file or similar of emoji. What you will probably want to do +instead is go to your Drive, create some folders to organize your emoji, upload +them all from your PC into the folder (you can upload more than one at a time), +and then go to the Custom Emoji settings, choose import from Drive, and click +on all of the emoji you wish to import. + +This isn't such a big deal if you only have maybe a couple hundred emoji at the +most, but is more tedious than it could be. The same goes for categorizing and +tagging those emoji. + +Finally, there is currently an issue where Misskey has trouble federating with +profiles that have bios which are too long. This mostly affects people using +Pleroma, since Mastodon caps bios at 500 characters and Pleroma sends a user's +bio to the remote server as (a lot of) HTML, so it's hard to tell when your bio +is actually too long or not. Luckily, there is a simple patch which one can +easily apply to their instance which solves this problem by truncating fields +which are too long for Misskey. An official fix is in the works, but for now +it's very easy to drop this in the `misskey` folder, `git apply` it, and +re-build. You can [download the patch +here](https://ftp.paritybit.ca/d0858ec6-136f-414f-903f-e74c8463b94a.patch). + +### How is it From a User's Perspective? + +In short, it's unlike any other Fediverse software that currently exists. It is +packed full of useful features and, even though some stuff can definitely be +improved, it is exciting to see just what Fedi can be. + +#### Timelines + +With Misskey, you have the same sorts of timelines you expect from other +Fediverse software. The table below summarizes which posts each timeline +displays (note that "Home" post visibility is equivalent to "Unlisted" in other +Fediverse software): + +<table> <thead> +<tr> + <th colspan="2">Source</th> + <th colspan="4">Timeline</th> +</tr> +<tr> + <th>User</th> + <th>Post Visibility</th> + <th>Home</th> + <th>Local</th> + <th>Social</th> + <th>Global</th> +</tr> +</thead> <tbody> +<tr> + <td rowspan="3">Local (Following)</td> + <td>Public</td> + <td>X</td> + <td>X</td> + <td>X</td> + <td>X</td> +</tr> +<tr> + <td>Home</td> + <td>X</td> + <td>&nbsp;</td> + <td>X</td> + <td>&nbsp;</td> +</tr> +<tr> + <td>Followers-only</td> + <td>X</td> + <td>X</td> + <td>X</td> + <td>X</td> +</tr> +<tr> + <td rowspan="3">Remote (Following)</td> + <td>Public</td> + <td>X</td> + <td>&nbsp;</td> + <td>X</td> + <td>X</td> +</tr> +<tr> + <td>Home</td> + <td>X</td> + <td>&nbsp;</td> + <td>X</td> + <td>&nbsp;</td> +</tr> +<tr> + <td>Followers-only</td> + <td>X</td> + <td>&nbsp;</td> + <td>X</td> + <td>X</td> +</tr> +<tr> + <td rowspan="3">Local (Not Following)</td> + <td>Public</td> + <td>&nbsp;</td> + <td>X</td> + <td>X</td> + <td>X</td> +</tr> +<tr> + <td>Home</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> +</tr> +<tr> + <td>Followers-only</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> +</tr> +<tr> + <td rowspan="3">Remote (Not Following)</td> + <td>Public</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>X</td> +</tr> +<tr> + <td>Home</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> +</tr> +<tr> + <td>Followers-only</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> + <td>&nbsp;</td> +</tr> +</tbody> </table> + +This behaviour is, in practice, slightly different than Mastodon, and quite +different from Pleroma. + +#### Health + +Overall, Misskey seems to encourage more genuine social interaction compared to +other Fediverse software and traditional social media. For example, there are +no favourites on Misskey. You may see the "Favourite" option in the menu +underneath a post, but this is simply a bookmark function. It is truly saving a +post that you really like as opposed to behaving, in practice, as a +meaningless "Like" button or read-receipt. + +Instead, Misskey features emoji reactions to posts as the main way (aside from +boosting) of interacting with posts. You can react to a post with a regular +Unicode emoji (which other Fediverse software that supports this can see) or +with custom emoji (which only Misskey users can see). This generally results in +much more thought put into how you wish to react to a post, with "Favourites" +from users of other software simply showing up as the thumbs up emoji. + +Furthermore, the style of timeline that Misskey and Mastodon have tend to +encourage more healthy interaction and consumption than Pleroma's. Even though +all social media is unhealthy to the degree that many of us use it, Pleroma's +timeline encouraged doomscrolling in a way that neither Mastodon's nor +Misskey's do. I can personally attest to this, since I have been hosting and +using Pleroma for over a year now. + +#### Groups, Channels, Pages, Clips, Galleries, and Antennas... Oh My + +This Misskey's bread and butter in my eyes and what makes it stand out so +strongly from the other ActivityPub-based software. There is a lot of fun to +have with these features, though not all of them are federated just yet. + +Groups are (currently) local-only collections of users to which you can send +messages. Think of it like a group chat in applications like Telegram, Matrix, +or channels like in IRC. + +Channels are local-only posting groups to which you can post notes to only the +specific people who are subscribed to that channel. + +Pages are static pages on which you can put almost anything you want, including +writing AiScript (a Misskey-specific scripting language) to add functionality +to the page. Think of it a bit like GitHub Pages or something similar. You can +then link these pages, and others can view them on your instance. [Here is an +example of a page](https://misskey.io/@robflop/pages/notePreviewEN). + +Clips are like bookmarks but they can be organized and made public. Think of +them a bit like Twitch or YouTube livestream clips, though text-focused +instead. + +Galleries are collections of public photos that others can see when they look +at your gallery on your instance. The galleries themselves are not yet +federated, so you do have to go to the person's instance to see their gallery, +but it provides an Instagram-like look at the media they've publicly uploaded +and chosen to make available. + +Antennas are possibly one of the coolest features. They are effectively custom +timelines. You can make an antenna that just shows posts from specific users +and notifies you when they post something new, you can make an antenna that +collects posts containing or excluding certain key words, or you can make an +antenna that collects only posts with files attached. If you want to emulate +Pleroma's timeline behaviour, you can even make an antenna consisting of "Notes +from following users" with "Show replies" checked. + +#### Your Drive + +Your drive is possibly one of _the_ single most useful features on Misskey. You +are allocated a (configurable by the server admins) amount of storage space you +can use for files uploaded to your drive and you can store whatever you'd like +in there. If you want to upload a bunch of memes to have them easily on hand +whenever you want to react to someone or if you want to simply re-share a file +you shared before without having to re-upload it to the server or dig through +your old posts, you can do that easily with the drive. + +<figure> + <a href="/img/misskey/drive.png"><img src="/img/misskey/drive-thumb.png"/></a> + <figcaption>My Drive with an emoji folder and several other images.</figcaption> +</figure> + +#### Apps + +App support is a little limited at the moment. Since Misskey is not compatible +with the Mastodon API, one can't use apps like Tusky or Tootle with it. There +are, however, a few apps available. Namely +[SocialHub](https://apps.apple.com/jp/app/id1474451582) for iOS and +[Milktea](https://github.com/Kinoshita0623/MisskeyAndroidClient) for Android. + +One can also use Misskey in the browser, and it provides a reasonably snappy +experience, though will most likely use more data than a dedicated app. + +#### Other Various User Features + +Some other excellent user-facing features which are either missing from +Mastodon, Pleroma, or both are: + +* an excellent threading model (similar to Reddit) where it's much easier to follow the flow of a conversation, +* MFM (Misskey-Flavoured Markdown) which is like markdown on steroids and even supports LaTeX formatting, +* multiple different UI layouts built into the software, +* the ability to have custom CSS for your client, such as in the example below, +* working and federating pinned posts (which Pleroma lacks), +* good handling of posts that have been deleted (which Pleroma also lacks), +* automatically marking media as sensitive when you add a CW to your post (something every other bit of software except PleromaFE does, despite multiple requests to at least have the ability to do that), +* and an extremely customizable UI, with widgets! + +<figure> + <a href="/img/misskey/widgets.png"><img src="/img/misskey/widgets.png"/></a> + <figcaption>My sidebar with some widgets.</figcaption> +</figure> + +Here is an example of custom CSS that makes it so the parent of posts that +appear in your timeline are shown only on hover, and in a manner similar to how +Pleroma does it: + +``` +.tabs ~ * div[tabindex="-1"] { + overflow: visible; + contain: none; +} + +.tabs ~ * div[tabindex="-1"] .reply-to { + position: absolute; + left: 2%; + bottom: calc(100% - 1em); + max-width: 90%; + box-sizing: border-box; + background: var(--panelHighlight); + z-index: 1000; + padding: 20px 24px; + box-shadow: 0 .5em 2em rgba(0, 0, 0, .5); + opacity: 0; + visibility: hidden; + transition: opacity .2s, visibility .2s; +} + +.tabs ~ * div[tabindex="-1"]:hover .reply-to { + opacity: 1; + visibility: visible; + transition: opacity .2s, visibility 0 ease .2s; +} +``` + +### In Conclusion + +Although there are things yet unfinished with Misskey (as there is for all the +other Fediverse software), it is already miles ahead of the rest of the +Fediverse software I've tried. Yes, there are some rough edges and there might +be UI elements or UX aspects that some don't like or prefer, but at least for +me, and for many others who have tried it over the past couple days, Misskey +really seems like the future of the Fediverse; other software feels like it's +stuck in an old paradigm, trying to copy too much what Twitter or 4chan are. + +Plus, since the seemingly overnight switch of so many users (at least in my +circle) to Misskey, there has been a lot of work to figure out features, +document things more thoroughly, and provide things like the aforementioned +patch which fixes federation for people with long bios. The future is bright +for Misskey. + +If you check out Misskey and like it, please consider [donating to +Syuilo](https://www.patreon.com/syuilo) to keep development going. diff --git a/public/img/admin-overview-thumb.png b/public/img/admin-overview-thumb.png Binary files differ. diff --git a/public/img/admin-overview.png b/public/img/admin-overview.png Binary files differ. diff --git a/public/img/database-thumb.png b/public/img/database-thumb.png Binary files differ. diff --git a/public/img/database.png b/public/img/database.png Binary files differ. diff --git a/public/img/drive-thumb.png b/public/img/drive-thumb.png Binary files differ. diff --git a/public/img/federation-thumb.png b/public/img/federation-thumb.png Binary files differ. diff --git a/public/img/federation.png b/public/img/federation.png Binary files differ. diff --git a/public/img/misskey/admin-overview-thumb.png b/public/img/misskey/admin-overview-thumb.png Binary files differ. diff --git a/public/img/misskey/admin-overview.png b/public/img/misskey/admin-overview.png Binary files differ. diff --git a/public/img/misskey/database-thumb.png b/public/img/misskey/database-thumb.png Binary files differ. diff --git a/public/img/misskey/database.png b/public/img/misskey/database.png Binary files differ. diff --git a/public/img/misskey/drive-thumb.png b/public/img/misskey/drive-thumb.png Binary files differ. diff --git a/public/img/misskey/drive.png b/public/img/misskey/drive.png Binary files differ. diff --git a/public/img/misskey/federation-thumb.png b/public/img/misskey/federation-thumb.png Binary files differ. diff --git a/public/img/misskey/federation.png b/public/img/misskey/federation.png Binary files differ. diff --git a/public/img/misskey/widgets.png b/public/img/misskey/widgets.png Binary files differ. diff --git a/public/img/widgets.png b/public/img/widgets.png Binary files differ.