localStorage
API браузера для хранения небольших объёмов данных (5–10 МБ) на домен — данные живут, пока их явно не удалят.
Синхронный key-value API: localStorage.setItem('theme','dark'). Только строки; для объектов используйте JSON.stringify. Не место для секретов: любой скрипт на странице может это прочитать.