blog.bouzuya.net

2026-04-29 bouzuya/shiori-web を 1.0.0 にした

bouzuya/shiori-web を 1.0.0 にした。 2026-04-04 にも書いた 2026-04 の目標。

shiori-web は以前つくった bouzuya/shiori というブックマークを管理する Android アプリの Web 版。互換性はなく名前を引き継いだだけのもの。

機能は次の 3 つ。

  • Google による OIDC 認証
  • ブックマークの追加
  • ブックマークの更新
  • ブックマークの削除

認証と単一リソースの管理だけがある単純な Web アプリケーション。

特徴のひとつとして、今回は JavaScript を使用しない古典的な Web アプリケーションになっていることが挙げられる。動きとしてどうしても劣る部分はあるけれど、個人的には素朴で安心感があるし、十分だと考えている。

実装。言語は Rust を使用している。 Cloud Run + Firestore で動作している。 crates:axum と自作の bouzuya/bouzuya-firestore-client を使っている。

bouzuya-firestore-client の試用もまた今回のねらいのひとつだった。それなりに機能した一方で、コレクションクエリを発行できない状態は厳しかった。あとはデータベースを (default) 以外に設定しようとしたことに起因する問題もあった。ドキュメントや例が不足していたりするせいか、コーディングエージェントが迷っている (?) ように見えた。

あとは JavaScript なしの古典的な Web アプリケーションにした影響もあり、 HTTP のメソッドを自由に使えなかったり、 JSON ではなく HTML を返したりリダイレクトしたり、 application/x-www-form-urlencoded を処理することになったり……。最近は見ていないものをいろいろ見ることになって新鮮だった。

しばらく使ってみて改善はしたいと思う。

現時点で分かっている残作業は bookmarklet の準備。今後直すべき点は bouzuya-firestore-client の collection query 対応を待ってページネーションを適切に実装する (データ増加によるパフォーマンスの問題の解決) こと。

OIDC 認証部分は bouzuya/tsukota-web 側も同様のつくりに変えたい (あちらも同様にパフォーマンスの問題がある) 。

ひとまず今月も形式的には目標を達成できて良かった。


今日のコミット。