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:
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> </td>
+ <td>X</td>
+ <td> </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> </td>
+ <td>X</td>
+ <td>X</td>
+</tr>
+<tr>
+ <td>Home</td>
+ <td>X</td>
+ <td> </td>
+ <td>X</td>
+ <td> </td>
+</tr>
+<tr>
+ <td>Followers-only</td>
+ <td>X</td>
+ <td> </td>
+ <td>X</td>
+ <td>X</td>
+</tr>
+<tr>
+ <td rowspan="3">Local (Not Following)</td>
+ <td>Public</td>
+ <td> </td>
+ <td>X</td>
+ <td>X</td>
+ <td>X</td>
+</tr>
+<tr>
+ <td>Home</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+</tr>
+<tr>
+ <td>Followers-only</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+</tr>
+<tr>
+ <td rowspan="3">Remote (Not Following)</td>
+ <td>Public</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td>X</td>
+</tr>
+<tr>
+ <td>Home</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+</tr>
+<tr>
+ <td>Followers-only</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td> </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.