Skip to content

decker-dev/better-analytics

Repository files navigation

Better Analytics

A micro-analytics JavaScript SDK that developers can drop into any website.

Features

  • 🚀 Micro SDK: < 2KB gzip, framework-agnostic
  • 📦 Tree-shakable: ESM + UMD bundles
  • Zero dependencies: Pure JavaScript
  • 🔧 TypeScript: Full type support
  • 🎯 Simple API: Just 3 functions - init(), trackPageview(), track()
  • 🔌 Next.js adapter: Drop-in component for automatic page tracking

Quick Start

Installation

npm install better-analytics

Basic Usage

import { init, track, trackPageview } from 'better-analytics';

// Initialize with your endpoint
init({ endpoint: 'https://your-api.com/collect' });

// Track custom events
track('button_click', { button: 'signup' });

// Manual page view tracking
trackPageview();

Next.js Usage

npm install better-analytics
// app/layout.tsx
import { Analytics } from 'better-analytics/next';

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <Analytics api="/api/collect" />
        {children}
      </body>
    </html>
  );
}

Or using the endpoint prop:

// app/layout.tsx
import { Analytics } from 'better-analytics/next';

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <Analytics endpoint="/api/collect" />
        {children}
      </body>
    </html>
  );
}

Packages

This monorepo contains:

  • better-analytics - Core SDK with subpath exports (packages/sdk)
    • better-analytics - Core functionality
    • better-analytics/next - Next.js adapter
  • web - Demo Next.js app (apps/web)

Development

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Start development server
pnpm dev

Demo

The apps/web directory contains a working Next.js demo that shows the SDK in action. Run pnpm dev and visit http://localhost:3000 to see analytics events being tracked in real-time.

Success Criterion

"npm install, paste five lines, events reach my own URL."

Architecture

  • Framework-agnostic core: Works with vanilla JS, React, Vue, Svelte, etc.
  • Compressed JSON: All events sent via POST with minimal payload
  • Your own endpoint: Complete control over data storage and processing
  • No external dependencies: No tracking pixels, no third-party services

License

MIT

About

A lightweight, framework-agnostic JavaScript analytics SDK. Easily track events and pageviews on any website, with zero dependencies and full TypeScript support. Send data to your own endpoint for complete privacy and control.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages