AIニュースBingoを公開:毎日変わる5x5盤をXへ共有できるPWA
ブログ内の /apps/ai-news-bingo/ で遊べるAIニュース向けビンゴPWAを公開。主な機能、使い方、裏側の仕組み、今後の改善アイデアをまとめました。
AIニュースBingoを公開:毎日変わる5x5盤をXへ共有できるPWA
GitHub Pages 上に置いた軽量PWA「AIニュースBingo」を公開しました。アプリ直通リンクは /apps/ai-news-bingo/。
毎日増えていくAI関連ニュースをそのまま楽しめる小ネタとして、5×5 のビンゴ盤で「今日のトレンド用語」を追いかけられます。ブログの「アプリ」タブからもアクセス可能です。
どんなアプリ?
- 日付シードで盤面が固定される 5×5 ビンゴ。中央マスは FREE。
- 用語は
words.json(AIニュース要素を手作業で選定)から抽選し、カテゴリ別に色分け。 - 画像出力(PNG)して X にそのまま添付できる共有メッセージを生成。
- PWA 対応でオフラインでも遊べ、ホーム画面追加プロンプトを内蔵。
使い方
- /apps/ai-news-bingo/ にアクセスすると、その日の AI ニュース語彙で埋まった盤面が生成されます。
- 「日付シード」で過去・未来の日付を選ぶと、その日付の話題に基づいた盤面を再現。
- 「もう一枚」で派生シード(同日付で別の組み合わせ)を作成。
- Bingo を作ったら「画像を書き出す」でPNGを保存するか、「Xで共有する」でテキスト+画像URLを添付。
- 右下のインストールボタンからホーム画面に追加すればオフラインでも利用できます。
技術メモ
- すべて静的ファイルで構成し、
apps/ai-news-bingo/ディレクトリだけで完結。Jekyll 側のビルド設定変更は不要でした。 sw.jsは Network-First → Cache-Fallback 戦略。盤面生成に必要な JSON は日次で更新される想定なので、更新検出用にupdate-bingo-words.ymlワークフローでwords.jsonを定期取得。- 画像書き出しは canvas +
toDataURLを使い、<a id="download">に一時的な blob URL を割り当ててダウンロード。HTML Proofer の警告回避のために空リンクへhref="#"を入れたのが今回のデプロイ修正ポイントです。 - UI はプレーン CSS。カテゴリ色は
categories.jsonでまとめ、JS 側で割り当てています。
今後やりたいこと
- 用語リストを自動更新するスクリプトの公開(ソースは
scripts/update_bingo_words.mjs)。 - Bing/Google ニュースRSSを解析し、ニュース本文へのリンクを盤面に添える拡張。
- Bingo 達成ライン数をベースに X 投稿テンプレートを自動生成。
- 週次でランキング的な共有(何人が Bingo 達成したか)を作るかも検討中。
ぜひ遊んでみて、改善アイデアがあれば教えてください!
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。