Skip to main content

Poolstatis vs PostHog

Poolstatis and PostHog both provide product analytics, browser analysis, interaction maps, MCP access, and session replay. Poolstatis ships privacy-safe DOM replay with explicit consent, masking, bounded retention, sandboxed playback, and a published opt-in @poolstatis/sdk/replay entrypoint. PostHog remains the broader human-facing analytics suite. They are not feature-equivalent.

Last verified: 2026-08-16. This comparison covers Poolstatis Core commit b76b0fe, npm registry read-back, the managed-production rollout through reviewed Cloud release 827609e, and official PostHog documentation. It does not compare pricing or treat package publication alone as production proof.

Poolstatis vs PostHog at a glance

CapabilityPoolstatisPostHog
Manual event captureShipped. Browser, Node, and HTTP clients can send named events and entity updates.Shipped. SDKs and APIs capture product events.
Browser and session analyticsShipped. Page views, visitors, browser-tab sessions, foreground engagement, bounce, routes, and bounded acquisition dimensions are queryable.Shipped. A broader product and web analytics suite, including multiple insight types.
Click autocaptureNarrow for analytics events. Browser Experience automatically captures clicks only on controls with developer-owned data-poolstatis-label values, plus scroll milestones and registered section exposures. The separate replay recorder observes DOM and pointer activity only after explicit replay consent; it does not turn arbitrary DOM into generic analytics events.Broad. Official autocapture covers web interactions such as clicks, forms, editable content, navigation, clipboard activity, heatmap input, dead clicks, exceptions, sessions, and web vitals, with SDK-specific configuration.
Click and interaction mapsShipped. Normalized document and viewport coordinates power bounded click maps; scroll milestones power scroll maps. Reads expose sample size, no-data reasons, and truncation.Shipped. PostHog documents heatmap autocapture and click/scroll/movement heatmap views.
Session replayShipped in source, packages, and managed production. A separate opt-in rrweb recorder captures sanitized full snapshots, DOM mutations, viewport and finite navigation context, clicks, scroll, and pointer movement. The admin player reconstructs only playable recordings in a scriptless sandbox.Shipped. Recordings play back like a DVR and can include synchronized console logs, network requests, and errors, subject to capture and masking configuration.
Replay privacy and retentionExplicit and bounded. Versioned affirmative consent and an exact-host allowlist fail closed before recorder loading or network delivery. Inputs and contenteditable values are masked, dangerous/network DOM is removed, retention defaults to 7 days and is configurable from 1–30 days, and withdrawal tombstones the recording before physical deletion.Configurable. PostHog documents privacy controls, masking and recording controls. Teams should verify the exact configuration and retention boundary they deploy.
Replay SDK availabilityPublished opt-in entrypoint. @poolstatis/sdk@0.4.0 exposes @poolstatis/sdk/replay; recording still fails closed until the host supplies versioned consent and an exact-host policy.Published product capability. Follow PostHog's official SDK-specific Session Replay setup documentation for supported packages and configuration.
Analytics screens and graphsShipped. Built-in answer-first analysis screens render trends, funnels, retention, lifecycle, stickiness, entities, Web analytics, session evidence, interaction maps, and the replay player.Shipped. PostHog provides a broad library of product analytics insights and visual analysis surfaces.
Dashboard builderNot shipped. The human UI is a review and analysis workspace, not a freely composed dashboard, widget, and sharing system.Shipped. Dashboards combine insights, text, buttons, filters, layouts, sharing, refresh controls, and selected widgets.
Client errorsNarrow signal. Browser Experience records only error or unhandled_rejection type plus safe route/session context. Replay does not add console, network or exception payload capture. Poolstatis omits messages, stack traces, source files, and code variables.Full error tracking. PostHog captures exceptions, groups issues, uses source maps for readable stacks, tracks releases, and supports triage workflows.
Typed decision analysisCore design. Metrics require a purpose, funnels require a goal, and the bounded Query DSL works over registered metric keys rather than caller-provided SQL.Broader analysis model. PostHog supports product insights and SQL alongside its web UI and MCP. This page does not claim PostHog lacks agent access.
MCPShipped. Published @poolstatis/mcp@0.7.0 exposes 145 bounded tools, including replay list/detail metadata and all three funnel-investigation tools. Replay MCP never returns DOM/event bytes or object keys.Shipped. PostHog MCP can query product data and work with capabilities including session replay and error tracking.
Historical import and correctionsShipped. Historical batches use preview-before-commit, stable batch identity, payload hashing, conflict detection, and audit metadata. Event corrections use preview hashes, optimistic revisions, and append-only history.Not evaluated here. This comparison does not interpret an unreviewed PostHog migration surface as either present or absent.
Self-host and licenseShipped. Docker Compose runs the source-available PolyForm Shield Core with Postgres, the Platform and Ingest APIs, admin UI, and a persistent replay object volume. The exact-pinned public MCP runner and SDK are separate clients, not Compose services.Available with a different boundary. PostHog documents a hobby open-source self-host with support and feature gaps. Its main repository is MIT outside ee/; ee/ uses a separate license.

What does “autocapture” mean in Poolstatis?

Poolstatis has two deliberately different browser capture paths. Browser Experience is the low-sensitivity analytics path: calling BrowserExperience.start() attaches listeners, but a click becomes an analytics signal only when the product developer supplied a stable data-poolstatis-label. That signal contains normalized coordinates, a registered surface and route, a bounded release version, coarse device class, and session identifier. Scroll milestones, registered section exposures, and coarse error types use the same finite contract.

Session Replay is separate. After host-provided versioned consent and an exact-host policy pass, its rrweb recorder observes full snapshots, mutations, viewport changes, finite route context, clicks, scroll, and pointer movement. Those replay events live in a retention-bound replay store rather than the normal analytics event envelope. Calling this broad arbitrary-DOM analytics autocapture would still be inaccurate: the replay path has a different purpose, privacy contract, storage model, read surface, and deletion lifecycle.

PostHog intentionally covers a wider analytics autocapture surface. Its official autocapture documentation includes clicks, taps, form interactions, navigation, clipboard activity, heatmaps, dead clicks, exceptions, session recording, web vitals, and mobile lifecycle events, with details varying by SDK. Teams choosing between the products should treat this as a real difference, not a naming disagreement.

Does Poolstatis provide session replay?

Yes—in current Core source, the public SDK, and managed production, with an important integration caveat. Poolstatis Session Replay is a separate, explicit browser module rather than an upgrade of the labelled Browser Experience timeline. It records sanitized rrweb full snapshots and DOM mutations together with viewport and finite navigation context, clicks, scroll, and pointer movement. The Experience admin screen lists recordings and plays only complete, validated sessions in rrweb's scriptless allow-same-origin sandbox without allow-scripts; player interaction and unsafe canvas replay are disabled.

Recording fails closed unless the host passes affirmative versioned consent and the exact current hostname is allowlisted. Default masked mode masks visible text, all input and contenteditable values, and human-readable attributes. Password, payment, authentication and one-time-code targets are blocked. Scripts, forms, nested iframes, embeds, network-bearing attributes, raw URLs and secret-like values are removed or replaced before upload, and the server sanitizes again before storage and playback. Retention defaults to seven days, accepts only 1–30 days, and withdrawal makes the replay unreadable before physical deletion is retried.

The package boundary is explicit and installable: pin @poolstatis/sdk@0.4.0, then import @poolstatis/sdk/replay only in products that implement the required consent and host policy. Package publication alone is not production-deployment proof. On 2026-08-16 the managed service deployed the exact Core commit above with migrations 042044, a dedicated replay volume, encrypted continuity backup, and an isolated restore drill. An integrating product still has to opt in and supply its own consent flow and exact-host policy.

Poolstatis replay is not screen video and does not capture gaze, audio, canvas pixels, synchronized console/network payloads, or cross-origin iframe contents. PostHog remains broader when teams need its mature recording search, playlists, synchronized debugging context, or wider product suite. Both products have replay; their distribution, capture boundaries and surrounding workflows are different.

Does Poolstatis have dashboards and graphs?

Poolstatis has built-in analytics screens, tables, and graphs; it does not have a general dashboard builder. Its analysis UI renders registered trends, ordered funnels, retention, lifecycle, stickiness, entity analysis, Web analytics, session detail, interaction maps, and the sandboxed replay panel. The intended output is an answer, evidence state, or next decision—not a canvas where a user assembles arbitrary tiles and shared reports.

This distinction matters because saying “Poolstatis has no dashboards” hides shipped visual analysis, while saying “Poolstatis has dashboards like PostHog” overstates parity. The accurate description is answer-first analytics, replay evidence and graphs without dashboard-builder parity.

PostHog is broader for human-facing reporting. Its official dashboard documentation covers blank and templated dashboards, reusable insights, filters, layout editing, text and button tiles, sharing, auto-refresh, and selected widgets for other PostHog products. Choose that model when stakeholders need recurring, composable, shareable reporting in the analytics product itself.

How do error signals differ?

Poolstatis Browser Experience can tell an agent that a browser emitted an error or unhandled_rejection signal in a known session, route, surface, version, and device class. Session Replay does not add console logs, network traces, stack traces, source maps, exception grouping or issue ownership. Calling this “full error tracking” would be false.

PostHog Error Tracking is an issue-oriented debugging product. Its official docs describe exception capture across web, backend, and mobile SDKs; grouping into issues; stack traces made readable with source maps; release context; assignment and resolution; and MCP access to issue details and stacks. PostHog is the clear fit when the job is exception triage and debugging rather than correlating a coarse client failure signal or masked replay with product behavior.

Choose Poolstatis when

  • Coding agents are a primary analytics user, not merely another integration.
  • You want every metric to state its decision purpose and every funnel to state its journey goal.
  • You prefer a typed, bounded MCP/SDK decision loop over caller-provided SQL or an unbounded analytics surface.
  • You want source-available, self-hosted, privacy-safe DOM replay with explicit consent, masking, bounded retention, withdrawal, a sandboxed player, and an exact-pinned public SDK entrypoint.
  • Labelled interaction maps and the per-session timeline should remain a lower-sensitivity evidence path separate from replay.
  • Previewed historical imports, idempotent batches and auditable corrections are important operating controls.
  • Human reviewers need answer-first graphs and audit controls, but not a general dashboard-composition system.

Choose PostHog when

  • You need a broader human-facing product stack with composable dashboards and a large library of analysis surfaces.
  • Replay search, playlists, synchronized console/network/error context, or an already published and broadly integrated replay product is required.
  • Broad SDK autocapture across interactions, navigation, heatmaps, dead clicks, exceptions, sessions, and web vitals reduces more work than a labelled analytics model would.
  • Full error tracking with issue grouping, stack traces, source maps, release context, assignment, and resolution is required.
  • You want one suite spanning product analytics and adjacent products. Confirm the exact Cloud or self-host feature boundary for your deployment rather than assuming the two are identical.
  • Your agents should use PostHog's own MCP and wider analytics surface, including SQL-oriented workflows, rather than Poolstatis's purpose/goal-enforced decision contract.

Can Poolstatis import historical data or revise events?

Yes. This is a shipped Core workflow, not a roadmap claim. Historical imports are previewed before commit. A permanent batch identity is bound to a canonical payload hash, so an exact retry is idempotent and conflicting reuse fails rather than silently changing history. The system records reason and audit metadata. Corrections also use preview-before-apply, optimistic revision checks, and append-only before/after history.

These controls do not mean every external analytics platform can be migrated automatically. The import accepts Poolstatis's documented event contract. Mapping identities, event meanings, properties and retention semantics from another platform remains an integration project that should be verified separately. Replay bytes are a separate retained artifact class, not historical analytics events.

Frequently asked questions

Does Poolstatis have autocapture?

Yes, with two distinct scopes. Browser Experience automatically observes developer-labelled clicks, normalized positions, scroll milestones, section exposures, and coarse client error types. Session Replay separately observes sanitized DOM and pointer activity only after explicit replay consent and exact-host approval. Poolstatis still does not offer broad arbitrary-DOM analytics-event autocapture like PostHog.

Does Poolstatis have heatmaps?

It has interaction maps: bounded click maps based on normalized click coordinates and scroll maps based on milestone events. The term does not imply gaze or cursor-intent heatmap parity. Cursor movement belongs only to the separate consented replay recording. PostHog documents a broader heatmap product and broader autocapture inputs.

Does Poolstatis provide session replay?

Yes. Current Core and managed production ship consent-gated rrweb DOM replay with snapshots, mutations, finite navigation context, cursor, click and scroll playback, masking, 1–30-day retention, withdrawal and a scriptless sandboxed player. The opt-in @poolstatis/sdk/replay entrypoint is published in @poolstatis/sdk@0.4.0.

Can I install @poolstatis/sdk/replay from npm today?

Yes. Install the exact release with pnpm add @poolstatis/sdk@0.4.0, then import @poolstatis/sdk/replay. The recorder remains off until the host passes its versioned consent and exact-host policy gates.

Does Poolstatis have dashboards?

Poolstatis has answer-first analysis screens, graphs, tables, interaction maps, and a replay player. It does not provide a general dashboard builder with arbitrary tiles, layouts, sharing, and recurring report composition. PostHog does.

Does Poolstatis have error tracking?

It has coarse client error signals only: error and unhandled_rejection with bounded context. Replay does not add messages or stacks. PostHog provides full exception capture, issue grouping, source maps, stack traces, release context, and triage workflows.

Does PostHog have MCP?

Yes. PostHog's official documentation describes MCP access for product data, Session Replay, and Error Tracking. Poolstatis does not claim MCP exclusivity; its differentiator is the required purpose/goal semantic registry and typed bounded decision loop. Poolstatis replay metadata tools are included in the published @poolstatis/mcp@0.7.0 package.

What does Poolstatis intentionally not do?

It intentionally avoids screen-video recording, gaze, audio, canvas-pixel replay, synchronized console/network payload capture, cross-origin iframe contents, broad arbitrary-DOM analytics-event autocapture, a general dashboard builder, full issue-oriented error tracking, unrestricted raw SQL, and a broad connector marketplace. Those are real non-parity boundaries even though both Poolstatis and PostHog now provide session replay.

Methodology, affiliation, and sources

Poolstatis publishes this page, so it is not an independent review. We compared Poolstatis Core commit b76b0fe728cf42f53b8aae627dfc2d2291aacfd9 with npm registry read-back, the managed-production deployment through Cloud commit 827609e600d1fe6e40a7d7cd2d88ba7f08014807, and official PostHog documentation available on 2026-08-16. We classified a capability as shipped only when current implementation and tests or an official product document supported it. Source, package, and production deployment remain separate proof gates; all three passed for this replay release. Prices were deliberately excluded.

Poolstatis sources: Introduction, Session Replay, Browser analytics, Browser Experience, typed Query DSL, MCP reference, self-host guide, the Core replay contract, and the Core repository.

Official PostHog sources: Session Replay, Session Replay over MCP, autocapture, heatmaps, product analytics, web analytics, dashboards, Error Tracking, Error Tracking over MCP, MCP, self-host disclaimer, the PostHog repository license, and the separate ee/ license.