Hyunseok Byun · ビョン・ヒョンソク
Badge — 動的PNGバッジ生成サービス
Badge — 動的PNGバッジ生成サービス
01 / 02
Utils·稼働中·2026-02: 進行中

Badge

動的PNGバッジ生成サービス

URL クエリだけでテキスト・色・アイコン・Tailwind クラスを受け取り、PNG バッジを即時生成します。

技術スタック

HonoBunSatoriWASMVercel

制作の動機

shields.io の存在は知っていましたが、いつサービス終了するかわからない外部サービスに依存したくありませんでした。 過去に Next.js の @vercel/og が Satori を使っていたことを思い出し、「自分も Satori で作ってみよう」と動機づけられました。

コメント

最小のコードで最も頻繁に使われるツールです。 README 1 行のバッジが毎日表示される状況で、外部サービスに依存せず自身でコントロールしています。

主な特徴

  • 01Satori (JSX → SVG) + @resvg/resvg-wasm (SVG → PNG) パイプラインを Hono 上に自前で組立
  • 02Vercel 関数で wasm ファイルパスを直接掴んで初期化する環境分岐処理
  • 03URL クエリだけで全てカスタマイズ: Tailwind クラスを URL にそのまま渡せる (tw-to-css)
  • 04内蔵アイコンスラッグ + 任意の favicon を読込 (icojs で .ico 動的デコード)
  • 05韓国語フォント (Noto Sans KR) 内蔵で韓国語バッジ生成可

備考

  • ·単発開発 (1日): 必要な機能だけを作ると決めて実装 (YAGNI)
  • ·将来的に b-hub 統合時、ユーザー別バッジリスト・お気に入り・履歴を追加予定