Home Artists Posts Import Register

Content

Hi guys!

Sharing a recent update on Misskey and my current status!


# Recent Misskey Updates

## Introducing ChatUI

We've implemented a new chat-focused UI, similar to Discord or Slack.

In ChatUI, the channel list is displayed in the sidebar, and posts flow from bottom to top instead of top to bottom.

In addition, each post is displayed in a more compact format than usual, allowing more information to be displayed on one screen.


## Introducing RPRS (Reaction Picker Recycling System)

The reaction picker is the most frequently called dialog on Misskey. That's why we've enhanced the user experience of the reaction picker to make Misskey more enjoyable to use.

As one of our efforts, we implemented the Reaction Picker Recycling System, which eliminates the lag before the reaction picker is displayed.

Briefly, by internally reusing the reaction picker, the picker is now much faster to display (even if there are many custom emoji).

To explain technically, the reaction picker used to rebuild the DOM every time it was displayed. Therefore, it took some time for the picker to appear, especially if there were a lot of custom emojis registered.

Therefore, we have made the following two changes.

1. When Misskey is launched, the reaction picker is pre-built in the DOM.

2. When displaying the reaction picker, do not build a new DOM, but reuse the pre-built one. Also, when closing the picker, do not destroy the DOM, but keep it for the next time it is opened.

In other words, opening a picker is now a simple matter of switching the CSS display property value, so the lag before opening is almost zero.



## Server-side performance improvements

Misskey is already relatively lightweight in terms of server-side performance.

However, there was one problem. The number of queries to the database is high.

Because Misskey provides unique features (e.g., antennas), it was using the database to a certain extent. The number of queries was high, and there was more or less overhead. Also, in cases where the database was located far away from the application server, there was a problem of increased latency and significantly reduced performance.

So, this time, by reviewing the queries and optimizing the processing on the application side, the number of queries to the database was greatly reduced.

### Total queries issued when reading 100 notes of timeline and 100 notifications

before: 797 (2391ms)

after: 25 (75ms)


Also overhauled the chart engine. By buffering commits during chart updates, the load has been greatly reduced. We also reduced storage and memory usage by storing fewer records in the database, while maintaining the same accuracy.


Before:

After:

(from https://github.com/misskey-dev/misskey/issues/6813#issuecomment-804279667)


## An organization for Misskey

Since I wanted to create multiple repositories for Misskey, I created a GitHub Organization for Misskey (misskey-dev).

As a result, syuilo/misskey has been transferred to misskey-dev/misskey🎉.


## Introducing mfm.js

Since misskey-dev was created as mentioned above, I decided to extract the MFM (Misskey Flavored Markdown) parser that was previously built into the main Misskey repository and release it as a separate repository (misskey-dev/mfm.js). At the same time, I also released it to npm so that third parties can easily handle MFM.

In addition, the parser itself has been rewritten in PEG (thanks to @marihachi), making it more convenient to nest animations.


## Introducing Misskey Forum

The Misskey Forum has been opened to ask questions and share knowledge about Misskey (https://forum.misskey.io/).

Up until now, problems such as "I can't install Misskey", "I can't access my instance", etc., were often discussed using GitHub issues or direct messages to me, but in most cases, the problem was not with Misskey, but with the server environment. In most cases, the problem was not with Misskey, but with the server environment, so I felt it was not an appropriate way to communicate.

With the opening of the Misskey Forum, You can now feel free to discuss such problems in the forum. That way, the problem can be solved faster since it can be seen by more people than if you consult me directly.


# Me lately

Last month, I actually resigned from the company I was working for. The reason for this was because I felt that I was not good enough and I wanted to focus on Misskey development again.

So, thanks to all of you, I will be able to devote my time to Misskey development for a while (a few months).

However, I think I will need to find a job in the future.


Thanks for your support! (≧▽≦)