Local Storage & Offline-First Design: Privacy-First Architecture
Your lists, options, and wheels are yours alone. Discover how we store configuration data directly in your browser, enabling zero-latency loading and complete offline functionality.
Zero Database, Absolute Privacy
Most web applications send your inputs to a remote server, where they are indexed and stored in a database. At GameWheelClub, we built our tools with a privacy-first, client-only architecture. All items, custom weights, visual colors, and presets stay on your device, stored securely in your browser's sandbox.
1. The Benefits of Local Storage
Client-side data persistence means that we rely entirely on browser-native storage mechanisms. Rather than authenticating with username/password databases or transferring lists over HTTPS, we store your configuration objects locally.
This approach provides three fundamental advantages:
- Instantaneous Load Times: Retrieving configurations from local solid-state drives takes fractions of a millisecond, completely bypassing the network delay associated with fetching from remote databases.
- Data Sovereignty: Confidential rosters, corporate brainstorming sessions, and trade secrets never leave your device. They cannot be leaked or audited on our server because they simply do not exist on our servers.
- Offline-First Availability: If you are a teacher working in a school with spotty Wi-Fi, or an event presenter in a remote conference room, your saved wheels will load and function without any internet connection.
This architectural design is implemented across all our key tools. For example, your settings in the Wheel of Names are retrieved locally. Similarly, user configuration settings on the Decision Wheel load instantly.
2. The Engineering: JSON Serialization & LocalStorage API
When you make adjustments to a wheel or change its colors, GameWheelClub automatically serializes the layout parameters into a string and saves it via the browser's localStorage API.
Since browser local storage only supports raw string values, we use JSON serialization:
- Serialization: Convert state objects (arrays of names, weight integers, hex color arrays) into a single string using
JSON.stringify(). - Commit: Save the string using unique keys like
gamewheelclub_saved_wheels. - Deserialization: Retrieve the string using
localStorage.getItem()and convert it back into active state objects usingJSON.parse().
State Persistence Implementation
// Saving current wheel state locally
const wheelState = {
items: ["Alpha", "Beta", "Gamma"],
weights: [1, 2, 1],
theme: "retro-arcade"
};
try {
const serialized = JSON.stringify(wheelState);
localStorage.setItem("gamewheelclub_wheel", serialized);
} catch (e) {
console.error("Storage error:", e);
}Storage limits are bounded by the browser (usually 5MB per domain), which supports thousands of stored wheels.
3. Offline-First Architecture & Service Workers
1. App Caching
When you load GameWheelClub with an active internet connection, our assets (HTML, CSS, JS, fonts) are cached in the browser cache storage. The app can then run entirely without a network connection.
2. Local State Access
Because data is fetched from local storage rather than an online SQL server, you can load your saved configurations without internet access. Perfect for remote workshops.
3. Data Portability
Want to move your lists to another machine? Our export feature allows you to download a JSON file containing all configurations, which you can import on another computer.
Frequently Asked Questions (FAQs)
Will clearing my browser cache delete my saved wheels?
Yes. If you manually run "Clear Browsing Data" and include "Cookies and other site data," local storage will be cleared. To prevent accidental data loss, we recommend downloading your key wheels using our export backup feature.
Can I sync my saved wheels between my computer and my phone?
Because local storage is sandboxed to the specific browser on the specific device, automatic synchronization is not supported out of the box (to maintain absolute privacy). You can easily migrate wheels by exporting them as JSON files and sending them to your phone.
Is my data secure from other websites?
Yes. Browsers enforce the Same-Origin Policy. This security model guarantees that only JavaScript executing on the gamewheelclub.com domain can read or write data saved under the GameWheelClub key. No other website can access your configurations.
Protect Your Decisions Offline
Open the name selector wheel or the custom choice spinner and know that your sensitive lists remain completely local, safe, and secure.