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 方面にもつながっていく。