posthog-events.md 2.7 KB


description: PostHog analytics setup, env vars, and event taxonomy for the site.

load-when: Adding a new analytics event, debugging missing events, or rotating the PostHog project key.

PostHog events

Region: PostHog EU cloud (https://eu.i.posthog.com). Client-side only — no server-side capture in this project. Initialization lives in a custom theme module loaded via clientModules in docusaurus.config.ts.

Environment variables

Var Purpose
POSTHOG_KEY Project key (phc_…).
POSTHOG_HOST https://eu.i.posthog.com (EU region).

Lives in .env.local for dev. For production deploys, set both as Cloudflare Pages environment variables on the project.

Event taxonomy

Event When Properties
$pageview Auto on every navigation. $current_url, $pathname, $referrer.
outbound_link_clicked Click on a[href] whose host is not gazperi.com href, text, pathname (origin page).
internal_nav_clicked Click on internal <a> (Docusaurus <Link>). to, text, pathname.
docs_entry_visited Route change into /educacao/*. slug, title, referrer_pathname.

No personal data captured. No identify() call. Anonymous device-level analytics only.

Add a new event. Edit the PostHog client module (src/posthog/init.ts or wherever the listeners live). Use posthog.capture('event_name', {key: value}). Keep names snake_case.

Test locally. npm run start, open the page, trigger the action. Check PostHog Live Events panel. Events should appear within ~5s.

Add to dashboard. In PostHog UI → "Site — starter" dashboard, add an Insight on the new event. Pin to dashboard.

Rotate the project key. Generate a new key in PostHog. Update .env.local for dev and the Cloudflare Pages env var for production. Redeploy.

  • Capturing PII (email, full name) in event properties — violates LGPD posture for this project.
  • Adding events without updating this file's taxonomy table — dashboard drifts from code.
  • Using the US PostHog host (app.posthog.com) — project is EU-only.