Analytics

Product Analytics

Captures product events and metrics.

kreogen has support for product analytics via PostHog — a single platform to analyze, test, observe, and deploy new features.

PostHog is an optional integration. If NEXT_PUBLIC_POSTHOG_KEY and NEXT_PUBLIC_POSTHOG_HOST are not set, the analytics export will be undefined and client-side initialization will be skipped.

Usage

To capture product events, you can use the analytics object exported from the @kreogen/analytics package. Since analytics is optional, use optional chaining when calling methods.

Start by importing the analytics object for the relevant environment:

// For server-side code
import { analytics } from '@kreogen/analytics/server';

// For client-side code
import { analytics } from '@kreogen/analytics';

Then, you can use the capture method to send events:

analytics?.capture({
  event: 'Product Purchased',
  distinctId: 'user_123',
});

Server-side events

Authentication events are captured in-process. Better Auth runs database and organization hooks inside the application, so sign-ups, sign-ins, organization creation and membership changes reach PostHog without an inbound webhook — no signature verification, no delivery latency, and no retry semantics to reason about.

Payment events still arrive by webhook, because Stripe is genuinely external.

Every tracking call is individually guarded: a PostHog outage can never fail a sign-up.

Reverse Proxy

We've also setup Next.js rewrites to reverse proxy PostHog requests, meaning your client-side analytics events won't be blocked by ad blockers.

On this page

GitLabEdit this page on GitLab