Site icon image usounds

usoundsの日常や技術的なメモを残すブログです

運営しているもの

この記事は Bluesky / ATProtocol Advent Calendar 2025 の21日目です。

初めましての方は初めまして。ゆー(@usounds.work)と申します。色々なBlueskyやATProto向けのアプリケーションを作っていいます。

私は意図的にBlueskyとATProtoを使い分けています。これは少し前に海外の方が利用した例えなのですが、

用語 現実世界に例えると
ATProto 世界そのもの
Bluesky アメリカ
DID パスポート

と置き換えることもできます。もちろん厳密には違うのですが、この後の話がしやすいので、この記事はその前提で進めます。

ATProtoのすごいところは、とにかく自由なところです。アメリカ2のようにアメリカの完全コピーを作ることもできますし、アメリカの法律をパクって俺だけのアメリカを作ることもできます。

もちろん、アメリカなんて全く考えない、日本という国を作ることもできます。

それを元に、私が作ったサービスを宣伝させてください。

💡
開発者向けの情報はこの表現を使います

一般の方向けのサービス

Skyblur

https://skyblur.uk/

いわゆるネタバレを伏せた投稿ができるサービスです。昔はBlueskyもネタバレを伏せる機能の痕跡は存在していたのですが、日の目を見ることがなく消えさえっていましたので、自分で作ることにしました。

ATProtoへデータを貯める

Skyblurの投稿データは、すべてATProtoに溜まっています。なので、「アメリカのようなSkyblurという国を作った」アプリケーションであると言えます。多くのユーザーさんにご利用いただいており、実はATProtoの世界における国の中で、アクティブユーザー数においては第5位となります。(2025年12月1日時点のUFOsにおける「Top app collections→this month」より)。第1位は当然の如く、Blueskyです。

もちろん、Skyblurをコピーした独自のアプリケーションを作っていただくことも可能ですし、オープンソースなのでいつでもSkyblurも修正が可能です。

💡
自分の国を作るには、そのドメインの取得が必要です。Skyblurであればskyblur.ukのドメインを取得しました
Blueskyへの自動投稿機能

自分の国を作ったものの、大都会Blueskyと連携した方が利便性も高いことは事実です。隣の国と連携することも非常に容易なATProtoですので、それを活かしています。

OAuth/PermissionSet対応

Skyblurはパスワードをアプリに入力しなくて良い、OAuthに対応しています。さらに、OAuthをさらに安心してご利用いただけるよう、必要な権限だけを使えるScopeにも対応しています。Scopeはさらに全世界で初めて(個人の感想であり、確証はないです)PermissionSetに対応しました。これはOAuthの認証画面がわかりやすくなるメリットと共に、万が一Skyblurの投稿機能を組み込んだOAuth対応のアプリケーションが作られる際にも、組み込みやすくなっています。

💡
PremissionSetは下記のステップで実装します
  1. PDSにデータを作る。この指定でuk.skyblur.post, uk.skyblur.preferenceのレコードへのCRUD操作uk.skyblur.post.encryptのAPI呼びだしが可能になります。なお、API呼び出しはPDSのバグ?で現時点ではaudは*を指定する必要があります
    https://pdsls.dev/at://did:plc:4sm3vprfyl55ui3yhjd7w4po/com.atproto.lexicon.schema/uk.skyblur.permissionSet
  2. データを作ったDIDを、NSIDのDNSで指定する。uk.skyblur.permissionSetで作った場合は、_lexicon.skyblur.ukでDIDを指定します
    https://dns.google/resolve?name=_lexicon.skyblur.uk&type=TXT
  3. OAuthのScopeにinclude:uk.skyblur.permissionSetを指定する
    https://github.com/usounds/Skyblur/blob/21ba40575079b0bcb4b048e9553dea7d9e3ce2a5/frontend/src/types/ClientMetadataContext.ts#L8

リト

https://rito.blue/

ATProtocolを利用したソーシャルブックマークサービスです。シンプルに、かつ、細やかに、Web上のあらゆるものをブックマークし、共有できる場を提供します。

ソーシャルブックマークを名乗っていますが、あまりソーシャル要素はありません。なお、Skyblurであげたポイントはほぼ引き継いでいます。

まだまだ道半ば、という状況ですが、リトは「普段使いできるブックマーク」と「ATProtoのアプリを紹介する機能」を両立することを目指しました。

💡
ATProto向けの国を作ったユーザーは、その国の説明をリト登録することができます。この説明は、APIで取得することができます。

https://rito.blue/xrpc/blue.rito.service.getSchema?nsid=uk.skyblur.post

プロダクトのNSIDを持つATProtoのカスタムハンドルが設定されたアカウントでブックマークすることでご利用いただけます。

https://blog.usounds.work/posts/rito-for-developer

Chrome機能拡張

今見ているサイトをリトでブックマークするのを簡単に出来る機能拡張です。ほとんど@so-asano.comさんが作ってくださいました。改めてその節は大変お世話になりました。

開発者向けのサービス

ATProto Dashboard

https://atpdashboard.usounds.work/

自由に国を作る事が出来るATProtoですが、こんな国があります、ということを知ることが出来ません。新しい国を作ろうとしている人を探す仕組みがATProto Dashboardです。

使い方は下記にありますが、開発者向けなので、わかりやすさ以外のところを重視しておりますのでご了承ください。

終わりに

明日の担当は@girigiribauer.comさんです。Bluesky 公式アカウント移行まとめ #青空公式アカウントを運営されていらっしゃいます。

それでは、よいブルスコライフをお過ごしください!