What problem does it solve?
PostHog product scenes previously handled first-run setup screens inconsistently, with bespoke empty/loading branches and the deprecated ProductIntroduction component scattered across codebases. This Skill standardizes how a scene declares, detects, and renders a skippable setup empty state until real product data arrives.
Core Features & Use Cases
- Setup status detection: Build detection logic with createSetupDetectionLogic that pushes normalized statuses (loading, needs-setup, waiting-for-data, has-data) into productSetupStatusLogic from real data signals like HogQL counts or entity counts.
- Empty state configuration: Create a SceneProductEmptyState config with wizard or primaryAction CTAs, product accent tokens, mode-keyed copy, and declare it on the scene's SceneExport.
- Animated preview widgets: Build CSS-driven example-data previews with hidden-checkbox interactions, ambient keyframe motion, and accessibility-safe crossfades.
- Use Case: When adding a new PostHog product scene, use this Skill to wire up detection, register a boot-time setup probe, add Storybook coverage, and migrate away from ProductIntroduction.
Quick Start
Add a setup empty state to my product scene by creating the detection logic, empty state config, and preview, then declaring emptyState on the SceneExport.