Is Intentional – Website Blocker & Focus App safe?
Intentional sends extension analytics and blocked-page events with a persistent ID to PostHog.
The extension creates or reuses a local analytics distinct ID and sends install, update, settings-count, and site-blocked events to PostHog. On the blocked page, review clicks, upgrade CTA clicks, and affiliate-link clicks can include the blocked hostname or blocked URL domain.
Who publishes itJanez Cadez - no other listings under this identity
Janez Cadez - no other listings under this identity
What this publisher told the store about itself, and the other listings that told it the same thing.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Persistent Analytics ID Tracks Sites You Block
Intentional creates a random ID on first run, stored locally.
Adding or visiting a blocked site sends it to PostHog with the domain, and for visits, schedule type.
Confirmed via reddit.com: same ID recurred, tying activity to one install.
- Severity
- Medium unwanted
- Type
- Unexpected
- CWE
- CWE-359
- Source
- Dynamic sandbox
You add a website to your block list, or you visit a site you've already blocked.
Both are normal uses of the extension's core blocking feature.
The extension sends the domain name and a permanent tracking ID to PostHog, a third-party analytics company.
The ID is generated once on install and reused for every future analytics event, including these blocking events.
- Your tracking IDa43fe28c-c006-4704-a12a-8fb72ac36130
A random ID created once and reused forever, so PostHog can group all of your blocking activity under one identity.
- Domain you blocked or visitedreddit.com
The actual site name you're managing with the extension, the site you're trying to avoid.
- Blocking modealways_on
Whether the block is always active or only active on a schedule.
- Extension version1.1.23
The installed version number, sent with every event.
PostHog capture endpoint accepts the event; the extension does not inspect the response.
- Content-Type
- application/json
{ "api_key": "phc_Om0oybqBi8GAuB2YahIkv7BsxdaOZcBMsSTEFxrd22l", "event": "domain_added", "properties": { "distinct_id": "a43fe28c-c006-4704-a12a-8fb72ac36130", "extension_version": "1.1.23", "environment": "production", "domain_count": 1, "source": "manual", "domain": "reddit.com" }, "timestamp": "2026-08-15T21:04:12.441Z"}The analytics ID is created once and attached to every capture call
Distinct ID: read-or-create
const ANALYTICS_ID_KEY = "intentionalAnalyticsDistinctId";let cachedIdPromise = null;async function getOrCreateDistinctId() { return cachedIdPromise || (cachedIdPromise = new Promise((resolve) => { chrome.storage.local.get([ANALYTICS_ID_KEY], (stored) => { const existing = stored[ANALYTICS_ID_KEY]; if (typeof existing === "string" && existing.length > 0) { resolve(existing); return; } const newId = crypto.randomUUID(); chrome.storage.local.set({ [ANALYTICS_ID_KEY]: newId }, () => resolve(newId)); }); }), cachedIdPromise);}PostHog capture call
async function sendAnalyticsEvent(eventName, properties = {}) { if (!eventName) return; try { const distinctId = await getOrCreateDistinctId(); const payload = { api_key: POSTHOG_API_KEY, event: eventName, properties: { distinct_id: distinctId, extension_version: chrome.runtime.getManifest().version, environment: "production", ...stripUndefinedValues(properties), }, timestamp: new Date().toISOString(), }; await fetch(`${POSTHOG_HOST}/capture/`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload), }); } catch (err) { console.debug("PostHog capture failed:", err); }}- eu.i.posthog.com
Receives the persistent distinct_id, event name, and properties (blocked domain, blocking mode). PostHog is a third-party analytics vendor; this is its EU ingestion endpoint.
Where it sends data
Destinations our analysis observed Intentional – Website Blocker & Focus App contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.
- eu.i.posthog.com
Intentional – Website Blocker & Focus App sends data to eu.i.posthog.com. 12 other extensions we have analysed send data here.