ActiveManage Docs ← Back to activemanage.co.uk

Remember State Across Sessions

One of the biggest UX wins of an installed PWA is that the app feels stateful — you reopen it and you're back where you left off. This article covers what's remembered, how the state survives device reboots, and how to tune retention.

Diagram showing PWA closed mid-task → user reopens later → same page restored with filter state, scroll position, draft form contents, open record IDs all preserved

What Can Be Remembered

  • Last visited URL: User reopens to where they were.
  • Active filters: Saved per-page so list views remember their state.
  • Draft form contents: Unsaved input persisted; restored on reopen.
  • Scroll position: Long pages restore to the previous scroll.
  • Open tabs / panels: Multi-pane UIs remember which panes were open.
  • Selection: Active rows in browse views.
  • Search query: The query that produced the current results.

Where State Lives

  • LocalStorage: Per-domain key-value store, persistent across sessions.
  • IndexedDB: Structured storage for larger state (drafts, cached records).
  • Service Worker cache: Page shells and assets for fast reopen.
  • Session cookie: Authentication, refreshed via long-lived refresh tokens.

Privacy and Cleanup

Users can clear stored data by uninstalling the PWA. From inside the app, a “Clear local data” action wipes all state without signing out from the server. Useful when a device is shared or before lending it out.

Worked Examples

  • Field engineer logs a job: Power dies mid-form. Reopens app, draft preserved, finishes and submits.
  • Support agent on long ticket: Closes laptop overnight. Reopens, scroll position restored, comments draft preserved.
  • Multi-step booking: User abandons booking flow mid-way, returns next day, finds step 3 of 5 still in progress.
  • Filter state: User filters tickets to assignee=me and priority=high; closes app; reopens; filters still applied.