マストドンもどきを作って疲れた

前回の記事でも少し触れたが、マストドンっぽいモノをゼロから自作してみた。その名も Neo's ActivityPub

ActivityPub というプロトコルを使えば、Misskey や Pleroma のように、Mastodon でないサーバも連合として交流ができるので、その実装をしてみたワケだ。

Angular と NestJS という、自分の経験があって得意なフレームワークを使ったのだが、まぁ苦戦した。ActivityPub の情報がなかなか揃っていないというのもあるのだが、「ActivityPub をやり取りする部分」と「マストドンのような SNS として機能する部分」は全く別で、「SNS としての機能」を実装する方に疲れてしまった。

自分はコレを作ったからといって、SNS を運営したいとか、沢山の人に利用してほしいとかいうモチベーションがなく、単純に「ActivityPub ってヤツをいじってみたい」ぐらいのノリで始めたので、ActivityPub をやり取りするための前段として必要になる「SNS としての機能」を作るので大変疲れた。

前回の記事でも触れたように、自分の年齢的なモノとか、設計なしで始めていることなど、思うようにコーディングが進まない理由は色々あったが、それにしても疲れた。仕事中もコレで悩んでしまうくらい取り憑かれてしまった。w

とりあえずは、ユーザ作成 → ログインして、ローカルユーザ・リモートユーザ両方をフォローできるようにし、投稿 URL が分かればふぁぼれるようには出来たので、AcitvityPub を話してみるというところは色々実装できた。まぁ楽しかったというか、良い経験にはなったかな。

リファクタリングもできそうな余地は十分あるし、ふぁぼるところでどうもバグってるぽいのだが無理くり通して放置していたりする。w 続きやりたい人は勝手にフォークしてやってくれ…。俺はもう疲れた…。w