増え続けるブラウザのタブは、現代のナレッジワーカーが抱える普遍的な課題だ。
「後で読む」つもりで残したタブがメモリを食いつぶし、何より集中力を削ぐノイズとなる。
この問題を解決するために、Snooooze を開発した。
タブを一時的に閉じ、指定した時間に自動で再開させるChrome拡張機能である。
- Chrome Web Store: https://chromewebstore.google.com/detail/gncjidjnndmkohhhnijekcjiakmllonk
- Website: https://mtskf.github.io/Snooooze/
- Github repo: https://github.com/mtskf/Snooooze
設計思想
Snoooozeの設計思想は単純だ。「今必要なものだけを表示する」。
既存のタブ管理ツールは、リスト化やグループ化で整理を促すが、Snoooozeは「視界から消す」ことに特化している。
Zero Friction (摩擦ゼロ)
思考を中断させない操作性を重視した。
マウスでメニューを辿る必要はない。Cmd + . でUIを呼び出し、ホットキーあるいは矢印キーでスヌーズ期間を選ぶ。
すべての操作はキーボードのみで素早く完結する。
Privacy First (プライバシー)
閲覧履歴やタブの情報は、すべてローカル(IndexedDB/Storage API)に保存される。
外部クラウドへデータを送信することはない。
ソースコードはすべてオープンだ。
主な機能
Smart Scheduling
「今日の夕方」「明日」「週末」など、直感的なプリセットを用意した。もちろん日時指定も可能だ。
タイムゾーンを認識するため、移動の多い環境でも正確に動作する。
Auto Restoration
指定時刻になると、タブは自動的にバックグラウンドで復元される。
通知でユーザーの作業を邪魔することはない。気がついた時には、必要な情報がすでにロードされている状態を作り出す。
Flexible Scope
すべてを一律に扱う必要はない。
ひとつのタブを消したい時もあれば、関連するいくつかをまとめて、あるいはウィンドウそのものを視界から遠ざけたい時もあるだろう。
個別のタブ、選択した複数のタブ、そしてウィンドウ全体、Snoooozeはそのすべての粒度に対応する。
それはまるで、読みかけの小説に栞を挟み、静かに本を閉じる行為のようだ。
技術スタック
開発にはモダンなWeb技術を採用した。
- Framework: React, Vite
- Styling: Tailwind, Shadcn
- State Management: React Context, Custom Hooks
- Storage: Chrome Storage API (Local)
今後の展望
解決すべき課題や、次期アップグレードで盛り込みたい機能はまだ山ほどあるが、詳細についてはまた別の機会に譲りたい。
ソースコードはGitHubに置いた。
https://github.com/mtskf/Snooooze
