Sky Follower Bridgeの今までとこれから

kawamataryo
·

Bluesky Advent Calendar 2024の8日目の記事です。

個人で開発しているBlueskyのフォロー移行ツール Sky Follower Bridge の開発のふりかえりと、今後の展望について書きます。


🦋 Sky Follower Bridgeとは?

Sky Follower Bridgeは、XやThreadsなどのSNSのフォロー情報をもとにBlueskyのユーザーを検索して、フォローをすることができるブラウザ拡張です。リストのインポートやブロックにも対応しています。

開発した当初は、自分が使えれば良いかなと思っていたのですが、Blueskyの拡散とともにユーザー数が増え、現在では全世界で300,000人以上の人が使ってくれています。

GitHubのスター数も700を超え、自分が開発しているOSSでは最大のスター数を達成しました。素直に嬉しいです。


📖 開発のふりかえり

📅 2023年5月 初回リリース!

Blueskyを始めた当初、知り合いを探すためにXの知人をBlueskyの検索画面で探してフォローしていたのですが、その際「これ自動化できたら便利では?」と思い開発を始めました。

開発を思い立って2週間ほどで初期バージョンをリリースしましたが、当時はBlueskyのユーザー数も少なく、ほぼ注目されなかった気がします。

また初回リリースは今とは全く異なるUIで、Xのフォロー一覧に直接Blueskyのユーザー情報を埋め込む形式でした。実装的にも、素のJSで直接XのDOMを操作してUIを埋め込むなど、力業のコードベースでした。

📅 2023年8月 Van.jsでリファクタリング

素のJSだとコードのメンテが大変だったので、DOM操作を当時Hacker Newsで話題になっていたVan.jsで置き換えました。この時もまだUIは変わりません。

📅 2024年2月 UIリニューアル & Plasmoでリアーキテクチャ

2023年の年末ごろから徐々にユーザーが増え、GitHubでのIssueも多くなりました。その中で一番多かったのが、UIの改善でした。Xの仮想スクロールへの対応のため、ユーザー検索の際に自分でスクロールする必要があったのですが、それを自動化したいという要望です。

Xに埋め込みのUIでは実現が難しかったので、新たにモーダルベースのUIにリニューアルしました。また、内部実装もPlasmoというブラウザ拡張機能のフレームワーク + Reactで書き換えました。

📅 2024/08 大手ITメディアに紹介され海外ユーザーに拡散

2024/2に、Blueskyが招待制ではなくなり、一般に開放された頃からさらにユーザーが増えました。特にTechCrunchやWired, 本家Life Hackerなどの海外大手メディアに紹介されたことも大きかったです。

📅 2024/10 Bluesky Teamのsamuelから修正PRをもらう

Elonの発言や、ブラジルでのX停止などでBlueskyへの流入が爆発的に増え、比例して自分のツールもさらに使われるようになりました。

しかし、自分の書いたコードにバグがあり、Blueskyサーバーに負荷をかけてしまうという問題がありました(DDoS攻撃のようだったと・・)

これはBlueskyチームの @samuel が修正してくれました。ツールの利用する停止させるのではなく、修正PRを送ってくれたところに、OSSの利点を感じると共にBlueskyコミュニティの強さを感じました。

📅 2024/11 3度目のUIフルリニューアル

以前のUIは対象サービス上にモーダルで検出結果を表示している都合上、表示領域やCORSなど諸々制約がありました。そこで、optionページにユーザー情報を表示するようにUIを修正しました。

これが今のUIの原型です。このUIのおかげで、一括フォローや、リストのインポート、再検索などの機能を実装することができました。

📅 2024/11 偽サイト発見 -> 公式サイト・公式アカウント作成

Sky Follower Bridgeの偽サイトが出回っていることにユーザーの通報から気がつきました。

まさか自分のツールでそんなことがあるとは思わず、本当に驚きました。また自分のこれまで築いてきたツールの信頼が勝手に利用されている気がして、悔しかったです・・

この件は偽サイトが同名の有料のツールを提供してきたり、同名の公式アカウントを取得したりと、その後も問題があったのですが、BlueskyチームやEileen, Lizなど海外の有志の方の助けもあり、一度は偽サイトと偽公式アカウントの閉鎖までこぎ着けました。

ただし、その後、偽サイトは別サーバーで再開して、今も運営しています。悔憤りはまだありますが、今は自分の開発に集中して、ツールの強みで勝負しようと思っています。

📅 2024/11 寄付リンクを追加

他のBlueskyのツール開発者がko-fi.comにアカウントを開設しているのをみて、自分もワンちゃんあるのかな?とプロダクトの画面に寄付リンクを掲載しました。すると驚くことに、多くのユーザーから寄付を頂けました。

まさか寄付があるとは思ってなくて本当に驚きました。寄付という形ですが、初めて自分の個人開発でお金をもらえたので本当に嬉しかったです。開発へのモチベーションも上がりました。

📅 2024/12 Product Huntへ応募

Xの元PdMのChris Messina さんに声をかけて頂いたことがきっかけで、ProductHuntに応募しました。

結果は122Voteの14位とまだまだな感じでしたが、多くの人に意見をもらえて嬉しかったです。

また機能を整えて再チャレンジしたいと思っています。

📅 2024/12 他SNSへの展開

新UIのおかげでユーザー抽出と操作が分離できたので、そこのロジックも完全に分離し、X以外のSNSに対応できるようになりました。

今は要望の多かった、ThreadsとInstagramに対応しています。


🚀 今後の展望

🌐 対応SNSの拡充

今はXとThreads、Instagramのみ対応していますが、アーキテクチャ的にスクレイピング部分は分離されていて、そこにコードを追加すれば対応SNSを増やすことができます。直近は要望のあったTikTok対応を検討しています。

その後、余裕あれば、MastdonやFacebookなどのSNS対応も行いたいなと思っています。

📱 モバイル対応(iOS/Androidアプリ)

Sky Follower Bridgeはブラウザ拡張なので、モバイルアプリには対応していません。

ですが、やはり規模としてはモバイルのみユーザーの方が多いのでモバイル対応もしていきたいと思っています。

今はReactNativeでモバイル版を作成中です。初めてのモバイル開発なので、まだ見通しは立っていないのですが、なんとか1月終わり頃にはリリースできたらなと思っています。


👋 終わりに

直近2ヶ月は毎日Sky Follower Bridgeのメンテをしていた気がします。これだけ熱中して開発できるプロダクトを作れたのは嬉しいです。また、このプロダクトを受け入れてくれたBlueskyコミュニティにも本当に感謝しています。

まだまだやりたいことは多いので、来年も開発頑張っていきたいです!おわり!

@kawamataryo
SWE@lapras_inc / ex-FireFighter 🔥/ GitHub: github.com/kawamataryo / Zenn: zenn.dev/ryo_kawamata