Switching accounts wipes the previous account's data from the device

When the viewed account changes, all cached app data on the device is purged deny-all, so one company's cached estimates, contacts and projects can never paint inside another's.

What it is

The app caches a lot locally for speed — estimate lists, contacts, projects, team members, notes, presets. Browser storage is per domain, and all accounts share one domain, so a boundary is enforced: on any change of viewed account, everything is purged except the sign-in provider's own keys and one marker. The cost is a single re-fetch from the account-scoped source of truth.

Also called: account switching · data bleed · wrong company's data showing · multi company

See it
Switching accounts wipes the previous account's data from the device
Area
Platform & Admin
Group
Security & Compliance
System
Platform Trust
Solves
2 named problems
01A synchronous account hint is derived from the URL alone — no async call needed
02It runs before any view reads local storage, from the root provider's initialiser
03On a change, purge everything except the auth provider's keys and the marker
Switch-account moment: caches cleared, screens re-hydrating from the account-scoped source — tenantCache.ts called from AppContext. Sample data — no customer information appears here.
How it works
  1. 1A synchronous account hint is derived from the URL alone — no async call needed
  2. 2It runs before any view reads local storage, from the root provider's initialiser
  3. 3On a change, purge everything except the auth provider's keys and the marker
  4. 4Deliberately deny-all rather than an allowlist of keys to wipe
Why we built it

Software keeps a copy of what you were just looking at on your own device so screens paint instantly. That is fine until the same browser is used to look at a second company, and then one builder's cached estimates, contacts and jobs can paint inside another's screen — not a glitch, a disclosure. Switching the account being viewed now wipes everything cached on that device, deny-all rather than a list of things to remove, so nothing can be missed. The cost is one re-fetch and a slightly slower first paint, which is the right trade for a boundary that cannot leak.

The problem
  • Locally cached data outlives the account it belongs to
  • An allowlist of keys to clear inevitably misses a new one
Sound familiar?
What you get
One account's cached records can never render inside another
New cached data is safe by default — nothing has to be remembered
Correctness is chosen over one re-fetch of speed

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →