Browser recording, replay indexing, identity, and the cross-origin Auth modal
The PostHog browser SDK is used only for identity and Session Replay. Product events go through Zooly's first-party journey endpoint so they can be persisted, sanitized, attributed, and retried centrally.
The client disables:
After initialization, Zooly explicitly starts recording and sends one sanitized $pageview anchor. This anchor gives PostHog an event with the current $session_id, allowing a new recording to be indexed and listed in Replay while normal product events remain server-side.
A visit to zooly.ai is recorded too: the home page, the conference page, PhotoBomb, Personalized Merch, and the other public pages. The visitor does not see a consent banner. The recording uses the same project as the app, shows the page as they saw it, and drops sensitive values from the address bar before they are stored. In Replay, filter these visits with environment = production.
That visit also shows up in Sessions with the replay button an app session has, because the site's journey events carry the visit's recording id.
environment property.$pageview replay anchor is captured./api/me resolves the stable internal identity and calls identify.posthog.reset() runs when the app resets analytics identity, preventing the next user on a shared browser from inheriting the previous identity.
The onboarding login/signup modal renders zooly-auth inside a cross-origin iframe. To make it visible in the parent recording:
recordCrossOriginIframes: true must be active in the shared replay options.If the replay shows a dark overlay but no modal content, use the cross-origin checklist.
In PostHog:
Project-side settings cannot repair a missing or wrong client token. Verify Vercel configuration and deploy first.
Masking, iframe, and SDK changes affect only data captured after the new deployment. Always open a fresh incognito window and create a new session when validating a recorder change.
Stats uses the recording ID stored with the first-party journey and links directly to:
https://us.posthog.com/project/<project-id>/replay/<sessionRecordingId>
This is more reliable than opening Replay search with a query string.
See the PostHog Session Replay privacy controls for the provider's current SDK privacy model.