ActivityPub準拠のオープンソースSNSを作ろうと思った話

数週間前だと思いますが、突然MastodonやMisskeyが準拠しているActivityPubに対応したSNSを新しく開発しようと思いました。

分散SNSとの出会い

僕が分散SNSを知る切っかけになったマストドンにドハマリしたのは2017年の春頃だったと思います。

最初は、Yahooニュースだったか、何かしらのニュースメディアでマストドンの存在を目にし、Twitterライクなサービスが新しく始まったのかな、位にしか捉えていませんでしたが、新しい物が好きな僕はとりあえずmstdn.jpというインスタンスに登録をしました。

僕はTwitter黎明期からTwitterをやっていたわけではなく、かなり一般層に浸透してからの登録だったため実感しませんでしたが、ユーザーは口々に「古き良きTwitterのようなコミュニティだ」と言っていたのを覚えています。

それでも、やはりTwitterとは違い、誰かがなにか面白いことを思いつき、それにみんなが全力で乗っかる、濃いながらも温かいコミュニティにどっぷりのめり込んでいきました。

当時はmstdn.jp/friends.nico/pawoo,netの3つのインスタンスが日本では目立っており、単一企業が運営する独立したSNSではなく、複数の企業/個人が運営するインスタンスが接続され、相互に通信することができる分散SNSの概念も徐々につかめ、その可能性にも強く惹かれました。

そんな中で出会った人と結婚する、自分でインスタンスを立ち上げてみるなど、いろいろな経験をし、マストドンと出会ったことで、かなり人生が変わったのではないかと思います。

mstdn.sasachi.tokyoについて

前述の通り、僕は好奇心からMasto.hostというサービスを使って独自インスタンスを立ち上げたのですが、小さなインスタンスとはいえ、インスタンスの管理者になるという経験をすることができました。

管理者になると、設定画面に「管理」という項目が追加され、現在つながっているインスタンスやインスタンス間の交流の様子を見ることができるのですが、ユーザーとして何も意識することがなく気軽に色々なインスタンスのユーザーとつながることができる面白さの裏に、いろいろな複雑な技術があること、そして連合をつなげるための規格としてActivityPubという物があることを知りました。

正直に言ってそれらの技術を理解することはほとんどできなかったのですが、ただ純粋にワクワクするという感情を強く覚えました。

Misskey.ioとの出会い

そんな中、前々から名前は聞いたことがあったけれど使ったことがなかったActivityPub準拠のSNSオープンソースである「Misskey」をホストする最大規模のインスタンスMisskey.ioに登録しました。特に理由はなかったと思います。

これまではマストドンしか触ったことがなかったのですが、Misskeyは、ActivityPub準拠という点はマストドンと共通しているものの、UIや実装している機能にはかなりの違いがあり、よりActivityPubに興味がわきました。

ある日、ActivityPubの仕様について調べてみたところ、僕が想像していた以上にいろいろな仕様が策定されていて、様々な機能を規格内に実装することができることを知り、自分もいつかActivityPub準拠のサービスを作ってみたい、と考えるようになりました。

そんなことを思っている中で、Misskeyの開発者を含むいろいろな人とMisskey上でコミュニケーションをしていて、自分の中でその思いが強くなっていくのを感じ、大した技術力もない状態で、完全な見切り発車ですが、自分で1からActivityPub準拠のサービスを作ってみることにしました。

telepathy

名前は「telepathy」にしました。特に理由はありません。

本当に1からの勉強で、まだ右も左も分からないのですが、とりあえずGitHubにOrganizationを作って、開発をはじめました。

今時点では、Twitterのような時系列フィードと、それとは独立した簡易ウェブサイトのような物(Facebook Pageがイメージに近いです)を作れるCMS機能を備えたサービスを作ることができればと考えています。

例えば、同人サークルやバンドなんかが活動報告をできるような場にしたいと考えています。

これから

何度も言っている通り、本当に開発の経験はないに等しい状態なので、今はとりあえず勉強をしていますが、UIはVuetifyを使って、バックエンドはKoaとmongoDBを使ったようなサービスを作ることができればと考えています。

正直頓挫する可能性も全く低くないと思いますし、何度も壁にはぶち当たると思いますが(いま時点ではどれが壁なのかすらわかっていません)、手探りで色々とやっていきたいと考えています。