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.
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.
- Project page: github.com/danielthedm/clicknest ← MUST read README
- License: AGPL-3.0 ← MUST verify
- HN launch thread: news.ycombinator.com/item?id=47172751
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
:8080after 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)
Related Posts
dev-tools
Bumblebee Go Package Inventory Guide
Review Bumblebee for Go package inventory workflows, including setup, dependency validation, CI adoption, supply-chain use, and report checks.
5/28/2026
dev-tools
AgentMesh – Define AI Agent Teams in YAML
Define multi-agent AI workflows in YAML and run them locally with one command. AgentMesh brings Docker Compose patterns to AI agent orchestration.
5/28/2026
ai-setup
Prism – AI Video Workspace and API for Creators (YC X25)
Prism is a YC X25 AI video platform combining generation, editing, and an API for workflow automation. Generate assets, edit on a timeline, and integrate via.
5/28/2026