Screen-level read logging

A beacon records which screen a staff member opened inside a customer account, because the app navigates by hash route and the server would otherwise never know.

What it is

A tiny client component mounted once in the app shell. It sends a path and a title on every route change and nothing else. The endpoint ignores anyone who is not platform staff, so it is inert for customers.

Also called: page view audit · what did support look at · read trail · snooping detection

See it
Screen-level read logging
CustomerBuildingAmountStatus
Gideon AltHobby Shop$7,090Draft
Marlin HooverRiding Arena$11,650Draft
Gideon AltBarndominium$5,570Sent
Ivy BrubakerRiding Arena$11,650Sent
Delia YoderBarndominium$12,790Open
An audit row list showing consecutive 'Viewed a screen' entries with dwell time between them inside one customer account. Sample data — no customer information appears here.
How it works
  1. 1On mount and on every hash or history change it sends the current path.
  2. 2Repeated identical paths are skipped, so it writes one row per screen rather than per re-render.
  3. 3The request uses keepalive, so a click that navigates away still delivers the row it was about to write.
  4. 4Rows join the audit log as 'Viewed a screen' events and feed the session grouping.
Why we built it

The component says why it is deliberately dumb: 'the audit question is "did they open this customer's contacts", which a route answers, and anything richer would mean copying customer data into a second store to answer a question nobody asked.' API traffic says what staff touched; this says what they READ, 'which is the half an audit of snooping depends on' (mig 216).

The problem
  • Hash routing meant screen navigation never reached the server, so reads were invisible.
  • A write-only audit cannot detect someone browsing data they had no reason to see.
Sound familiar?
What you get
Reads are auditable, not just writes.
No customer data is copied into a second store to achieve it.

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 →