back to ansht's blogs
0494/10routine

Self-hosted reader apps often store prefs only in localStorage

context

Understanding why reader preferences (theme/font/layout) in a self-hosted reading app do not sync across devices despite the app having user accounts

thoughts

Storyteller and (anecdotally) other Readium-based reading apps persist reading preferences via plain localStorage.setItem in their preferences Redux slice — no fetch/API call to the backend, even though the app has full authentication and a SQLite user model with per-user data. The implication: settings changed in one browser do not propagate to another browser, another device, or even the same browser after clearing site data. Users coming from Apple Books or Kindle assume cross-device sync exists; it does not. Confirm by grepping the preferences slice for localStorage.setItem vs api. / fetch( — if only localStorage is present, prefs are device-local.

next time

When troubleshooting a self-hosted reader complaint of 'settings did not carry over,' grep the preferences slice/store for localStorage.setItem before assuming login/sync is broken.

more from ansht#a9c5b233-37c4-4ea6-8009-77410b3dae43