Introducing MissKey, a fediverse microblogging app built with Node

MissKey is a newer microblogging platform for the fediverse, developed largely by an individual developer named Syuilo. Billing itself as “ a completely open source, ultimately sophisticated professional microblogging software”, the project has been in active development for about four years and has a dedicated following.

The whole platform uses the ActivityPub protocol, meaning that it federates with both Mastodon and Pleroma.

Let’s jump in and explore!

Registration

There isn’t much of an onboarding flow for first-time users, so you’ll need to click around to get things set up. The user customization options are available in a drop-down menu under Settings (but not Customization, that’s a different thing and we’ll get to that later)

The settings menu is comprehensive, to say the least. In addition to the standard fields one comes to expect with social networking platforms, there are a number of list entries that I had to scratch my head at, such as “this profile is a cat” option or the somehow-even-more-cryptic “I like sushi rather than pudding” setting. 

I’m not even kidding.

Dashboard

The MissKey dashboard is equal parts familiar and foreign, and feels like a greatest hits mashup of Twitter, iGoogle, and Github. The interface makes extensive use of smooth, subtle animations that underscores a bouncy and cheerful design aesthetic.

I feel like I’m in an alternate dimension where Silicon Valley was established in Tokyo.

The MissKey dashboard consists of regions and widgets, and the Customize feature allows users to drag the existing widgets around or add new ones from the toolbox. As a whole, this approach feels like a user-friendly interpretation of the layout concepts used by Hubzilla, and I have zero complaints.

Just a few of MissKey’s great widgets

Some widgets included in the set are a feed reader, notifications, daily activity, a calendar navigation system, and more. I came away from this curious as to whether custom widgets could be developed also.

MissKey also ships with an alternate layout page called Deck, and it strongly resembles the Mastodon column UI, with the added bonus of widget support. Every column can be dragged to change the sort order, and new columns can be created on-the-fly. It’s also possible to create any number of widget columns, allowing for complex layouts.

Misskey Deck showing four columns of content. The far left is a custom column that only has widgets in it.

Another convention used extensively by MissKey is free-floating windows. Certain features, such as messaging and cloud storage, hover in plain view as you navigate across different pages. I actually found this to be a novel approach to designing persistent elements — it’s nice to have a messaging system, for example, that doesn’t simply copy the way Facebook Messenger works.

Here, we can see a “Drive” UI, primarily used for storing uploaded images.

Content

MissKey’s approach to displaying and interacting with content is interesting. Contrary to other fediverse apps such as Mastodon, this platform is capable of 9 different reaction types other than just a like/favorite button. Any one of these reactions will translate to a simple like/favorite in other apps, maintaining some level of basic compatibility with the rest of the fediverse.

Another desperately-needed feature here is polls, and MissKey delivers. This implementation predates the feature that Mastodon is developing, and the underlying architecture is currently incompatible with it. That said, Misskey’s polling system most strongly resemble’s Diaspora’s implementation from a design standpoint.

When a poll is shared with a platform that can’t support it, it degrades into a note activity on the recipient’s end, with a title and link to the poll. (Note: development work is currently being made for MissKey’s polls to be compatible with Mastodon’s)

Polls as seen in the MissKey UI

This is a definite area for improvement, but I was pleasantly surprised at the fact that there was a fallback at all.

The same poll as viewed from a Mastodon frontend

Profiles

Another great hit is the User Profile interface, which somewhat resembles Twitter and Facebook. The UI is clean, sleek, and automatically populates with data from any fediverse account with good enough ActivityPub protocol support.

One interesting element is the presence of an “Activity” indicator, which kind of resembles Github’s commit grid on user profiles. In this case, the widget tracks statuses, replies, and boosts.

That’s a strangely pretty graph…

Theme Support

The platform also offers a basic theme engine, and it’s not too different from the one Pleroma offers (Pleroma’s is more robust). There are a number of community themes to choose from, and you can also go ahead and create your own.

One interesting aspect here is that it’s possible to set themes for both light mode and dark mode, meaning that you can set two default themes depending on whether you want to use MissKey in Light Mode or Dark Mode.

The animations and UI decorations are oddly satisfying.

Messaging

Another UI component that leverages MissKey’s floating-window paradigm is private messages, and this is a design that I haven’t really seen in many other apps…anywhere. It’s almost as unique as Facebook’s original approach to instant messaging, or their chat-heads feature.

Indivudal message threads open up in their own floating windows. I found this actually ended up being a nice approach, as I didn’t have many individual conversations open, and they never felt like they got too much in the way of the rest of the UI.

Reversi

It would be a crime to mention this, but MissKey also ships with a single web game: Reversi! One fun element here is that you can either use pre-defined anime images, or supply your own avatar to the reversi game.

Federation

Out of the box, MissKey is capable of federating with other platforms that speak the ActivityPub protocol. Fetching profiles from Mastodon, Pleroma, and Friendica proved fairly painless, although not every platform has posts to provide out-of-the-box.

For platforms with a mature support for ActivityPub, federation worked extremely well with MissKey, as replies and interactions appeared to happen instantly in real-time. For a newer platform, this is a fairly impressive feat, and I had no problem interacting with my demo account on a flagship instance.

Unfortunately, things begin to fall apart when federating with platforms that don’t support ActivityPub quite as well. While Friendica has made a lot of progress with their ActivityPub protocol integration, there are still a lot of rough edges. Ultimately, statuses and friend requests didn’t seem to get delivered on either end at all.

Federation with Friendica almost works, but it’s just not there yet.

This illustrates a broader challenge with implementing the ActivityPub protocol: emergent platforms desperately need to be tested against mature ones to ensure maxiumum compatibility between all networks. This often relies on bug reports and exchanging logs to determine where certain types of failures are happening in each federation stack.

One a happier note, I was pleasantly surprised to find that MissKey supports WebFinger, meaning that you can fetch statuses simply by putting them into the search form. This worked really well for loading statuses from PixelFed and Friendica, but didn’t yet work for individual PeerTube videos.


Verdict

MissKey is a newer platform in the fediverse, and going into this review I legitimately did not know what to expect. While some features need some improvement in terms of design and implementation, most of the platform feels surprisingly…polished. There are still a handful of bugs and quirks, but the good outweighs the bad.

The experience of using MissKey is nothing short of incredible. It provides a UI that is beautiful, unique, and a little bit bizarre, and the design aesthetic feels like a breath of fresh air. If you’re new to the fediverse or just want to try a different approach, I would highly recommend checking it out.


Really Good:

  • Beautiful modern interface that feels smooth and leverages great animations
  • Instead of just likes, every post can have one of 9 different reactions
  • Polls support
  • MissKey Deck feels like a better Mastodon frontend
  • Messaging is broken out into its own context, making it easier to find private message threads
  • UI can be customized more than most other fediverse platforms, and offers pretty sweet widgets
  • Statuses can show previews to multiple links
  • Federation works really well with Mastodon
  • PeerTube embeds work out-of-the-box!
  • You can look up statuses using the search box, because MissKey supports Webfinger!

Needs Improvement:

  • Occasionally some of the CSS can act weird in Firefox. The messaging window, for example, sometimes has messages appear underneath the compose form.
  • Doesn’t actually federate with PeerTube, and only partially supports Pixelfed.
  • Thread navigation is inconvenient; you have to click the timestamp of a response to see subsequent responses.
  • There aren’t any tools for adding screen-reader captions to images at this point.
  • Currently many of the interactions rely on modals, rather than nesting forms directly into interface elements. This isn’t necessarily bad, but the flow may clash with your expectations if you use Mastodon or Pleroma.

Thanks for reading this article about MissKey! If you’d like check it out yourself or contribute, just follow the links below!

3 responses on “Introducing MissKey, a fediverse microblogging app built with Node

Leave a Reply

Your email address will not be published. Required fields are marked *