Skip to content

Moderok vs PostHog for Chrome Extension Analytics: The All-in-One That Goes Blind

4 min readModerok team

PostHog's best features need a web page, and your Chrome extension doesn't have one. How Moderok and PostHog compare for chrome extension analytics.

PostHog sells "every tool in one": analytics, session replay, feature flags, surveys, experiments. Impressive list. Now move it into the background service worker, where an extension's installs, updates, and usage actually happen, and PostHog's own extension guide tells you to switch most of it off: no autocapture, no session replay, no surveys, because there is no DOM in there for them to work with.

Moderok is the opposite bet: one job, browser extensions, done completely.

Here is the honest head-to-head for anyone choosing chrome extension analytics.

TL;DR: PostHog is a strong platform for websites and web apps, and it does document a browser extension setup, but its signature features assume a DOM the background service worker does not have, so its own guide has you disable them there, hold state in memory, and persist a shared id yourself. Moderok runs natively in the service worker, tracks the extension lifecycle automatically, and opens on an extension-shaped dashboard after setup. For the extension itself, Moderok wins.

The 30-second comparison

ModerokPostHog
Runs in an MV3 service workerYes: NativelyYes: With memory persistence and most features off
Autocapture inside your extensionYes: Lifecycle events built inNot in the service worker, no DOM to capture
SetupInstall SDK, add storage, initializeinit() plus config, plus your own shared id helper
Extension-first dashboardYes: The defaultNo: Build-your-own insights
Identity defaultRandom profile id; properties are yoursYour configuration choice
Self-hostingNoYes: Genuinely
Free tierYes: 1M events a monthYes

Round 1What survives contact with MV3

PostHog's magic on a website is real: drop the snippet, and clicks, pageviews, and sessions capture themselves. All of that magic is DOM magic. A Manifest V3 background service worker has no DOM, and Chrome's remote code ban blocks CDN loading, so PostHog's guide has you import the no-external bundle, set disable_external_dependency_loading, and turn autocapture, session recording, and surveys off in the worker.

What is left there is a library measuring 80 kB gzipped (that is posthog-js/dist/module.no-external, the bundle their own extension guide tells you to import, at v1.409.5) running with persistence: 'memory', which their own docs describe as lost when the context closes, and Chrome closes that context constantly, the classic MV3 trap from why your service worker keeps stopping. Their fix is a helper you write yourself: generate a distinct id, stash it in chrome.storage, and bootstrap every context with it. Workable, and a long way from the PostHog on the landing page.

Moderok's SDK is the plumbing, already built for exactly this runtime: 5.7 kB gzipped with zero runtime dependencies, plus a capped storage-backed queue that retries eligible failures with backoff after restarts. Install the package, add the storage permission, and initialize it; lifecycle events such as installs, updates, first opens, daily actives, and errors are then instrumented automatically.

Winner

Moderok. Most of PostHog stays in the truck.

Round 2Dashboards

In PostHog you model your own world: define insights, wire dashboards, decide what "active user" means. Flexible, and it is work, and none of it knows what an extension is.

Moderok's dashboard was designed from Chrome Web Store reality: installs, active-profile trends, updates, events, and logs. That active-profile measure uses a different denominator from the store's Weekly Users number, a mismatch we unpacked in Weekly Users vs Installs.

Winner

Moderok. Purpose beats potential.

Round 3Privacy

Moderok assigns a random profile id and has no identify() call. Custom event properties remain under your control, so your store data disclosure must still cover anything sensitive you choose to send. With PostHog, privacy posture involves more platform configuration and features to reason through.

Winner

Moderok. The default identity model is intentionally narrow.

Round 4The self-hosting card

Credit where due: PostHog is open source and self-hostable, and if running your analytics stack on your own servers is a hard requirement, that is a real advantage Moderok does not match. It is also an ops project bigger than most extensions. Choose it because you need it, not because it sounds virtuous.

Winner

PostHog takes a round. We said this was honest.

The final score

Three rounds to one. PostHog is a fine platform for products with pages, and inside an extension's service worker it shrinks to a cut-down SDK and a to-do list. Moderok never shrinks because it never claimed to be everything. It claimed to be extension analytics, and it is the best version of exactly that.

Try it before you publish. The free tier covers 1 million events a month and works with a local build. Start at moderok.dev.