GitHub

PostHog

Use PostHog with the Flags SDK

PostHog can be used with the Flags SDK through OpenFeature. Set up the Flags SDK adapter for OpenFeature, along with the PostHog OpenFeature provider to get started.

Installation

Install the following packages:

npm install flags @flags-sdk/openfeature @tapico/node-openfeature-posthog

Setup

Set up your PostHog OpenFeature provider as a Flags SDK adapter.

// adapter.ts
import { OpenFeature } from "@openfeature/server-sdk";
import { createOpenFeatureAdapter } from "@flags-sdk/openfeature";
import { PostHogProvider } from "@tapico/node-openfeature-posthog";
 
export const openFeatureAdapter = createOpenFeatureAdapter(async () => {
  const provider = new PostHogProvider(/* ... */);
  await OpenFeature.setProviderAndWait(provider);
  return OpenFeature.getClient();
});

See the OpenFeature adapter for more details.

Usage

Use your newly configured adapter when declaring flags.

// flags.ts
import { flag } from "flags/next";
import type { EvaluationContext } from "@openfeature/server-sdk";
import { openFeatureAdapter } from "./adapter";
 
export const exampleFlag = flag<boolean, EvaluationContext>({
  key: "example-flag",
  defaultValue: false,
  adapter: openFeatureAdapter.booleanValue(),
});

Resources

Flags SDK adapter for OpenFeature

PostHog OpenFeature Provider

Note that OpenFeature providers may require additional configuration for optimal performance and compatibility. Setup instructions are provided on a best effort basis. Refer to each provider's own documentation.

If there is a native Flags SDK adapter for your provider, we recommend using that instead. Native Flags SDK adapters tune your flag provider's SDK for optimal performance and integrate with Flags Explorer and Edge Config. See available adapters.

If you are a feature flag provider interested in developing a native adapter please open a GitHub issue to get in touch.