Docs
Build with ClickClacks
One script tag for the browser, one endpoint for your servers, one MCP server for your AI tools. Everything here is written from the product’s own code, so what you read is what runs.
New here? Start with the quickstart.
Where to start
- Quickstart A new project, a website source, one script tag, your first event and your first insight. About five minutes.
- Track events What autocapture records on its own, and how to send the events that matter to your product.
- Identify users Tie an anonymous visitor to your own user ID, follow them across domains and devices, and reset on sign-out.
- Server-side Send events from your backend with a server key: batches, idempotent retries, limits and errors.
- SDKs The Node.js, PHP and React Native SDKs, or any language over plain HTTP.
- MCP and AI Ask your analytics from Claude Code, Claude Desktop, Codex or Cursor, with provenance on every answer.
- Product guides How to read and use each report: funnels, retention, heatmaps, boards and more.
- Privacy What the tracker stores and sends, what it strips first, and how consent and opt-out work.
Walkthroughs
One goal, from zero to an answer →- Node.jsnpm@clickclacks/node for Node, serverless and Cloudflare Workers.
- PHP and LaravelComposerclickclacks/clickclacks-php, with a Laravel facade and queued sending.
- React Native and Exponpm@clickclacks/react-native for iOS and Android apps, with an offline queue and consent modes.
- Any languageHTTPOne POST with JSON: curl, Python, Go, Ruby and PHP examples with safe retries.
Popular
How the pieces fit
- 01OrganizationYour team. It owns the data and the subscription.
- 02ProjectOne product. Every surface of it reports here, so a funnel can cross from site to app.
- 03SourceOne place events come from: a website, a web app or a server. Each has its own keys.
- 04PersonOne human, assembled from events across the project’s sources.
- 05EventOne recorded action: a name, a time and properties.
Every other word is in the glossary.
Browse everything
Walkthroughs
- All walkthroughs One goal, from zero to an answered question.
- Your first custom events Install, name, send and check your first events.
- Server-side with Node Track from an Express API and a serverless function.
- Server-side with Laravel Track from a Laravel app with the PHP SDK.
- One person, browser and backend Identity stitching end to end, and its pitfalls.
- All 10 walkthroughs
Examples
Tracking
- Install the tracker One script tag, and where it goes in every framework.
- Autocapture Pageviews, clicks and scroll depth, and what is never captured.
- Custom events Send your own events, with properties and good names.
- Identify people Tie a visitor to your user ID, and reset on sign-out.
- Companies and groups Count companies as well as people: the group call, traits and Count by.
- Single-page apps How route changes become pageviews.
- Consent and opt-out Opt-out and opt-in modes, consent banners and GPC.
- Domains and identity Allowed domains and one person across them.
- Custom domain Serve the tracker from a subdomain of your own.
- Heatmap capture How pages are captured, and how to mask them.
- Debugging Check events arrive, and fix the usual problems.
Server-side
SDKs
Integrations & AI
Product guides
Data & privacy
Start hearing your clicks.
Install one script tag and see your first report in minutes.
About 5 KB · pageviews, clicks and scroll depth, automatically