Privacy policy.
AHTML is an open-source library that runs on your servers. We don't collect data from your site or your users through it. This page lists exactly what the packages and the marketing site ahtml.dev do send.
The npm packages
The npm packages (@ahtmljs/next, @ahtmljs/vite, @ahtmljs/schema, @ahtmljs/agent, @ahtmljs/langchain) execute entirely inside your infrastructure and do not transmit your users' data, page content, URLs or hostnames anywhere. They do send anonymous usage analytics to PostHog (EU Cloud, eu.i.posthog.com) so we can see which features are used. This is always on and has no opt-out switch; if your network policy forbids it, block eu.i.posthog.com at egress and the packages keep working. The complete field list and the source file are in the README.
Each event carries only these fields:
- What ran — the event name (a fixed feature name from our source, such as
snapshot.build),pkg,pkg_versionandcount. - Runtime and platform —
runtime,runtime_version,osandarch. - Coarse environment labels —
ci,ci_provider,env_class,hosting,is_tty,is_container,node_envandpackage_manager. These are flags and category labels, not values read from your machine. - Session — a random per-process session id, so events from one run can be grouped.
- Anonymous install profile — an anonymous person profile keyed by an install id, which is a one-way hash of the hostname and working directory (the raw values are never sent). The profile records the first and last
env_class, package, version, runtime and OS seen for that install. - Errors — error events carry only an error code, never a message or stack trace.
PostHog derives approximate location (country/city) from the request IP at ingestion; the project discards client IP addresses, so IPs are not stored. Never sent: URLs, page content, hostnames, file paths, CLI arguments, or environment variable values.
Separately, at install time the packages depend on @scarf/scarf, which sends anonymous install analytics (OS info, package and version, a hashed dependency tree) to Scarf. Scarf does not store IP addresses. See the README for how to opt out of that one.
This marketing site
The site at ahtml.dev processes the following data:
- Server logs — IP, user-agent, requested URL, timestamp. Retained 30 days for security and abuse prevention.
- Cookieless analytics (PostHog, EU Cloud) — page views, clicks, referrer, device and browser, page-load performance (Core Web Vitals) and click heatmaps. It sets no cookies and stores nothing in your browser (in-memory only, gone when you close or reload the page), so there is no consent banner. Because nothing is stored, a reload or a new visit counts as a new anonymous visitor. PostHog derives approximate location (country/city) from your IP address at ingestion; IP addresses are discarded and not stored. No session recordings, no person profiles, and we honour your browser's Do Not Track setting. Requests go through
ahtml.dev/ingest, a proxy on our own domain. - Vercel Web Analytics and Speed Insights — aggregate page-view counts and Core Web Vitals from our host, Vercel. Both are cookieless and do not track you across sites.
- Waitlist form — if you submit your email at
/api/waitlist, we store the email address only, to notify you when v1.0 ships. You can request deletion at any time by emailing rdibbayajyoti@gmail.com. - GitHub link-outs — clicking a GitHub link sends you to github.com, which has its own privacy policy. We do not pass identifiers across.
What we never do
- Sell, rent, or share email addresses with third parties.
- Use cross-site advertising trackers.
- Profile users for ad targeting.
- Read or store content from sites that install
@ahtmljs/*.
Your rights
If you are in the EU, UK, California, or any jurisdiction with equivalent rights, you can request access to, correction of, or deletion of any personal data we hold about you. Email rdibbayajyoti@gmail.com with the subject [AHTML privacy]. We respond within 30 days.
Changes
Material changes are versioned in this page's git history at github.com/DibbayajyotiRoy/AHTML so you can diff them.