PostHog
Live audit of your PostHog project — confirms analytics is actually receiving events, the events your code declares are actually firing, and the conversion funnel exists.
Why this matters
The most common Measurable-pillar failure: PostHog is installed, the snippet is in the layout, but no events are flowing. Or the events are flowing but the funnel a founder needs (signup → activation → first value) doesn’t exist. Repo scanning sees the snippet; only PostHog itself can tell you if the data is actually arriving.
Connect PostHog
Generate a personal API key.
PostHog dashboard → Project settings → Personal API keys → Create personal API key. Scope it to read on Events, Insights, and Project. Copy the value (PostHog only shows it once).
Paste into PulseLight.
Project settings → Connected platforms → PostHog → paste the key + your project ID + your PostHog instance URL (cloud or self-hosted). KMS-encrypted at rest; decrypted only at scan time inside the worker.
First scan.
Findings roll into the Measurable pillar on the next scan.
What we verify
Project is receiving events
We query the events endpoint for the last 7 days. Zero events on a project that’s past pre-launch → blocker. Your analytics is a placebo if it’s not getting data.
Declared events fire in production
Cross-references your repo (which we already scan) against the events PostHog has actually received. If your code calls
posthog.capture('signup_completed')but PostHog has zero signup_completed events in the last 30 days, that’s a finding.Activation event exists
For first-100-users-stage projects, we look for an event that looks like activation (activation, onboarding_complete, first_*_created, etc.). No activation event → warning. You can’t measure the funnel that matters most without one.
Funnel insight configured
We check whether at least one Funnel-type insight exists. A workspace with PostHog installed but no funnel is a workspace that’s collecting data without acting on it.
Common findings
POSTHOG-INSTALL-001 — No events in the last 7 days
Project: my-saas (cloud)
Events: 0 in 7d, 0 in 30d
Why: Snippet may be installed but blocked by the user
or never firing. Real users producing zero events
is the same outcome as no analytics at all.
Fix: Confirm posthog-js is initialised on every page;
open the network tab and verify the /capture POST.
POSTHOG-EVENT-001 — Declared event has zero captures
Repo: apps/web/src/lib/analytics.ts:18
Code: posthog.capture('signup_completed', { ... })
PostHog: 0 'signup_completed' events in 30 days
Why: Either the call site never executes, or the event
name is mistyped vs your funnel. Both fail silently.What we don’t do
We never read individual user events or person properties. We only count events by name and pull insight metadata. The full list of API calls we make is in our overview page.
Disconnect
From Settings → Connected platforms → PostHog, click Disconnect. PulseLight purges the API key immediately. You can also revoke the key from PostHog’s Personal API keys page directly.
See also: Connected Checks overview.