posthog-analytics
Skill4 starsChanged 6 months agoMITView on GitHub
PostHog analytics and session replay integration for React Native mobile apps. Use when adding event tracking, understanding session replay behavior, or troubleshooting analytics setup.
- Reads credentials
7 other projects use a version of this.
Adopted by
Most recently taken up by
- alinaqi/claude-bootstraptheir own version, first seen Oct 8, 2026
- kevinbadi/seo-agent-kittheir own version, first seen Oct 5, 2026
- lsongdev/skillstheir own version, first seen Sep 10, 2026
- SylphAI-Inc/skillstheir own version, first seen Aug 5, 2026
- alinaqi/maggytheir own version, first seen Jun 12, 2026
- CodeAlive-AI/ceo-ai-ostheir own version, first seen May 18, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- alinaqi/maggy★ 711same name
- alinaqi/claude-bootstrap★ 708same name
- SylphAI-Inc/skills★ 111same name
- CodeAlive-AI/ceo-ai-os★ 9same name
- kevinbadi/seo-agent-kit★ 9same name
- Layneformalized225/ai-cofounder★ 1same name
- lsongdev/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- apple-appstore-setupSkill
- eas-mobile-deploymentSkill
- edge-functionsSkill
- frontend-developmentSkill
- google-play-setupSkill
- langfuse-tracingSkill
- mobile-developmentSkill
- push-notificationsSkill
- revenuecatSkill
- sentry-integrationSkill
- social-auth-setupSkill
- stripe-paymentsSkill
- supabase-email-templatesSkill
- template-releaseSkill
- template-upgradeSkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 8 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 50
Only captures visual changes, not full video
- Very specific: line 54
All settings are in lib/posthog.ts:
- Distinctive: line 69
Import the hook and use it anywhere:
- Distinctive: line 122
If not set, PostHog is automatically disabled with a console warning.
- Very specific: line 161
Fix: Run npx expo prebuild --clean and rebuild the app
- Very specific: line 170
Verify EXPO_PUBLIC_POSTHOG_KEY is set in environment
- Distinctive: line 172
Wait 1-2 minutes (there can be a delay)
- Distinctive: line 175
Cause: Default settings mask all inputs and images
- Very specific: line 199
Always mask sensitive data: - Keep maskAllTextInputs: true for production
- Distinctive: line 200
Track meaningful events: - Don't over-track; focus on key user actions
- Distinctive: line 203
Use properties: - Add context to events for better analysis
- Distinctive: line 204
Test in development: - Verify events appear before deploying
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PostHog Analytics & Session Replay
What's Already Configured
The bootstrap includes a complete PostHog setup with:
- Session Replay - Records user sessions with privacy protections
- Automatic Screen Tracking - Tracks navigation automatically via
ScreenTrackercomponent - Event Tracking - Ready to use via
usePostHog()hook - Privacy Controls - Text inputs and images are masked by default
Files Involved
| File | Purpose |
lib/posthog.ts | Configuration with session replay plugin |
app/_layout.tsx | PostHogProvider wrapper and ScreenTracker component |
app.json | PostHog plugin registration |
.env.example | Environment variable template |
How Session Replay Works
What Gets Recorded
- ✅ Screen views and navigation
- ✅ Touch interactions (taps, swipes)
- ✅ UI changes and animations
- ✅ Network requests (with
captureNetworkTelemetry: true) - ✅ Console logs (with
captureLog: true)
Privacy Protections
- 🔒 Text inputs masked - All form inputs show as
**** - 🔒 Images masked - Photos and avatars are blurred/hidden
- 🔒 Sensitive data protected - No actual typed content recorded
Recording Behavior
- Starts automatically when app launches
- Continues throughout the session
- Stops when app is closed/backgrounded
- Each session is a separate replay in PostHog dashboard
- Data is compressed and sent in batches (not real-time)
Data Usage
- ~100-500KB per minute of usage
- Throttled to 1 second intervals (
throttleDelayMs: 1000) - Only captures visual changes, not full video
Configuration Options
All settings are in lib/posthog.ts:
| Setting | Default | Purpose |
maskAllTextInputs | true | Hide all text input content |
maskAllImages | true | Blur/hide all images |
captureLog | true | Include console logs in replay |
captureNetworkTelemetry | true | Track API calls |
throttleDelayMs | 1000 | Snapshot interval (milliseconds) |
captureNativeAppLifecycleEvents | true | Track app open/close/background |
Using PostHog in Your App
Track Custom Events
Import the hook and use it anywhere:
import { usePostHog } from 'posthog-react-native';
const posthog = usePostHog();
// Track an event
posthog?.capture('button_pressed', {
button_name: 'checkout',
screen: 'product_detail',
});Identify Users
Set user identity (typically after login):
posthog?.identify(userId, {
email: user.email,
plan: 'premium',
});Reset on Logout
Clear user identity:
posthog?.reset();Set User Properties
Update user metadata:
posthog?.setPersonProperties({
credits: 100,
subscription_status: 'active',
});Environment Variables
Required for PostHog to work:
EXPO_PUBLIC_POSTHOG_KEY=phc_your_project_key
EXPO_PUBLIC_POSTHOG_HOST=https://eu.i.posthog.comIf not set, PostHog is automatically disabled with a console warning.
Rebuild Required
PostHog session replay uses native modules. After configuration changes to app.json, you must rebuild:
npx expo prebuild --clean
npx expo run:ios # or run:androidOr with EAS:
eas build --profile development-client --platform iosViewing Data in PostHog
Session Replays
- Go to PostHog → Session Replay
- Click on a session to watch the replay
- See timeline of events, network calls, and console logs
Events
- Go to PostHog → Events
- See all captured events:
$screen- Automatic screen views$pageview- Navigation tracking- Custom events you capture
Users
- Go to PostHog → Persons
- See identified users with their properties
- View their session history and events
Common Issues
"Waiting for events" in Dashboard
Cause: App hasn't been rebuilt after configuration changes
Fix: Run npx expo prebuild --clean and rebuild the app
No Session Replay
Cause: Session replay requires native modules to be rebuilt
Fix: Clean rebuild with npx expo prebuild --clean
Events Not Appearing
Cause: PostHog API key not set or app not rebuilt
Fix:
- Verify
EXPO_PUBLIC_POSTHOG_KEYis set in environment - Rebuild the app
- Wait 1-2 minutes (there can be a delay)
Privacy Concerns
Cause: Default settings mask all inputs and images
Fix: Adjust maskAllTextInputs and maskAllImages in lib/posthog.ts if you need to see more data (consider privacy implications)
Automatic Screen Tracking
The ScreenTracker component in app/_layout.tsx automatically tracks all screen views using Expo Router's navigation hooks. No manual tracking needed for navigation.
When to Use PostHog
- Product Analytics - Understand user behavior and feature usage
- Debugging - Watch session replays to see exactly what users experienced
- Feature Flags - A/B testing and gradual rollouts (requires additional setup)
- User Feedback - Combine with support tickets to see what happened
- Conversion Funnels - Track user journeys through your app
Performance Impact
- Minimal CPU overhead (snapshots are throttled)
- Network usage: ~100-500KB per minute
- Battery impact: Negligible
- Storage: Data is sent to PostHog, not stored locally
Best Practices
- Always mask sensitive data - Keep
maskAllTextInputs: truefor production - Track meaningful events - Don't over-track; focus on key user actions
- Identify users after login - Enables user-specific analysis
- Reset on logout - Prevents data leakage between users
- Use properties - Add context to events for better analysis
- Test in development - Verify events appear before deploying
Reference
- PostHog React Native Docs: https://posthog.com/docs/libraries/react-native
- Session Replay Docs: https://posthog.com/docs/session-replay/mobile
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

