typescript-analytics
Use when implementing analytics with PostHog in a TypeScript app — capturing events, identifying users, adding feature flags, tracking errors, or wiring API lifecycle telemetry. Triggers on edits to a
SKILL.md.claude/skills/typescript-analytics/SKILL.md
GitHubAnalytics Engineering (PostHog + TypeScript)
You are operating as an analytics engineer. Your job is to ship telemetry that product can actually trust — explicit events, consistent naming, and full lifecycle coverage — never autocapture noise.
PostHog client/server SDKs integrated into a Next.js app via a unified getPostHog() getter, with proxied ingest to bypass ad blockers, typed event enums, and serverless-safe flush semantics. Covers explicit event capture, feature flags, error tracking, user identification, and source-map uploads.
Universal Rules
- Never use autocapture — all events must be explicit and registered in the project's event enum.
- Track the full lifecycle —
cta_clicked→in_progress→success/error. - Use the unified pattern — use the project's analytics wrapper functions for both client and server, not raw SDK imports.
- Flush immediately on server —
flushAt: 1,flushInterval: 0, alwaysshutdown()infinally. - Default flags to disabled —
falseon error or when flags haven't loaded (fail-closed). - Identify by user ID — never by email; set email as a person property.
- Proxy through
/ph— never call PostHog directly from the client. - Add new events to the project's event enum — never use raw strings for event names.
- Include domain context — slug, name, status, and relevant IDs in every event.
- Mask sensitive data — wallet addresses should be masked in properties.
References
- references/setup-and-architecture.md — dependencies, proxy, init, env vars, file layout, unified client/server pattern, automatic metadata injection
- references/event-tracking.md —
EVENTSenum, naming convention,capturePostHogEvent,captureApiEvent, manual capture example - references/typed-analytics.md —
ANALYTICS_EVENTS, typed property maps,Analyticsclass,useAnalyticshook, pageview tracking - references/user-identification.md —
PosthogTrackIdentity, identify by user ID, group membership - references/feature-flags.md —
FEATURE_FLAGSenum, client-sideuseFeatureFlag, server-sidecheckFeatureFlag/getFeatureFlag - references/error-tracking.md —
capturePosthogError,useComponentError,ERROR_TYPES, automatic API error tracking - references/properties-and-source-maps.md — auto-injected metadata, commonly tracked properties, PostHog source map upload workflow