Open-source product OS

How developers build successful products

PostHog is the single platform to analyze, test, observe, and deploy new features. One repo. One stack. One bill. (Hosted or self-hosted — your call.)

$0 · 1M events / mo free, no card SOC2 · HIPAA · GDPR 120k+ companies tracked
tea
UNDERSTAND PRODUCT USAGE

Eight products. One platform. No SDK juggling.

PostHog ships every product analytics tool your team needs — fully integrated, built on the same event pipeline, billed off a single usage-based plan.

Product analytics

Funnels, retention, paths, lifecycle. Run any query, any time — no SQL required, but it's there when you want it.

Explore →

Session replay

Watch real users navigate your app. Filter by frustration signals, console errors, network failures, identifiers.

Explore →

Feature flags

Ship behind a flag, gradually roll out, kill switch in one click. Multivariate, JSON payloads, local eval.

Most loved Explore →

A/B experiments

Run statistically-rigorous experiments without a data scientist. Goal metrics, secondary metrics, exposure tracking.

Explore →

Data warehouse

Sync from Stripe, HubSpot, Postgres. Query it next to your event data — no separate Snowflake bill.

Explore →

Surveys

NPS, CSAT, popovers, multiple-choice. Target by cohort, trigger on event, export to CSV.

Explore →

Web analytics

Cookie-free, GDPR-aware, no banners. Page paths, devices, geos, sources — without bloating your bundle.

Explore →

LLM observability

Trace every prompt, latency, token cost. Diff prompt versions side-by-side, replay failed generations.

Beta Explore →
DASHBOARD

The cream canvas, the analytics inside.

PostHog's dashboard layout is the part we obsess over — a cream chrome wrapping a white card filled with hedgehog-doodled charts, not yet-another generic chart library.

app.posthog.com / project / insights / weekly-activation ● live
Trends Funnels Retention Paths SQL
Active users · 7d
82,461
+12.4% vs prev
Activation rate
34.2%
+3.1pp
Avg session
6m 12s
-8s
Sign up complete First insight created Returned day 7
💡
Tip: Hit ⌘K anywhere to open the command palette. Most actions are 2 keystrokes away.
Live: The new HogQL playground is rolling out to all teams this week.
📘
Note: Self-hosted v1.45+ ships with the dashboard subscription engine baked in.
⚠️
Heads-up: Cohorts using first_touch_url will be auto-migrated to $initial_referrer on May 30.
INSTALL

One snippet. Five SDKs deep. Forever free for 1M events.

Drop the snippet in, ship to prod, watch the events stream into your dashboard within seconds. No card on file, no expiring trial — the PostHog free tier is permanent and generous on purpose.

  • Web, iOS, Android, React Native, Node, Python, Go, Ruby, Elixir.
  • Auto-capture for clicks, page views, form submits — opt-in or opt-out per env.
  • EU + US data residency, BYO-S3 export, GDPR-ready out of the box.
  • MIT-licensed, self-host with Docker Compose if you want full control.
JavaScript React Python Go cURL
// 1 — snippet in <head>, <6kb gz
import { posthog } from "posthog-js"

posthog.init("phc_yourkey", {
  api_host: "https://eu.posthog.com",
  capture_pageview: true,
  autocapture: true,
  session_recording: { maskAllInputs: true }
})

// 2 — identify the user (once per session)
posthog.identify(user.id, {
  email: user.email,
  plan: "growth",
  signup_date: "2026-05-01"
})

// 3 — track anything that matters
posthog.capture("checkout_completed", {
  amount: 42.0,
  currency: "USD",
  plan: "growth"
})
PRICING

Pay for what you use. Forever free until you don't.

Each product has its own usage-based price. Mix and match — no bundle taxes, no per-seat minimums, no salesperson required to read the page.

Free

$0/ month

For hobby projects, side hustles, and pre-revenue startups. No card, no expiry.

  • 1M events / month
  • 5,000 session recordings
  • 1M feature flag requests
  • 250 surveys / month
  • Community support
Sign up — free

Enterprise

Talk· custom

For teams over 100M events / mo, regulated industries, or teams who want a dedicated CSM.

  • Volume discounts
  • SSO + custom audit log retention
  • SLA-backed support + 99.95% uptime
  • HIPAA + BAA available
  • Self-hosted + air-gapped option
Talk to sales →

Design system reference

Tokens, type ladder, radius, components — pulled from the captured DESIGN.md.
View source DESIGN.md ↗

Color

Grouped by role. Saturated yellow-orange is the only loud chromatic moment — everything else is cream, olive ink, white card, pastel callout.

Brand & accent

Primary
#f7a501
Pressed
#dd9001
Active
#b17816

Surface

Canvas
#eeefe9
Soft
#e5e7e0
Card
#ffffff
Doc
#fcfcfa
Dark
#23251d
Hairline
#bfc1b7

Text

Ink
#23251d
Body
#4d4f46
Mute
#6c6e63
Ash
#9b9c92
Stone
#b6b7af

Callout pastels (doc-only)

Blue soft
#dceaf6
Green soft
#d9eddf
Red soft
#f7d6d3
Purple soft
#e7d8ee

Typography

IBM Plex Sans Variable across every text role with weights 400 / 500 / 600 / 700 / 800. Hierarchy is built from weight + size.

display-xl
36 / 700 / 1.5
The new way to build products
display-lg
24 / 800 / -0.6
Eight products. One platform.
heading-lg
21 / 700 / -0.5
Understand product usage
heading-sm
18 / 700 · UPPERCASE
UNDERSTAND PRODUCT USAGE
body-md
16 / 400 / 1.5
Default paragraph text. The brand's most-used type role.
body-strong
16 / 600 / 1.5
Inline emphasis, in-card label.
body-sm
15 / 400 / 1.71
Doc article body, marketing card description.
utility-xs
12 / 700 · UPPERCASE
SECTION EYEBROW
code-sm
14 / 400 · mono
posthog.capture("event_name")

Radius

Clusters around 4–6px for nearly everything. Pill-radius is reserved for the sticky CTA and chip tokens.

none
0px
xs
2px
sm
4px
md
6px
lg
8px
full
9999px

Components

Buttons, chips, pills, inputs, code surfaces. Cards sit flat on cream with thin olive borders — no shadows.

Buttons

secondaryTalk to sales
disabledUnavailable

Chips & badges

pill-tabAllInsightsReplays
badge-promoNewLiveBeta
badge-uppercaseFEATURE FLAG

Inputs

text-input
focused
search

Code surfaces

code-block
posthog.capture("checkout_completed")
inline$initial_referrer

Callout banners

💡
Tip: Define a goal before opening Insights.
Success: Event ingested in 280ms p95.
⚠️
Warning: Cohort sizes < 100 are noisy.
📘
Note: Self-hosted defaults to UTC.

Nav & sticky CTA

View DESIGN.md ↗