Skip to content

pkeffect/browser-inspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ Storage Inspector

Overly extensive development tools for web browser data storage

A comprehensive web-based developer toolkit for inspecting, managing, and validating browser storage with advanced features including version history, profiles and diff viewing.


✨ Features

A powerful browser storage management tool supporting localStorage, sessionStorage, and IndexedDB.

Core Features

  • βœ… Multi-Storage Support
    • LocalStorage
    • SessionStorage
    • IndexedDB (database and object store selection)
  • πŸ” Real-time Search & Filter - Filter items by key name
  • πŸ“Š Smart Grouping - Automatic grouping by key prefixes (e.g., app:settings, user:data)
  • πŸ“ˆ Storage Statistics - Visual usage meter and item count
  • πŸ”„ Auto-refresh - Detects changes from other tabs
  • πŸŒ“ Dark/Light Theme - System-aware theme with manual toggle

Data Management

  • βž• Add Items - Create new storage entries with type detection
  • ✏️ Inline Editing - Click any key or value to edit in-place
  • πŸ—‘οΈ Delete Items - Remove individual items or clear all storage
  • πŸ“‹ Copy to Clipboard - One-click copy of key-value pairs
  • πŸ“€ Import/Export - Backup and restore storage as JSON files

Advanced Features

  • πŸ”€ Data Type Detection - Automatically identifies and displays data types:
    • String
    • Number
    • Boolean
    • Object
    • Array
  • πŸ“ JSON Editor - Full-featured modal editor for complex objects
  • πŸ“œ Version History - Tracks up to 10 revisions per key (localStorage/sessionStorage only)
  • πŸ”€ Diff Viewer - Compare current value against previous versions
  • πŸ’Ύ Profile System - Save and load complete storage snapshots
  • πŸ‘οΈ Column Visibility - Toggle which columns to display
  • πŸ”½ Collapsible Groups - Expand/collapse grouped items
  • ⚑ Sortable Columns - Sort by type, key, or value

πŸš€ Getting Started

Installation

  1. Clone the repository

    git clone https://github.com/pkeffect/storage-inspector.git
    cd storage-inspector
  2. Open in browser

    # Simply open index.html in your browser
    # Or use a local server:
    python -m http.server 8000
    # Then navigate to http://localhost:8000

No build process or dependencies required! This is a pure client-side application. Drop into any http server.


πŸ’» Usage

Storage Inspector

Basic Operations

  1. Select Storage Type - Choose from dropdown (localStorage, sessionStorage, or IndexedDB)
  2. For IndexedDB: Select database and object store from the additional dropdowns
  3. Add New Item:
    • Select data type (String, Number, Boolean)
    • Enter key and value
    • Click + button
  4. Edit Item - Click on any key or value cell to edit inline
  5. Delete Item - Click trash icon next to item
  6. Search - Type in search box to filter by key name

Advanced Operations

Version History & Diff:

  1. Click the "View" (πŸ‘οΈ) button on any item
  2. Click "Compare Versions" in the modal
  3. Select a previous version from dropdown
  4. View side-by-side comparison with highlighting

Profiles:

  1. Click "Save Profile" button
  2. Enter a name for your profile
  3. Load profiles from dropdown
  4. Manage profiles with "Manage Profiles" button

Import/Export:

  • Export: Click "Export" to download current storage as JSON
  • Import: Click "Import" and select a JSON file

🎨 Theme Support

The application automatically detects your system theme preference and includes a manual theme toggle.

  • πŸŒ™ Dark Mode - Low-light optimized color scheme
  • β˜€οΈ Light Mode - High-contrast light theme
  • πŸ”„ Toggle Button - Located in the navigation bar
  • πŸ’Ύ Persistent - Theme preference saved to localStorage

πŸ—οΈ Architecture

File Structure

storage-inspector/
β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ main.css
β”‚   β”œβ”€β”€ storage-inspector.css
β”‚   └── theme-switcher.css
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ storage-inspector-api.js
β”‚   β”œβ”€β”€ storage-inspector-bookmarklet.js
β”‚   β”œβ”€β”€ storage-inspector-main.js
β”‚   β”œβ”€β”€ storage-inspector-profiles.js
β”‚   β”œβ”€β”€ storage-inspector-revisions.js
β”‚   β”œβ”€β”€ storage-inspector-ui.js
β”‚   β”œβ”€β”€ theme-switcher.js
β”‚   └── utils.js
β”œβ”€β”€ index.html
└── storage-inspector-widget.html

Module System

The application uses ES6 modules for clean separation of concerns:

  • storage-api.js - Pure storage operations (CRUD, IndexedDB helpers)
  • storage-ui.js - UI rendering and DOM manipulation
  • storage-main.js - Controller coordinating API and UI
  • storage-profiles.js - Profile save/load functionality
  • storage-revisions.js - Version history tracking

πŸ”§ Technical Details

Storage Limits

  • localStorage: ~10MB (5-10MB typical)
  • sessionStorage: ~10MB (5-10MB typical)
  • IndexedDB: Much larger (50MB+ typically, varies by browser)

Browser Compatibility

  • βœ… Chrome/Edge (Chromium) 90+
  • βœ… Firefox 88+
  • βœ… Safari 14+
  • ⚠️ IndexedDB features may vary by browser

🎯 Use Cases

  • πŸ” Debug Storage Issues - Inspect and modify browser storage in real-time
  • πŸ“¦ Data Migration - Export storage from one environment, import to another
  • πŸ”„ Version Tracking - Monitor changes to critical configuration values
  • πŸ§ͺ Testing - Quickly set up test data scenarios
  • πŸ“Š Data Analysis - Examine storage patterns and usage
  • πŸ”€ Compare Changes - Identify exactly what changed between versions
  • βœ… Validate Data - Ensure JSON/YAML data is properly formatted

πŸ›‘οΈ Privacy & Security

  • βœ… 100% Client-Side - No data is sent to any server
  • βœ… No Analytics - No tracking or telemetry
  • βœ… No External Requests - Works completely offline
  • βœ… Open Source - Full code transparency
  • ⚠️ Local Only - Storage changes affect your current browser only

πŸ› Known Limitations

  • IndexedDB support is read-only for complex key paths
  • Revision history only available for localStorage/sessionStorage (not IndexedDB)
  • Very large objects (>1MB) may cause performance issues in diff viewer
  • Some IndexedDB object stores with auto-increment keys may have limited edit capability
  • Check js/storage-inspector-bookmarklet.js for using this on any domain as a Bookmarklet

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. πŸ› Report Bugs - Open an issue with details
  2. πŸ’‘ Suggest Features - Share your ideas
  3. πŸ”§ Submit PRs - Fork, create branch, submit PR
  4. πŸ“– Improve Docs - Help make documentation clearer

Development Setup

# Clone repository
git clone https://github.com/pkeffect/storage-inspector.git

# No build step needed! Just open index.html
# Or run a local server:
python -m http.server 8000

Code Style

  • Use ES6+ features
  • Follow existing code structure
  • Add comments for complex logic
  • Keep functions small and focused

πŸ“„ License

MIT License - see LICENSE file for details

Copyright (c) 2025 pkeffect


πŸ™ Acknowledgments

  • jsdiff - Text diffing by Kevin Decker

πŸ“ž Support


πŸ—ΊοΈ Roadmap

Future features under consideration:

  • Cookie inspector/editor
  • Cache Storage viewer
  • Service Worker inspector
  • Export to different formats (CSV, XML)
  • Bulk operations (regex find/replace)
  • Storage quota information
  • Encryption/decryption tools
  • Data visualization/charts
  • Comparison between storage types
  • Automated testing tools

Made with ❀️ for developers

⭐ Star this repo if you find it useful!

About

Overly extensive development tools for web browser data storage

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors