Privacy-first web analytics with conversion reporting, AI visibility, and optional Ask AI, self-hosted or in EU/US cloud.
HitKeep is open source web analytics for teams that want useful product reporting, conversion analytics, and AI-era search visibility without running PostgreSQL, Redis, ClickHouse, or a separate queue. It ships as a single Go binary with an embedded Angular dashboard, DuckDB storage, and in-process NSQ queueing.
Website · Live Demo · Docs · Cloud · AI Performance · API · Releases
- Low-ops self-hosting: one binary, one data directory, embedded DuckDB and NSQ — no external services to run
- Useful reports: multi-site Overview, top pages, landing and exit pages, events, goals, funnels, ecommerce, UTM attribution, QR campaigns, Web Vitals, email reports, and Google Search Console aggregates
- Privacy defaults: cookie-less tracking, Do Not Track support, and focused data collection
- AI visibility: server-side crawler fetch analytics, AI-referred visits, on-site chatbot outcomes, and correlation reports
- Ask AI: optional dashboard assistant that answers site-scoped aggregate questions with citations, small charts, and safe dashboard actions
- Team controls: passkeys, TOTP, site and team permissions, share links, audit logs, scoped API clients, and a read-only MCP analytics server
- Deployment choice: run it yourself or use managed cloud in the EU or US
Save this as compose.yml:
services:
hitkeep:
image: pascalebeier/hitkeep:latest
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- hitkeep_data:/var/lib/hitkeep/data
environment:
# any flag can also be set as an environment variable
HITKEEP_JWT_SECRET: replace-this-with-a-long-random-string
command:
- "-public-url=http://localhost:8080"
volumes:
hitkeep_data: {}Then start it:
docker compose up -dOpen http://localhost:8080 and create your first account. More compose examples — including Caddy, nginx, and Traefik setups — live in examples/.
Download the latest release for your platform (hitkeep-linux-amd64 or hitkeep-linux-arm64) and run it:
curl -LO https://github.com/PascaleBeier/hitkeep/releases/latest/download/hitkeep-linux-amd64
chmod +x hitkeep-linux-amd64
export HITKEEP_JWT_SECRET="$(openssl rand -hex 32)" # keep this stable across restarts
./hitkeep-linux-amd64 -public-url="http://localhost:8080"Open http://localhost:8080 and create your first account.
For reverse proxies, SMTP, systemd, Kubernetes, S3 archiving, and every configuration flag, use the docs instead of this README:
Create a site in the dashboard, then add the tracker to your pages:
<script async src="https://your-hitkeep-instance.com/hk.js"></script>Send a custom event:
<script>
window.hk = window.hk || {};
window.hk.event?.("signup", { plan: "pro", source: "landing-page" });
</script>Teams can also serve the tracker from their own verified domains, for example https://analytics.example.com/hk.js, via Team Settings → Tracking domains. DNS verification, TLS options, and ready-made Caddy, nginx, Traefik, and Helm configurations are covered in the custom tracking domains guide and examples/.
More tracking guides:
- Tracking docs
- Custom events
- Ecommerce analytics
- AI visibility analytics
- CloudFront AI crawler tracking
- WordPress integration
The maintained reference lives on hitkeep.com.
- Getting started
- Installation
- Configuration
- REST API reference
- Ask AI analytics assistant
- Google Search Console integration
- AI chatbot analytics
- Read-only MCP server for web analytics
- Compliance
- Comparison pages
- Analytics Agent Skills
- Contributor Agent Skills
If you want the same product without running it yourself, start here:
The repository-owned developer CLI provides a small default development workflow, with isolated worktrees, cloud-parity builds, and the same QA contract available when needed.
The checked-in ./hk file is a POSIX launcher, not a compiled binary. It builds the current worktree's developer CLI into a content-addressed host cache; developer CLI binaries are neither committed nor attached to HitKeep releases.
Start with:
./hk setup
./hk dev --seed./hk dev runs the workspace's Compose stack in the foreground, prints URLs, and streams component logs; Ctrl+C stops the complete stack. Use ./hk dev --detach for an explicit background session, ./hk dev logs to follow it, ./hk dev restart to preserve data while restarting, ./hk dev stop to stop it, and ./hk dev reset --seed for a fresh seeded data volume. Add --variant cloud for local managed-cloud parity. Concurrent Git worktrees remain isolated automatically.
Capture one or several local routes for visual QA with ./hk screenshot /dashboard /admin/status. The routes share one browser and authenticated seeded session, and the PNGs stay in the workspace's managed artifact state instead of entering the repository.
Run ./hk help for human guidance, ./hk catalog commands --output json for the complete machine-readable command surface, ./hk catalog configuration --output json for the runtime configuration documentation contract, ./hk doctor for prerequisites, and ./hk qa pr before review. hk is the sole supported developer workflow entry point.
Contributor docs and local development guides:
Distributed under the MIT License. See LICENSE.





