self-hosted 6 min read

ClickNest – Self-Hosted AI Web Analytics in Single Go Binary

Drop-in Go binary for AI-native web analytics. Auto-captures clicks, pageviews, form events. No external deps, deploys anywhere.

By
Share: X in
ClickNest self-hosted web analytics dashboard

TL;DR

TL;DR: ClickNest is a self-hosted web analytics tool that ships as a single Go binary, auto-captures user events, and uses AI to name them — no manual tagging required.

Source and Accuracy Notes

⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.

What Is ClickNest?

ClickNest is an open-source, self-hosted web analytics platform written in Go. It ships as a single binary with no external dependencies — everything (SQLite, dashboard UI, API server) is embedded at compile time.

The core differentiator is AI event naming. Instead of showing button.click #checkout-form-submit, ClickNest reads your DOM context and optionally your source code via GitHub to produce human-readable names like “User clicked ‘Place Order’ on Checkout Page.”

From the README:

Product analytics that instruments itself. Drop in one script tag — every click, pageview, and form submission is captured automatically, and AI turns the raw events into human-readable names by reading your source code.

Setup Workflow

Prerequisites

  • Linux amd64 or arm64 (also works on macOS for local dev)
  • Docker Compose (recommended) or raw binary
  • A domain or static IP for the dashboard

Step 1: One-Line Docker Deploy

curl -O https://raw.githubusercontent.com/danielthedm/clicknest/main/docker-compose.yml
docker compose up -d

Open http://localhost:8080. On first boot, ClickNest prompts you to create an admin account. After setup, it prints your default project API key:

ClickNest started on :8080 (dev=false, data=./data)
Created default project: default (API key: cn_abc123...)

Step 2: Add the Tracking Snippet

Add this to your site’s <head>:

<script src="https://your-clicknest.example.com/sdk.js" data-project="YOUR_API_KEY"></script>

Replace YOUR_API_KEY with the key printed during first run (found later in Settings → Project in the dashboard).

Step 3: Pre-Built Binary (no Docker)

# Linux amd64
curl -L https://github.com/danielthedm/clicknest/releases/latest/download/clicknest_linux_amd64 -o clicknest
chmod +x clicknest && ./clicknest -data ./data

# Linux arm64 (Raspberry Pi, Hetzner ARM, etc.)
curl -L https://github.com/danielthedm/clicknest/releases/latest/download/clicknest_linux_arm64 -o clicknest
chmod +x clicknest && ./clicknest -data ./data

Step 4: Fly.io Free Tier Deploy

cp fly.toml.example fly.toml
fly launch   # detects Dockerfile automatically, skip all add-ons
fly volumes create clicknest_data --size 1 --region <your-region>
fly deploy --primary-region <your-region>

Feature Deep Dive

Auto-Capture Events

ClickNest instruments your site automatically on snippet load:

  • Clicks — all click events, including form submits
  • Pageviews — automatic on route changes (single-page apps)
  • Form inputs — keystrokes in input fields
  • JS errors — uncaught exceptions and promise rejections with stack traces

AI Event Naming

When you connect a GitHub repo, the LLM reads your source code to produce human-readable event names. For example:

| Raw event | AI-named event | |---|---| | button.click #checkout-btn | “User clicked ‘Place Order’” | | form.submit #contact-form | “User submitted contact form” | | input.change #search-field | “User searched for ‘[query]’” |

Analytics Features

  • Funnels — multi-step conversion analysis with cohort breakdowns
  • Path analysis — page transition flows (where do users go next?)
  • Retention — weekly cohort retention curves
  • Heatmaps — click density per page
  • Attribution — UTM and referrer source tracking
  • Dashboards — custom metric dashboards
  • AI chat — natural language queries against your analytics data

Growth Features

  • Lead scoring — configurable rules (page visits, event counts, property matches) that accumulate points per user
  • CRM webhooks — push qualified leads to your CRM when they cross a score threshold
  • Campaigns — AI-assisted content generation with A/B testing
  • ICP analysis — AI-powered ideal customer profile discovery

Platform Features

  • Feature flags — CRUD flags with rollout percentage and SDK isEnabled() check
  • Alerts — metric threshold alerts with webhook delivery
  • Multi-project — create multiple projects with team member management
  • CSV export — one-click export from any data view
  • Backup & restore — export/import your full database as a .tar.gz

Practical Evaluation Checklist

  • [ ] Docker Compose deploys without errors
  • [ ] Dashboard accessible at :8080 after first run
  • [ ] Admin account creation flow works
  • [ ] Tracking snippet loads without console errors
  • [ ] Pageview appears in dashboard within seconds
  • [ ] Click events generate AI-named labels (with GitHub repo connected)
  • [ ] Funnel creation UI works end-to-end
  • [ ] Lead scoring rules trigger webhooks correctly
  • [ ] Feature flag isEnabled() returns correct value from SDK
  • [ ] Backup export produces valid .tar.gz

Security Notes

  • ClickNest runs entirely on your own infrastructure — no data leaves your server
  • API keys are scoped per project (not global)
  • Session-based auth with email/password for dashboard access
  • No third-party CDN dependencies for the analytics payload (self-host the sdk.js)
  • AGPL-3.0 license requires you to publish source modifications if you distribute hosted versions

FAQ

Q: How does it compare to Plausible or Umami? A: Plausible and Umami are traditional pageview counters. ClickNest auto-captures every click, form input, and JS error without manual tagging, and uses AI to name events. It also includes lead scoring, CRM webhooks, feature flags, and AI chat — features you’d need separate tools for with Plausible/Umami.

Q: Does it work on single-page applications (SPAs)? A: Yes. The SDK captures route changes via the History API and fires pageview events automatically.

Q: Can I self-host it on a $5 VPS? A: Yes, the binary uses SQLite under the hood and has a minimal memory footprint. It runs fine on a 512MB VPS.

Q: What happens if the AI naming costs money? A: AI event naming reads your source code from GitHub and sends it to an LLM. The README does not specify which LLM provider is used or whether costs are involved — verify with the project maintainer before relying on this feature at scale.

Q: Is the AI chat feature free? A: The README lists “AI chat — natural language queries against your analytics data” as a feature but does not specify pricing or which LLM powers it. Treat it as a potential cost center.

Conclusion

ClickNest fills a gap between bare-bones pageview counters (Plausible, Umami) and full product analytics suites (Mixpanel, Amplitude). The single-binary deployment model is genuinely refreshing — there is no Node.js runtime, no database server to manage, no external services to trust with your user data.

The AI event naming is the killer feature: dropping in a snippet and getting human-readable event labels without any manual instrumentation is exactly the kind of zero-friction experience most analytics tools promise but don’t deliver.

If you need self-hosted product analytics with deep event tracking and you do not want to operate a full stack (Node + PostgreSQL + Redis), ClickNest is worth a look. The $5 VPS deployment story is real.

Source last checked: 2026-06-22 (README commit main branch)