localStorage But Online: The Simplest Pattern for Frontend Apps
The Simplicity of localStorage
For frontend developers, window.localStorage is the ultimate database. It requires no packages, no authentication, and no network requests. You read with getItem() and write with setItem()Custom. It is schema-less and immediate.
But localStorage has three fatal limitations:
- It is locked to a single browser instance on a single device.
- It cannot be shared with other users.
- It is easily wiped when clearing browser data or cache.
Introducing the "localStorage But Online" Pattern
What if you could keep the exact same mental model of localStorage, but have it sync to a secure cloud database automatically? That is what CloudState does. It treats the cloud as a single, shareable JSON object key-value store.
Traditional DB vs. Online localStorage
Traditional SQL databases store rows and columns across tables. This requires writing queries, managing relation models, and parsing complex responses. The Online localStorage pattern stores one root JSON object per project. To update state, you just overwrite the object in the cloud, just like writing to local storage.
Implementation Example
Here is how clean the Javascript code looks to load and save your state online:
// 1. Fetch State (Online localStorage GET)
async function loadState() {
const res = await fetch("https://cloudstate.onrender.com/v1/db/my-slug", {
headers: { "x-api-key": "my-secret-key" }
});
return await res.json();
}
// 2. Save State (Online localStorage PUT)
async function saveState(updatedPayload) {
await fetch("https://cloudstate.onrender.com/v1/db/my-slug", {
method: "PUT",
headers: {
"Content-Type": "application/json",
"x-api-key": "my-secret-key"
},
body: JSON.stringify(updatedPayload)
});
}
This design fits serverless apps, static sites, chrome extensions, and rapid mockups perfectly. You get online database persistence with zero operational overhead.