HitKeep

July 8, 2026 · View on GitHub

Privacy-first web analytics with conversion reporting, AI visibility, and optional Ask AI, self-hosted or in EU/US cloud.

Continuous Integration Latest Release License Go Version Angular Version Docker Pulls Documentation OpenSSF Best Practices HitKeep MCP server

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

HitKeep analytics dashboard with traffic overview, geographic breakdown, goals, funnels, and UTM attribution

Why HitKeep

  • 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

Quick Start

Docker

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 -d

Open http://localhost:8080 and create your first account. More compose examples — including Caddy, nginx, and Traefik setups — live in examples/.

Binary

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.

Going to production

For reverse proxies, SMTP, systemd, Kubernetes, S3 archiving, and every configuration flag, use the docs instead of this README:

Track Your Site

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:

Product Tour

See six product screenshots

Dashboard

HitKeep analytics dashboard with traffic overview, geographic breakdown, goals, funnels, and UTM attribution

Ecommerce

HitKeep ecommerce analytics with revenue KPIs, chart, top products, and revenue sources

Search Console

HitKeep Search Console drilldown with clicks, impressions, CTR, position, trends, top queries, pages, countries, and devices

AI Visibility

HitKeep AI visibility analytics with fetch KPIs, assistant filters, and fetch volume chart

Ask AI

HitKeep Ask AI answer with completed analytics tool chips, citations, a table, and a safe dashboard action

MCP Access

HitKeep MCP integration overview for read-only analytics access

Documentation

The maintained reference lives on hitkeep.com.

Cloud

If you want the same product without running it yourself, start here:

Development

The fastest way to a working contributor setup is Docker — one command starts the Go backend, Angular dashboard, Mailpit, and seeded demo data:

make dev-docker-seed

Open http://localhost:4200 and sign in with demo@example.com / demo1234.

For native builds you need Go 1.26+, Node.js 24+, Make, and a working C toolchain for DuckDB:

git clone https://github.com/pascalebeier/hitkeep.git
cd hitkeep
make build
./hitkeep

For day-to-day native development with live reload on http://localhost:4200:

make dev       # Go backend + Angular dashboard
make dev-seed  # the same, plus seeded demo data

Contributor docs and local development guides:

License

Distributed under the MIT License. See LICENSE.