Repository navigation
[CI] (cc5471b) react-native/expo-react-native-hacker-news - #4785
Closed
wizard-ci-bot[bot] wants to merge 3 commits into
Closed
wizard-ci-bot[bot] wants to merge 3 commits into
wizard-ci-bot[bot] wants to merge 3 commits into
Conversation
Author
PR Evaluation ReportSummaryThis PR integrates PostHog into an Expo React Native Hacker News reader app. It adds the
Confidence score: 5/5 🧙
File changes
App sanity check ✅
Issues
|
| Criteria | Result | Description |
|---|---|---|
| PostHog SDKs installed | Yes | posthog-react-native@^4.84.3 added to dependencies |
| PostHog client initialized | Yes | new PostHog(token, { host, captureAppLifecycleEvents, errorTracking, logs }) with PostHogProvider wrapping navigator |
| capture() | Yes | 8+ meaningful capture calls across components |
| identify() | No | No identify call anywhere in the integration |
| Error tracking | Yes | errorTracking: { autocapture: { uncaughtExceptions: true, unhandledRejections: true } } configured |
| Reverse proxy | N/A | Mobile/React Native app — reverse proxy not applicable |
Issues
- Missing
identify()implementation: Noposthog.identify()call exists anywhere in the codebase. While this Hacker News reader appears to lack user authentication, the integration should either implement identify for any auth flows that exist or document this as an anonymous-only app. Without identify, all events are tied to anonymous device IDs with no way to link cross-device usage. [CRITICAL] - Web target not initialized:
app.jsonconfigures awebplatform andpackage.jsonhas a"web"script.posthog-react-nativedoes not function in web environments — it requiresposthog-jsinstead. Running the app on web will silently produce zero PostHog events. Either addposthog-jsinitialization for web, or explicitly remove/document the web platform gap. [CRITICAL] - Unverified
.loggerAPI:posthog-logs.tscallsposthog?.logger.info()andposthog?.logger.error(). The documented PostHog SDK API iscaptureLog(), not.logger.info(). If this property doesn't exist on the React Native SDK, the optional chaining will silently swallow the call and no logs will ever be sent. [MEDIUM]
Other completed criteria
- API key loaded from
EXPO_PUBLIC_POSTHOG_KEYenvironment variable (not hardcoded) - Host loaded from
EXPO_PUBLIC_POSTHOG_HOSTenvironment variable - Screen views handled via
PostHogProviderwrapping theStacknavigator captureAppLifecycleEvents: truecaptures app open/background/foreground events- Graceful degradation:
posthogisundefinedwhen env vars missing, app still renders
PostHog insights and events ✅
| Filename | PostHog events | Description |
|---|---|---|
app/[itemId].tsx |
profile_opened, story_link_opened, parent_thread_opened |
Tracks user profile navigation, external link opens, and thread navigation from story details |
components/posts/Post.tsx |
story_details_opened, story_link_opened |
Tracks story navigation with entry_point (story_title vs comments_button) and external link opens with source |
components/posts/Posts.tsx |
Structured logs: story feed loaded, story feed load failed, story page loaded, story page load failed |
Operational logging with timing, story counts, and pagination context |
components/Select.tsx |
story_feed_selected |
Tracks feed type changes (top/new/best) with story_type property |
components/comments/comment.tsx |
profile_opened, story_details_opened |
Tracks profile navigation from comments and reply thread navigation |
lib/posthog.ts |
captureException (autocapture) |
Uncaught exceptions and unhandled rejections captured automatically |
Issues
- No issues with event quality.
Other completed criteria
- Events represent real user actions (navigating stories, opening links, changing feeds)
- Events enable product insights: can build content engagement funnels (feed → story → link/comments), track feature usage by feed type
- Events enriched with contextual properties (
source,entry_point,story_type,duration_ms) - No PII in event properties — only structural metadata
- Consistent snake_case naming convention across all events
Reviewed by wizard workbench PR evaluator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated wizard CI run
Source: scheduled
Trigger ID:
cc5471bApp:
react-native/expo-react-native-hacker-newsApp directory:
apps/react-native/expo-react-native-hacker-newsWorkbench branch:
wizard-ci-cc5471b-react-native-expo-react-native-hacker-newsWizard branch:
mainContext Mill branch:
mainPostHog (MCP) branch:
masterTimestamp: 2026-10-28T16:54:55.497Z
Duration: 351.0s
YARA Scanner