しずかなSNS(仮)
本日、風呂に入ていた時に Just an Idea として思いついたのでメモっておく
あとで詳細を詰めて考える
ActivityPub 実装の素振りとしては良さそう
ややこしい利用規約とか考えなくていいしnyarla.icon
本題としてはこれ↓
ふと「しずかなインターネット」ならぬ「しずかなSNS」があったらいいのにな、って思ったけど、SNSがSNSである以上しずかにはならんな、言う結論になった
肝心要としては「人と繋がる」ことが出来ないSNSを作れば良い、という結論になった
それってSNSなの?という問題があるが、まぁ本筋ではないnyarla.icon
以下殴り書き
全体的なイメージ
雪のふる田舎町
イメージとしては「魔法使いの夜」のエンディング手前みたいな感じ
今、頭の中で「星がまたたくこんな夜に」が流れている
この型月厨めnyarla.icon
実装の概要
ActivityPub サーバとして実装される
ただしお一人様サーバとしてだけ機能する
つまり self-hosted な ActivityPub Server としてデプロイする必要がある
これはフォロワー/フォロイー関係をリモート <=> ローカルに限定するため
ローカル <=> ローカルはややこしいので却下
また実装言語は TypeScript で fedify + hono + Cloudflare Pages Functions を使う
wrangler 一発でデプロイできるようにすると楽そうなので
ActivityPub 実装としての挙動
アカウント・フォロー周り
リモート→ローカル
相手からのフォローはすべて許可制
手動で承認しない限りアカウントのフォローは許可されない
相手からは bot として認識される。その時、下記のような表示がされる
「このアカウントは○○の影」
「このアカウントへのリプライは一切届かない」
「このアカウントへのLikeやBoostは相手へ明示されない」
ActivityPub ネットワークからはアイコンやバナーの確認はできない
まっくろくろすけさんか何かみたいな表示となる
ローカル→リモート
基本的には他の ActivityPub 実装と同じようになる
ただし表示・内部的な実装として詳細な情報は伏せられる
例えばプロフィールなどの確認は相手のサーバに行かないと見れないようにする
またアイコンや背景などは完全には表示されない
CSSでやるとして「上半分から黒いグラデーションが掛かっている」状態とする
もしくは白抜きで「○○からの光」みたいな?
この辺り雰囲気でnyarla.icon
リプライ関係
リモート→ローカル
すべてのリプライは「誰からの声が聴こえた気がする」と表示される
これはリアルタイムで表示される
いやこれは下手に言及されたと分かるとストレスか?
相手が誰か分からんとストレスになりそう
と思ったけど、相互フォロワーからの受け付けるだけに留めたら良いか
と言うより相互フォロワー間だけにメッセージのやりとりを許可するのもアリかな
ローカル→リモート
そもそもリプライを含むメッセージは投稿できない
SNSじゃねぇnyarla.icon
と思ったけど相互フォローにだけリプライを許可すれば良いだけな気がする
アクション(Like、Boostなど)
リモートからの Like
「誰かが手を振った気がする」と通知
実際に誰からどのメッセージへアクションが来たのかは伏せる
データとしても相手が誰だったか、を削っておくとよさそう(過激派)
リモートからの Boost 通知
「声が響いた気がする」と通知
これも誰から来たのが不明にする
だからSNSじゃねぇってnyarla.icon
ローカルからの Like
Like として ActivityPub ネットワーク上には流れない
あくまでアカウント上の情報として保持されるのみ
本当にSNSをするつもりか?nyarla.icon
ローカルからの Boost
これも ActiviyPub ネットワーク上には流れない
一種の Bookmark としてだけ機能する
「しずかなSNS」なんだから、静かですnyarla.icon
発言関連
すべての発言はフォロワー限定のメッセージとして流れる
ActivityPub における follower only としてしか流れない
しかし自身のインスタンス上では表示される
とは言え公開された RSS フィードなどは持つ
これは任意で有効にした場合のみ
本当に静かな町ですねnyarla.icon
その他
全体としてSNSをやめている。お前は本当にSNS実装か?nyarla.icon