Feature Request(heatmaps): support custom screenshot uploads
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 39.9k
- Forks
- 3.4k
- Avg merge
- 6h 51m
- Merged PRs (30d)
- 232
Description
Feature request
Is your feature request related to a problem?
Heatmaps today only work against pages that PostHog can reach by URL. The three current rendering modes (iframe, screenshot, recording) all assume either a live web page that loads in an iframe, a URL that PostHog can crawl, or a session replay HTML snapshot. For users building desktop or native applications (for example, an Electron app), there is no reachable URL to target heatmaps, so the feature is effectively unavailable.
Describe the solution you'd like
Add a fourth heatmap type that accepts a user-uploaded image as the background. The user uploads a screenshot of their app screen, PostHog stores it like the existing per-width screenshot snapshots in HeatmapSnapshot.content, and the existing click overlay renders on top.
Describe alternatives you've considered
- The toolbar capture flow. Only available in browser contexts.
Additional context
- Customer use case: a desktop application similar to Electron that wants to understand interaction patterns the same way web teams use heatmaps today.
- Raised in: https://posthoghelp.zendesk.com/agent/tickets/57875 (moved to PostHog: https://us.posthog.com/project/2/support/tickets/58897)
Debug info
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing heatmap rendering modes and the HeatmapSnapshot.content storage path mentioned in the issue. Compare how iframe, screenshot, and recording heatmaps are created and rendered; done means a user-uploaded image is stored as a heatmap snapshot and the existing click overlay renders on it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron
- Domain
- analytics, backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100