仕事ではしばらく開発から遠ざかっていたのだけど、AI の波に乗ってスキマ時間でいくつか自作 OSS のメンテナンスをした。 一つの区切りをつけた話と、新しい道具を使ってツールを復活させた記録を書いておく。
NotHub をアーカイブした
自身の最初の個人プロダクトである NotHub を、正式にアーカイブした。
これは GitHub のリアルタイム通知を行う Chrome Extension で、14年前の開発当時、あまり使い勝手がよいとは言えなかった GitHub のタイムラインの自分用の代替として作ったものだ。
数年前から GitHub API の仕様変更に追従できず、サービスとしては実質停止していたものだ。自分の中でなかなか踏ん切りがつかず放置してしまっていたが、今回ようやく正式に幕を閉じることにした。
まだ自分がジュニアプログラマだった頃に、仕事でのプレッシャーと純粋な技術的関心の両方が重なって熱中して作ったプロダクトだ。当時は開発が楽しすぎて Mac を抱えたまま寝て、起きた直後からまた開発を再開するような生活を送っていた。
このプロダクトのリリースを通じて Web 開発の基本を一通り経験できたことは、間違いなく今の自分のキャリアの礎になっている。コードをアーカイブする作業は、当時の気持ちを思い出すようで感慨深いものがあった。
starseeker の復活
NotHub と同様にここ数ヶ月停止していた starseeker については、今回無事に修復して再リリースした。
これまでは「全ユーザーのスターをなるべく網羅的に取得する」ために全力でクロールしていたが、仕組みとして限界がきていた。 具体的には、クロール速度がスターの増加速度に追いつかず取りこぼしが発生していたこと、そして GitHub 側のキャッシュ仕様変更によりデータの更新頻度が極端に落ちたことだ。
そこで、これまでのクローラベースから、能動的にデータを取得しにいく仕組みへと大きく作り変えた。
今回の作り直しには Claude Code を活用した。 パフォーマンスの調整が一番の肝だったが、GraphQL によるデータ取得への移行や、適度な並列実行の導入など、実行速度とメモリ利用量の安定化を Claude との壁打ちを通じて進めた。
自分一人で向き合っているとまとまった時間が必要だった最適化も、AI に課題を投げて試行錯誤してもらうことで、現実的な実装にスムーズにたどり着けたのは大きな収穫だった。
おわりに
動かなくなったものをそのままにするのではなく、終わらせるべきものは終わらせ、活かせるものは今の技術で蘇らせることができた。
久しぶりの OSS メンテは、単なるコードの修正以上に、自分自身のプロダクトにとこれまで経験を再確認する良い機会になった。 復活した starseeker が、いまでも使ってくれている数十人の方々の役に立てば嬉しい。




