StorageSync.js is a lightweight JavaScript utility for synchronizing localStorage data across tabs and sessions — with namespacing, change detection, and intuitive API support.
📦 Easy to use. 🧠 Built for real-world use-cases. 💬 Keeps your app state in sync across tabs.
npm install storagesync-js
Managing localStorage
is easy — but syncing it across tabs with clean namespacing and change listeners is not .
This package wraps native storage with powerful features:
- Namespaced key management
- Change detection with
.onChange()
- Simple
.set()
,.get()
,.remove()
, and.clear()
methods - Zero dependencies
import StorageSync from 'storagesync-js'; // Create a namespaced storage instance const store = newStorageSync('app'); // Set data store.set('token', 'abc123'); // Get data const token = store.get('token'); // Listen for changes across tabs store.onChange((e) => { console.log('Storage changed:', e); });
Creates a new instance with the given namespace. All keys will be stored as namespace:key
.
Stores a key-value pair in localStorage.
Retrieves a value by key. Automatically parses JSON.
Removes a key from storage.
Clears all keys under the current namespace only (does not affect global localStorage).
Fires a callback whenever localStorage changes in another tab or window for the current namespace.
- Shared auth tokens across tabs
- Tab-specific session data
- Synced feature toggles or theme preferences
- Building offline-friendly apps
This project is licensed under the MIT License.
Pull requests, suggestions, and issues are welcome! If you find a bug or want a feature, feel free to open an issue or PR.
Created by Alan Thomas – a passionate full-stack developer.
Let’s connect on GitHub!