AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Api Analytics Setup Posthog

skill-agents-inc-skills-api-analytics-setup-posthog · by agents-inc

PostHog analytics and feature flags setup

No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add skill-agents-inc-skills-api-analytics-setup-posthog

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-agents-inc-skills-api-analytics-setup-posthog)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Api Analytics Setup Posthog? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

PostHog Analytics & Feature Flags Setup

> Quick Guide: One-time setup for PostHog analytics and feature flags. Covers posthog-js client provider, posthog-node server client, and environment variables. PostHog handles both analytics AND feature flags with a generous free tier (1M events + 1M flag requests/month).


CRITICAL: Before Using This Skill

> All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering, import type, named constants)

(You MUST initialize posthog-js only in a client/browser context - it requires browser APIs like window and localStorage)

(You MUST call posthog.shutdown(), posthog.flush(), or use captureImmediate() after server-side event capture to prevent lost events)

(You MUST use defaults: '2026-01-30' for automatic SPA page tracking and latest recommended behaviors)


Auto-detection: PostHog setup, posthog-js, posthog-node, PostHogProvider, analytics setup, feature flags setup, event tracking setup, posthog.init

When to use:

  • Initial PostHog setup in a project
  • Configuring PostHogProvider for client-side analytics
  • Setting up posthog-node for server-side/API route event capture
  • Configuring environment variables for PostHog

When NOT to use:

  • Event tracking patterns after setup (use analytics event tracking skill)
  • Feature flag usage patterns (use feature flags skill)
  • Complex multi-environment setups with separate staging/production projects

Key patterns covered:

  • Client-side setup with PostHogProvider or framework initialization hook
  • Server-side setup with posthog-node
  • Environment variables (client vs server prefix)
  • User identification and reset flows
  • Serverless flush patterns (captureImmediate vs flush)

Detailed Resources:

  • [examples/core.md](examples/core.md) - Provider setup, layout integration, user identification, env vars
  • [examples/server.md](examples/server.md) - Server client singleton, API routes, serverless patterns
  • [reference.md](reference.md) - Decision frameworks

Philosophy

PostHog is a product analytics + feature flags platform that consolidates multiple tools into one. It's open-source, can be self-hosted, and has a generous free tier. For solo developers and small teams, PostHog eliminates the need for separate analytics and feature flag services.

Core principles:

  1. One platform for analytics + feature flags - Reduces tool sprawl and cost
  2. Usage-based pricing - Pay for what you use, not per-project
  3. Autocapture by default - Automatic event tracking reduces manual instrumentation
  4. Server and client SDKs - Full coverage for SSR and client-side apps

When to use PostHog:

  • Need both analytics and feature flags in one platform
  • Want generous free tier (1M events + 1M flag requests/month)
  • Prefer open-source with self-host option
  • Building product analytics (funnels, retention, sessions)

When NOT to use PostHog:

  • Need advanced A/B testing with statistical rigor
  • Require real-time event streaming
  • Already have established analytics + flag tools

Core Patterns

Pattern 1: PostHog Project Structure

Use a single PostHog organization for your apps. One org pools billing. Use separate projects per app, or one project with custom properties to filter.

PostHog Organization: "Your Company"
├── Project: "Main App" (or separate per app)
│   ├── API Key: phc_xxx
│   └── Host: https://us.i.posthog.com (or eu.i.posthog.com)

Why good: Single org pools billing across all projects, usage-based pricing, 6 projects included on paid tier


Pattern 2: Client-Side Setup

Install posthog-js and configure a provider or use your framework's client-side initialization hook.

Key config options: defaults: "2026-01-30" enables recommended behaviors, person_profiles: "identified_only" reduces costs.

See [examples/core.md](examples/core.md) for full implementation of both approaches.

Why good: defaults date enables automatic SPA page/leave tracking, person_profiles: "identified_only" reduces event costs, debug mode in development aids troubleshooting


Pattern 3: Server-Side Setup with posthog-node

Install posthog-node and create a singleton for server-side event capture.

Serverless flush options:

  • captureImmediate() - simplest, awaits HTTP request directly (one request per event)
  • capture() + await flush() - batched, requires explicit flush before response returns

See [examples/server.md](examples/server.md) for singleton setup, API route usage, and the flush anti-pattern.

Why good: Singleton prevents multiple client instances, flushInterval/flushAt configure batching, captureImmediate simplifies serverless usage


RED FLAGS

  • Initializing posthog-js on the server (requires browser APIs - will crash)
  • No flush() or captureImmediate() after server-side capture in serverless environments (events silently lost)
  • Client-side env vars not exposed to the browser bundle (check your framework's prefix convention)
  • Hardcoding API keys in source code instead of environment variables
  • Missing posthog.reset() on sign out (user identity bleeds to next session)
  • Not using defaults date option (manual pageview tracking required, misses recommended behaviors)
  • Not calling posthog.identify() after authentication (anonymous and authenticated sessions remain unlinked)
  • No person_profiles: 'identified_only' option (unnecessary anonymous profiles created, higher costs)
  • Not wrapping app with PostHogProvider when using hooks (hooks return null)
  • Forgetting to add environment variables to deployment platform (events fail silently)
  • Using different PostHog projects for dev/prod without realizing (separate data)

Gotchas & Edge Cases:

  • posthog-js must be initialized after window is available (hence useEffect or a client-side initialization hook)
  • Server-side SDK does NOT auto-flush like the client - you must explicitly call flush(), shutdown(), or use captureImmediate()
  • captureImmediate() is simpler for serverless but sends one HTTP request per event (no batching)
  • Free tier resets monthly (1M events then stops capturing until next month)
  • person_profiles: 'identified_only' reduces costs but means no anonymous user profiles are created
  • When using auto-initialization hooks, config values remain fixed for the session - bootstrapping only works if flags are evaluated on the server before render

CRITICAL REMINDERS

> All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering, import type, named constants)

(You MUST initialize posthog-js only in a client/browser context - it requires browser APIs like window and localStorage)

(You MUST call posthog.shutdown(), posthog.flush(), or use captureImmediate() after server-side event capture to prevent lost events)

(You MUST use defaults: '2026-01-30' for automatic SPA page tracking and latest recommended behaviors)

Failure to follow these rules will cause lost analytics events, broken tracking, or security vulnerabilities.


Sources

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.