Cursor Skill

adding-analytics

Add PostHog analytics to a web application, including event tracking, page views, feature flags, and session replay.

LLM Mart · 0 points · 27 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download spencerpauly-awesome-cursor-skills-resources_adding-analytics-99cd265.zip · 1 KB
Part of spencerpauly/awesome-cursor-skills — 65 skills

Install

skills CLI npx skills add https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/adding-analytics
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install spencerpauly-awesome-cursor-skills@llmmart
Git git clone https://github.com/spencerpauly/awesome-cursor-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole spencerpauly/awesome-cursor-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Add Analytics (PostHog)

Use this skill when the user asks to add analytics, event tracking, page views, feature flags, or session replay to a web application.

Steps

  1. Detect the framework — check for next.config.*, vite.config.*, package.json scripts, or index.html to determine if this is Next.js, React (Vite/CRA), Vue, Svelte, or plain HTML.

  2. Install the SDK

    • Next.js / React: npm install posthog-js
    • Next.js (server-side): npm install posthog-js posthog-node
    • Python: pip install posthog
    • Node.js backend: npm install posthog-node
  3. Create a provider / init module

    • For Next.js App Router, create app/providers.tsx:

      "use client";
      import posthog from "posthog-js";
      import { PostHogProvider as PHProvider } from "posthog-js/react";
      import { useEffect } from "react";
      
      export function PostHogProvider({ children }: { children: React.ReactNode }) {
        useEffect(() => {
          posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, {
            api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST ?? "https://us.i.posthog.com",
            capture_pageview: false, // we capture manually for SPAs
          });
        }, []);
        return <PHProvider client={posthog}>{children}</PHProvider>;
      }
      
    • Wrap {children} in the root layout with <PostHogProvider>.

    • For Pages Router, init in _app.tsx inside a useEffect.

  4. Add page-view tracking — for SPAs, create a component that calls posthog.capture('$pageview') on route change using the framework's router events.

  5. Add .env variables — prompt the user for their PostHog project API key and host:

    NEXT_PUBLIC_POSTHOG_KEY=phc_...
    NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
    

    Add these keys to .env.example as well.

  6. Add custom events — if the user specifies events to track (e.g. sign-up, purchase), add posthog.capture("event_name", { ...properties }) calls in the relevant handlers.

  7. Feature flags (optional) — if requested, show how to use posthog.isFeatureEnabled("flag-name") or the useFeatureFlagEnabled hook.

  8. Session replay (optional) — enable by adding session_recording: { maskAllInputs: false } to the init config if requested.

Notes

  • Never hardcode API keys — always use environment variables.
  • Add posthog-js to the Content Security Policy if the project has one.
  • For monorepos, install in the package that renders the UI, not the root.
Files (awesome-cursor-skills)
  • SKILL.md 2.6 KB
    ---
    name: adding-analytics
    description: Add PostHog analytics to a web application, including event tracking, page views, feature flags, and session replay.
    ---
    
    # Add Analytics (PostHog)
    
    Use this skill when the user asks to add analytics, event tracking, page views, feature flags, or session replay to a web application.
    
    ## Steps
    
    1. **Detect the framework** — check for `next.config.*`, `vite.config.*`, `package.json` scripts, or `index.html` to determine if this is Next.js, React (Vite/CRA), Vue, Svelte, or plain HTML.
    
    2. **Install the SDK**
    
       - Next.js / React: `npm install posthog-js`
       - Next.js (server-side): `npm install posthog-js posthog-node`
       - Python: `pip install posthog`
       - Node.js backend: `npm install posthog-node`
    
    3. **Create a provider / init module**
    
       - For Next.js App Router, create `app/providers.tsx`:
    
         ```tsx
         "use client";
         import posthog from "posthog-js";
         import { PostHogProvider as PHProvider } from "posthog-js/react";
         import { useEffect } from "react";
    
         export function PostHogProvider({ children }: { children: React.ReactNode }) {
           useEffect(() => {
             posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, {
               api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST ?? "https://us.i.posthog.com",
               capture_pageview: false, // we capture manually for SPAs
             });
           }, []);
           return <PHProvider client={posthog}>{children}</PHProvider>;
         }
         ```
    
       - Wrap `{children}` in the root layout with `<PostHogProvider>`.
    
       - For Pages Router, init in `_app.tsx` inside a `useEffect`.
    
    4. **Add page-view tracking** — for SPAs, create a component that calls `posthog.capture('$pageview')` on route change using the framework's router events.
    
    5. **Add `.env` variables** — prompt the user for their PostHog project API key and host:
    
       ```
       NEXT_PUBLIC_POSTHOG_KEY=phc_...
       NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
       ```
    
       Add these keys to `.env.example` as well.
    
    6. **Add custom events** — if the user specifies events to track (e.g. sign-up, purchase), add `posthog.capture("event_name", { ...properties })` calls in the relevant handlers.
    
    7. **Feature flags (optional)** — if requested, show how to use `posthog.isFeatureEnabled("flag-name")` or the `useFeatureFlagEnabled` hook.
    
    8. **Session replay (optional)** — enable by adding `session_recording: { maskAllInputs: false }` to the init config if requested.
    
    ## Notes
    
    - Never hardcode API keys — always use environment variables.
    - Add `posthog-js` to the Content Security Policy if the project has one.
    - For monorepos, install in the package that renders the UI, not the root.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related