@flags-sdk/posthog
v1.0.1
Published
PostHog adapter for the Flags SDK
Maintainers
Readme
Flags SDK — PostHog Adapter
The PostHog adapter for Flags SDK supports dynamic server side feature flags powered by PostHog.
Setup
Install the adapter
pnpm i @flags-sdk/posthogExample Usage
import { flag } from "flags/next";
import { postHogAdapter } from "@flags-sdk/posthog";
export const marketingGate = flag<boolean>({
// The key in PostHog
key: "my_posthog_flag_key_here",
adapter: postHogAdapter,
});Environment variables
Always required, read by postHogAdapter:
# Regional API host, determines where your data lives
POSTHOG_HOST=https://us.i.posthog.com # or https://eu.i.posthog.com
# Settings > Project > Project API Key
POSTHOG_PROJECT_API_KEY=phc_...Optional, opts postHogAdapter into local evaluation:
# Settings > Project > Feature flags secret key
POSTHOG_SECRET_KEY=phs_...For the Flags Explorer, read by getProviderData only:
# Settings > User > Personal API keys
POSTHOG_PERSONAL_API_KEY=phx_...
# Settings > Project > Project ID
POSTHOG_PROJECT_ID=521742Evaluation modes
- Remote (default): with only
POSTHOG_PROJECT_API_KEYandPOSTHOG_HOSTset, each evaluation calls PostHog. No background polling; request volume scales with traffic. Recommended for serverless. - Local: set
POSTHOG_SECRET_KEY(phs_...) to opt in.posthog-nodepolls flag definitions (~30s) and evaluates in-process for lower latency. Polling runs per warm server process and counts against your PostHog feature flag request quota regardless of user traffic.
POSTHOG_PERSONAL_API_KEY is used only by the Flags Explorer (getProviderData) and
does not enable local evaluation.
Runtimes
| Runtime | Supported | | ------------ | --------- | | Node | ✅ | | Edge Runtime | ❌ |
Note: posthog-node does not support the Edge Runtime.
To use with Routing Middleware and precompute, read more: Middleware now supports Node.js
Documentation
View more PostHog documentation at posthog.com.
