Web アプリとブラウザ拡張を連携させる — postMessage ブリッジと declarativeNetRequest
学習アプリのポモドーロと連動して、フォーカス中だけ誘惑サイトをブロックする拡張機能「adalab shield」の連携設計を解説。postMessage によるプロトコル設計、なりすまし対策、declarativeNetRequest でのページ読み込み前ブロックを紹介します。
自分が困ったものを、自分のために作っています。
大学の勉強と作業を並行していて、タイマー・TODO・学習記録アプリを3つ行き来するのが面倒でした。それなら1つにまとめようと思って作ったのが「adalab focus」です。他のプロダクトも、だいたい「自分が困ったから」という理由から始まっています。
作るときに決めていること
ネットが無くても使えること。サーバーが落ちても手元で完結する作りを優先します。
機能を足すより、迷う画面を減らす。初見で使い方が分かるのを目標にしています。
「たぶん誰か使う」では作りません。自分が困って、自分が毎日開くものだけ作ります。
個人開発なので大企業のような対応速度はありませんが、Discord や X でもらった意見はかなりの割合でそのまま入れています。
今すぐ使えるものと、開発中のもの。ステータスは正直に書いています。

集中力を可視化する PWA。TODO・ポモドーロ・学習記録・統計・カウントダウンを 1 つのダークなネオン画面に。

フォーカス中の誘惑サイトを自動ブロックする、adalab focus 連携の集中ガード拡張機能。
このほか Rem bot・Navi・Sumio・QRaft などを開発中です。
開発中のものも含めて全部見る最新の技術記事やプロジェクトの進捗をお届けします
学習アプリのポモドーロと連動して、フォーカス中だけ誘惑サイトをブロックする拡張機能「adalab shield」の連携設計を解説。postMessage によるプロトコル設計、なりすまし対策、declarativeNetRequest でのページ読み込み前ブロックを紹介します。
Web アプリのタイマーをカウントダウン変数で実装すると、タブのバックグラウンド化やリロードで簡単に壊れます。「開始時刻だけを持ち、残り時間は毎回計算する」タイムスタンプ方式の設計と、複数タブ同期・リロード復元の実装を adalab focus の実例で解説します。
常駐サーバーなしで Google OAuth 2.0 ログインを実装する方法を解説。Authorization Code Flow + PKCE の仕組み、Cloudflare Pages Functions でのトークン交換、自前 JWT によるセッション管理まで、adalab focus の実装をベースに紹介します。
ブラウザで今すぐプレイ可能!オンライン対戦でスキルを競い合おう
実際にプロダクトで使っている技術です。数を増やすより、使い慣れたものを深く使う方針でやっています。
最新のお知らせ
TODO・ポモドーロタイマー・学習記録・統計・試験カウントダウンを 1 つにまとめた集中管理アプリ「adalab focus」を公開しました。PWA としてスマホにもインストールでき、Google アカウントでログインすると PC とスマホで自動同期、オフラインでも動作します。学習時間のシェア画像生成や、同じ時間に勉強している人が見えるランキングなどコミュニティ機能も搭載しています。study.adalabtech.com からご利用いただけます。
adalab focus のポモドーロと連携し、フォーカス中は YouTube や TikTok などの誘惑サイトを自動でブロックするブラウザ拡張機能「adalab shield」v0.2 を GitHub で公開しました。休憩中は自動で解除され、ブロック画面にはフォーカスの残り時間と取組中のタスクが表示されます。現在ストア申請を準備中です。
AIと対戦できるリバーシ(オセロ)ゲームを公開しました。かんたん・ふつう・むずかしいの3つの難易度に加え、実績システムやオンライン対戦機能も搭載しています。