Skip to content

iceglober/counted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

240 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Counted

Counted

Privacy-first product analytics — funnels and composable dashboards.
No cookies. No fingerprinting. No PII. Under 3KB gzipped.

Website · Dashboard · npm


Quick Start

npm install @counted/sdk
import { Analytics } from "@counted/sdk";

const analytics = new Analytics({ projectKey: "A-US-..." });
analytics.track("page_view", { path: "/" });

React

npm install @counted/react
import { AnalyticsProvider, useAnalytics } from "@counted/react";

function App() {
  return (
    <AnalyticsProvider projectKey="A-US-...">
      <MyApp />
    </AnalyticsProvider>
  );
}

function SignupButton() {
  const { track } = useAnalytics();
  return <button onClick={() => track("signup_click")}>Sign Up</button>;
}

What Counted Does

  • Event tracking — track any event with custom properties
  • Composable dashboards — build your own view with metrics, time series, and breakdowns
  • Privacy by design — no cookies, no IP storage, no fingerprinting, GDPR/CCPA-friendly with no consent banner
  • Lightweight SDK — under 3KB gzipped, no dependencies

What Counted Does NOT Do

  • Set cookies or use localStorage for tracking
  • Store IP addresses or any PII
  • Fingerprint browsers (no canvas, WebGL, font probing)
  • Auto-track without explicit opt-in
  • Sell or share data with third parties

Self-Hosting

With Docker Compose:

git clone https://github.com/iceglober/counted.git
cd counted/self-host
cp .env.example .env
# Edit .env with your auth secret
docker compose up -d

See self-host/README.md for the full guide, production checklist, and backup instructions.

For development setup, see CONTRIBUTING.md.

Packages

Package Description Size
@counted/sdk Vanilla JS event tracking ~3KB
@counted/react React provider + hook ~1KB
@counted/claude-code Claude Code plugin ~1KB
@counted/opencode OpenCode plugin ~1KB
@counted/gemini-cli Gemini CLI agent hooks ~1KB
@counted/codex-cli Codex CLI agent hooks ~1KB
counted Python SDK
counted Go SDK
counted Rust SDK
@counted/migrate Aptabase migration CLI

Migrating from Aptabase

# Option A: drop-in compat (zero API changes)
npm remove @aptabase/web
npm install @counted/sdk
# Change import: '@aptabase/web' → '@counted/sdk/aptabase'

# Option B: native API
npm remove @aptabase/react
npm install @counted/react
# AptabaseProvider → AnalyticsProvider
# useAptabase → useAnalytics
# trackEvent → track

Contributing

See CONTRIBUTING.md.

License

MIT — see LICENSE.

About

Privacy-first analytics with composable dashboards. No cookies, no PII, ~3KB SDK.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors