localStorage gives every website ~5MB of permanent key-value storage in the browser โ no server, no database, no login.
The whole API
localStorage.setItem("theme", "dark");
localStorage.getItem("theme"); // "dark" (null if missing)
localStorage.removeItem("theme");
localStorage.clear();Objects need JSON
localStorage.setItem("user", JSON.stringify({ name: "Priya", cgpa: 8.9 }));
const user = JSON.parse(localStorage.getItem("user") ?? "{}");The three storages
- localStorage: forever, ~5MB, never sent to server
- sessionStorage: same API, dies with the tab
- Cookies: ~4KB, sent with EVERY request โ only for things the server needs (sessions)
Real example โ remember dark mode
if (localStorage.getItem("theme") === "dark") document.body.classList.add("dark");
toggle.onclick = () => {
const dark = document.body.classList.toggle("dark");
localStorage.setItem("theme", dark ? "dark" : "light");
};Never store passwords or tokens for sensitive apps โ any script on the page can read localStorage. Our DSA judge uses it to save your progress.