PapyrusってアプリをAtmosphereに作りたい
本稿は「ブルスコ、アドベントのカレンダー」の12/19分の記事になります。
はじめに
筆者は趣味でプログラミングを嗜む程度で専門ではありません。特にatprotoについては語句の定義や用法が間違っている可能性が多分にあります。温かい気持ちでお読み頂けると幸いです。
プロローグ 〜Blueskyとの出会い〜
ある日のこと。世間ではTwitter買収劇で代替SNSに注目が集まっていました。
筆者はほぼSNSを使っていなかったので、遠目からTwitterからの引越し先として色々なサービスが紹介される状況を眺めていました。SNSにはあまり興味がなかったものの、分散アーキテクチャという技術は今まで使ってきたインターネットサービスのそれよりもWWWの思想に親和性があるように感じられて興味が湧きました。
そんな中、Gigazineさんの「分散型SNSプロトコル「AT Protocol」「ActivityPub」「Nostr」は一体何が違うのか?それぞれの特徴をまとめてみた」という記事を読みました。この記事ではかなり分かりやすく3つの分散SNSの違いがまとめられています。自分が思っていたよりもActivityPubには制約があり、それを克服するのがAT Protocolなんだ!と興味を持ち、少なくとも以上の3者の中ではatproto推しになりました。
しばらくして、知り合いから「Blueskyのmeet upイベントが京都であるみたい」と誘われ、meet upに参加しました。Meet upでのDanさんの講演がまた興味深く、AT Protocolで自分も何か作りたいと思うようになったわけです。
Atmosphereって何?
さてこの記事のタイトルは「PapyrusってアプリをAtmosphereに作りたい!」としていますが、そもそもAtmosphereとは何か、かなりざっくりですが説明しておきたいと思います(ご存知の方は飛ばしてください)。
AtmosphereはBlueskyを支えるAT Protocol上に実装されたアプリケーション郡のことです。 Blueskyはその分散性を確保するためにAT Protocol(以下、atproto)というプロトコルが使われています。このプロトコルはユーザの情報、投稿などのデータをどのように管理してどのように配信するかを定めています。
Blueskyでは自分の投稿データやフォロー・フォロワーリストをBluesky以外のサーバで管理できたり、検索処理や投稿の統計処理を自由にカスタマイズできるようになっていますが、これはatprotoがプロトコルレベルでそのような仕組みを提供しているからです。
atprotoは主眼としては分散SNSを支えるプロトコルとして開発されていますが、このプロトコルを活用したSNS以外のアプリケーションも作ることができます。「なんでわざわざそんなことをするのか」と思うかもしれませんが、atprotoを使ってアプリケーションを作ることで分散アーキテクチャのメリットを享受できるとも言えるのです。そうしてatproto上に作られた様々なアプリケーション達がAtmosphereと呼ばれています。
Papyrus
プロトコルの話はこの辺にして次にタイトルにもあるPapyrusというアプリの話に移ります。
背景
筆者はスキマ時間によくスマホで技術系のWeb記事を読みます。1記事2, 3分で読めてしまう手軽さは気分転換や暇つぶしにぴったりなのですが、Attention Economy の主役であるスマホの誘惑に負けてしまうことが屡々あります。どういうことかというとWeb記事を読んでいたのにアプリのプッシュ通知が来ていつの間にか、メールを返していたりするということです。元々、気分転換や暇つぶし程度の目的なのでそこまで大きな問題ではないかもしれません。ですが小休止のつもりでWeb記事を開いた結果、プッシュ通知を起点にいつの間にか別の作業を始めているというのが自分にとってはあまり気持ちの良いものではなく、何とかならないかと思っていました。
ある日、そんなことを思いながら通学中に電車内を見渡すと、スマホに目を向ける人も多い一方で紙の本や新聞を読んでいる人も一定数いることに気づきました。Web記事も本や新聞みたいに紙面で読めるとスマホに注意を削がれなくて済むのではと思いました。
機能
PapyrusはWeb記事を印刷可能なレイアウトとして出力するツールです。機能面を見るとFeedlyやInoreaderのようなRSSリーダーの一種と言えますが、RSSで取得したコンテンツを閲覧する媒体がディスプレイではなく紙である点が普通のRSSリーダーと異なります。
ユーザーは自分が良く読むWeb雑誌やブログのRSS URLを入力することで読みやすく整形された小冊子の印刷データを受け取ることが出来ます。言うなればRSSで配信されるWebコンテンツを使って自分専用の日刊紙を作ることが出来るのです。
なんでAtmosphereに実装する?
PapyrusはAtomosphereについて知る前からあったら便利だなと考えていたアプリで、元々は普通のWebアプリとして作成するつもりでした。ですがアプリの仕様を考えていく内にatprotoやBluseskyが掲げるPublic Conversationに親和性が高いかもしれないと思うようになりました。
PapyrusはRSSから取得したコンテンツを印刷に適したレイアウトに組版するアプリですが、仮にPapyrusが普及すれば様々なユーザーの自分専用の'日刊紙'が生まれることになります。Papyrusで作られた'日刊紙'は、ユーザによるWebコンテンツのキュレーションとも言えます。それも単純なRSSのリストという形式なので他ユーザが簡単に再利用することが出来ます。
突然ですが、本棚を利用者に貸し出して利用者に選書してもらう「本棚オーナー制度」というものがあります。多様な人々が選書に関わることで、本棚の内容が個性的になり、通常の図書館や書店にはない独自の魅力が生まれるという利点があり、全国に広がりつつあります。筆者はこの制度が集合知の形成を促しているように思えてとても良い制度と感じています。
Papyrusで作られた'日刊紙'という個人に依るウェブコンテンツのキュレーションが公開、共有されれば、Web版の「本棚オーナー制度」が作れるかもしれないと思いました。そしてデータポータビリティに優れたatprotoはこのキュレーションの公開、共有にピッタリのプロトコルかもしれないと!
終わりに
ほんとはアドベントカレンダーの公開までに簡単なデモサイトを用意しようと思っていたのですが、力不足で間に合いませんでした。
Papyrusはまだまだアイデアの段階で、そもそも全文RSSを提供しているネットメディアが少ないといった課題も存在しています。ですがPapyrusによって作られた'日刊紙'はWebコンテンツとの新しい付き合い方を提供してくれる気がしており、作ってみる価値はあると考えています。
筆者は今年中にはデモサイトを公開しようと意気込んでいるので(少なくとも今のところは)、よければ続報をお待ち頂けると幸いです。
あとatprotoに詳しい方々、ぜひアドバイスください!
拙い文章をお最後まで読み頂き、ありがとうございました(* ᴗ ᴗ)⁾⁾