GameWheelClub LogoGameWheelClub
Home/Features/Local Storage

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:

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 using JSON.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.