localStorage の仕組みと容量制限
こぴぺったりがどのようにデータを保存しているか、localStorage の容量上限、データが消える条件、安全な使い方の指針を技術的に解説します。
「こぴぺったり」は 完全フロントエンド のアプリで、サーバーにユーザーデータを送信しません。すべてのデータはあなたのブラウザの localStorage という領域に保存されます。本ページでは、その仕組み・制限・注意点を解説します。
localStorage とは
ブラウザが提供する キーと値 のペアを保存する仕組みです。次のような特徴があります。
- 永続的 : ブラウザを閉じても、PC を再起動してもデータは残る
- 同一オリジン限定 : 別のドメインからは読み書きできない
- クライアント完結 : サーバーには一切送信されない
- 同期 API : 読み書きが即座に終わる (サーバー往復がない)
どんなキーを使っているか
「こぴぺったり」が使う localStorage のキーは以下の通り。
| キー | 値 | 用途 |
|---|---|---|
clipapp_folders |
フォルダ配列の JSON | フォルダ階層と並び順 |
clipapp_items |
アイテム配列の JSON | 全アイテムの本体データ |
clipapp_last_folder |
文字列 | 最後に開いたフォルダ ID (UI 復元用) |
clipapp_theme |
"dark" または "light" |
テーマ設定 |
clipapp_drawer_width |
数値 (px) | 左ドロワーの幅 (リサイズハンドルで変更した値) |
DevTools の Application タブ → Storage → Local Storage を開けば、上記のキーを直接確認できます。
容量の上限
ブラウザごとに概ね 5MB 程度 の上限があります。こぴぺったりは 1 つのキーに JSON 文字列としてまとめて保存しているため、UTF-8 換算で約 500 万バイトが理論上の上限です。
実用上の目安
- 1 アイテムが平均 200 文字 (タイトル + 本文 + タグ) と仮定
- 1 文字 ≒ 3 バイト (UTF-8 で日本語混在) と仮定
- 1 アイテムあたり ≒ 600 バイト
- → 上限 5MB ≒ 約 8,000 アイテム
ヘビーユーザーでも数千アイテム程度に収まることが多く、上限まで使い切る可能性は低いですが、長文のテンプレートを大量に保存する場合は注意してください。
容量超過時の挙動
書き込み時に容量を超えると、ブラウザは QuotaExceededError をスローします。こぴぺったりはこれを検知してエラートーストを表示するので、その時点でエクスポートして整理してください。
データが消える条件
localStorage は 永続的 ですが、以下のケースでは消える可能性があります。
1. ブラウザの「サイトデータを削除」操作
ブラウザの設定で「閲覧履歴の削除」「Cookie とサイトデータの削除」を実行すると、localStorage も同時に削除されます。最も多い消失原因です。
定期的にエクスポートしておくことで備えましょう。
2. シークレットモード / プライベートブラウジング
シークレットモードで使った場合、ウィンドウを閉じた時点でデータは消えます。「こぴぺったり」は永続利用が前提のため、通常モードで使ってください。
3. ストレージ容量超過
OS 全体のストレージが逼迫すると、ブラウザがキャッシュやサイトデータを自動削除することがあります (特に Safari)。
4. ドメイン変更
サブドメインを変更したり、独自ドメインから他ドメインに移行した場合、localStorage は オリジン (ドメイン) に紐付くため、自動では引き継がれません。エクスポート → インポートで手動移行してください。
5. ブラウザ拡張機能
一部のプライバシー強化拡張機能は、localStorage を定期的にクリアします。こぴぺったりを使うサイトを「例外」として登録しておくと安心です。
安全に使うための指針
- 月に1回エクスポート : クラウドストレージに保存しておくと万が一のときに復旧可能
- シークレットモードでは使わない : メインデータは通常モードで管理
- 大規模変更の前にスナップショット : 整理前にエクスポートしておく
- 複数端末で同期したい場合は手動移行 : 現在は自動同期非対応のため、エクスポート→インポートで対応
「サーバー保存にしてほしい」というご要望について
サーバー保存は技術的には可能ですが、
- 月額のサーバー運用費が発生する → 有料化が必要
- 通信が必須になる → オフラインで使えない
- パスワード管理・データ漏洩のリスクが発生
など、こぴぺったりが目指す「気軽な、永続的に無料な道具」というコンセプトと矛盾します。当面は localStorage + 手動エクスポートの構成を維持する予定です。
関連ページ
- エクスポート / インポート (JSON / TSV) — バックアップ・移行・スプレッドシート連携の具体的な手順
- プライバシーポリシー — Cookie / localStorage / GA の扱い