Skip to content

Design pillar: consent mode / GDPR-safe deferred load #7

@productdevbook

Description

@productdevbook

Loader must not fire on module import. Consumers gate it behind CMP (OneTrust, Cookiebot, Iubenda, etc.).

Evidence

Contract

  1. `load()` must be explicitly invoked — nothing happens on import.
  2. `load({ defer: "idle" | "interaction" | "manual" })` strategies:
    • `idle` (default) — `requestIdleCallback` with polyfill
    • `interaction` — load on first `pointerdown` / `scroll` / `keydown`
    • `manual` — user calls `resume()` after consent
  3. `region: "eu" | "us"` flag for HubSpot (`js-eu1.hs-scripts.com`), Zendesk (EU subdomain), Intercom (`api-iam.intercom.io` regional).
  4. Integrations doc: OneTrust, Cookiebot, Iubenda, Tarteaucitron snippets.
  5. Partytown integration recipe (see `Run Intercom through Partytown devrnt/react-use-intercom#741`).

Metadata

Metadata

Assignees

No one assigned

    Labels

    competitor-analysisDerived from OSS competitor issue patternsdesign-pillarCore design decisionsgdprConsent mode / region selectionperformanceBundle size, LCP, lazy-load

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions