Skip to content
trakoo
Esc
navigateopen⌘Jpreview
On this page

Installation

Install trakoo and the SDK packages required by each provider.

Install the core package first, then add only the provider SDKs your app uses.

Core package

pnpm install trakoo
npm install trakoo
yarn add trakoo
bun add trakoo

trakoo’s public API is split by environment:

import { createClientAnalytics } from 'trakoo/client';
import { createServerAnalytics } from 'trakoo/server';

import { PostHogClientProvider } from 'trakoo/providers/client';
import { PostHogServerProvider } from 'trakoo/providers/server';

Use trakoo/providers/client in browser bundles and trakoo/providers/server in server-only code.

Provider SDKs

Provider Client support Server support Extra install
PostHog Yes Yes posthog-js posthog-node
OpenPanel Yes Yes @openpanel/web @openpanel/sdk
Bento Yes, CDN script Yes @bentonow/bento-node-sdk for server
Pirsch Yes, CDN script Yes No extra package
EmitKit No Yes @emitkit/js
Visitors Yes, CDN script No No extra package
Proxy Yes Server ingest helpers No extra package
pnpm install posthog-js posthog-node
pnpm install @openpanel/web @openpanel/sdk
pnpm install @bentonow/bento-node-sdk

The browser provider loads Bento from its CDN. Install the SDK only when using BentoServerProvider.

# No extra package required

trakoo’s Pirsch providers call Pirsch directly or load the browser script at runtime.

pnpm install @emitkit/js

EmitKit is server-side only. Use the Proxy Provider if you need browser events to reach EmitKit.

# No extra package required

VisitorsClientProvider loads https://cdn.visitors.now/v.js at runtime.

Environment variables

Keep browser tokens public and server keys private.

VITE_POSTHOG_KEY=your-posthog-project-key
VITE_POSTHOG_HOST=https://app.posthog.com
VITE_OPENPANEL_CLIENT_ID=your-openpanel-client-id
VITE_BENTO_SITE_UUID=your-bento-site-uuid
VITE_VISITORS_TOKEN=your-visitors-token
NEXT_PUBLIC_POSTHOG_KEY=your-posthog-project-key
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com
NEXT_PUBLIC_OPENPANEL_CLIENT_ID=your-openpanel-client-id
NEXT_PUBLIC_BENTO_SITE_UUID=your-bento-site-uuid
NEXT_PUBLIC_VISITORS_TOKEN=your-visitors-token

OPENPANEL_CLIENT_ID=your-openpanel-client-id
OPENPANEL_CLIENT_SECRET=your-openpanel-client-secret
POSTHOG_API_KEY=your-posthog-server-key
BENTO_SITE_UUID=your-bento-site-uuid
BENTO_PUBLISHABLE_KEY=your-bento-publishable-key
BENTO_SECRET_KEY=your-bento-secret-key
EMITKIT_API_KEY=emitkit_xxx
PIRSCH_ACCESS_KEY=pa_xxx
PUBLIC_POSTHOG_KEY=your-posthog-project-key
PUBLIC_POSTHOG_HOST=https://app.posthog.com
PUBLIC_OPENPANEL_CLIENT_ID=your-openpanel-client-id
PUBLIC_BENTO_SITE_UUID=your-bento-site-uuid
PUBLIC_VISITORS_TOKEN=your-visitors-token

OPENPANEL_CLIENT_ID=your-openpanel-client-id
OPENPANEL_CLIENT_SECRET=your-openpanel-client-secret
POSTHOG_API_KEY=your-posthog-server-key
BENTO_SITE_UUID=your-bento-site-uuid
BENTO_PUBLISHABLE_KEY=your-bento-publishable-key
BENTO_SECRET_KEY=your-bento-secret-key
EMITKIT_API_KEY=emitkit_xxx
PIRSCH_ACCESS_KEY=pa_xxx

Verify imports

Create a small file and let TypeScript confirm the package resolves:

import { createClientAnalytics } from 'trakoo/client';
import { PostHogClientProvider } from 'trakoo/providers/client';

const analytics = createClientAnalytics({
  providers: [
    new PostHogClientProvider({
      token: 'test'
    })
  ]
});

analytics.track('test_event', {});

If your project compiles, continue to the Quick Start.

Was this page helpful?