2rab-app は名前だけ見ると 2rabbits 系のアプリ試作っぽいけど、中身はだいぶ違うものになった。実態は 小さい dev ツールの寄せ集め で、年末に「もう一区切りつけるか」と push したリポ。

最初の init は 2024年7月。きっかけは bolt.new で適当に画面を作ってみたかっただけで、csv to json の変換ツールから始まった。.bolt/prompt がそのまま残っていて、「shadcn/ui と Tailwind と lucide-react で、cookie cutter じゃない見た目で」みたいな指示で生成していた跡がある。

結局なにを詰め込んだか

src/components/ を見返すと、思いつきで足したツールが並んでいた。

  • CSV → JSON コンバータ
  • HEIC → JPEG 変換(これは別で記事にもした)
  • カラーピッカー
  • QR コードジェネレータ
  • ハッシュジェネレータ(crypto-js)
  • Diff Viewer(diff)
  • 画像コンバータ / Image Share
  • ポモドーロタイマー
  • Mermaid ジェネレータ(mermaid)

package.json の name が devkit-tools になっていて、途中から自分用の devツール箱として扱っていたのが分かる。React + Vite + shadcn/ui で、デプロイは Cloudflare Pages(wrangler pages deploy dist)。

ハマったところ

7月の初期コミットに Suspense非同期処理、親にSuspense入れる必要あった というメモが残っていた。子側だけで Suspense を握っているつもりが、親にも置かないと期待どおりに fallback が出ない、というやつ。bolt.new が吐いたコードをそのまま動かそうとして引っかかったんだと思う。

あとは年末(12/28)の最後のコミットで、Mermaid の書き出しを高解像度 SVG にしたくて canvas と画像のスケーリング係数をいじっていた。書き出し画質はこういう細かい調整で地味に変わる。

おわり

ツールごとに別リポにする手もあったけど、2rab-app に全部ぶら下げておくと、ちょっとした変換やジェネレータが欲しい時に1か所で済むのが楽だった。bolt.new で雑に作って Cloudflare Pages に投げる、の流れは小物ツールにかなり向いてそう。

HEIC 変換みたいに「これは単体で使う」と思ったものは、あとで切り出して別ページにした。年末の技術検証リポの典型で、2025年の 2rab-analytics 方面にもつながっていく。