PostHog's website feels like a startup's internal wiki that escaped into the wild — warm, irreverent, and deliberately anti-corporate.
Needs work: freshness conflict · proof incomplete · tier1 source missing · token source unverified · verification v2 missing
PostHog's website feels like a startup's internal wiki that escaped into the wild — warm, irreverent, and deliberately anti-corporate. The background isn't the expected crisp white or dark void of developer tools; it's a warm, sage-tinted cream (#fdfdf8) that gives every surface a handmade, paper-like quality. Colors lean into earthy olive greens and muted sage rather than the conventional blues and purples of the SaaS world. It's as if someone designed a developer analytics platform inside a cozy garden shed.
The personality is the star: hand-drawn hedgehog illustrations, quirky action figures, and playful imagery replace the stock photography and abstract gradients typical of B2B SaaS. IBM Plex Sans Variable serves as the typographic foundation — a font with genuine technical credibility (created by IBM, widely used in developer contexts) deployed here with bold weights (700, 800) on headings and generous line-heights on body text. The typography says "we're serious engineers" while everything around it says "but we don't take ourselves too seriously."
The interaction design carries the same spirit: hover states flash PostHog Orange (#F54E00) text — a hidden brand color that doesn't appear at rest but surprises on interaction. Dark near-black buttons (#1e1f23) use opacity reduction on hover rather than color shifts, and active states scale slightly. The border system uses sage-tinted grays (#bfc1b7) that harmonize with the olive text palette. Built on Tailwind CSS with Radix UI and shadcn/ui primitives, the technical foundation is modern and component-driven, but the visual output is stubbornly unique.
Key Characteristics:
#F54E00) that only appears on hover interactions — a delightful surprise#bfc1b7) and backgrounds (#eeefe9) creating a unified warm-green system#1e1f23) with opacity-based hover states#4d4f46): Primary text color — a distinctive olive-gray that gives all text a warm, earthy tone#23251d): Link text and high-emphasis headings — near-black with green undertone#F54E00): Hidden brand accent — appears only on hover states, a vibrant orange that surprises#F7A501): Secondary hover accent on dark buttons — warm gold that pairs with the orange#b17816): Special button borders — an amber-gold for featured CTAs#3b82f6): Focus ring color (Tailwind default) — the only blue in the system, reserved for accessibility#fdfdf8): Primary page background — warm near-white with yellow-green undertone#eeefe9): Input backgrounds, secondary surfaces — light sage tint#e5e7e0): Button backgrounds, tertiary surfaces — muted sage-green#d4c9b8): Featured button backgrounds — warm tan/khaki for emphasis#f4f4f4): Universal hover background state#4d4f46): Primary body and UI text#65675e): Secondary text, button labels on light backgrounds#9ea096): Placeholder text, disabled states — warm sage-green#bfc1b7): Primary border color — olive-tinted gray for all borders#b6b7af): Secondary border, toolbar borders — slightly darker sage#F54E00): Hover text accent — signals interactivity and brand personality#F7A501): Dark button hover accent — warmth signal#3b82f6 at 50% opacity): Keyboard focus rings — accessibility-only color#111827): High-contrast link text — near-black for important linksIBM Plex Sans Variable — variable font (100–700+ weight range). Fallbacks: IBM Plex Sans, -apple-system, system-ui, Avenir Next, Avenir, Segoe UI, Helvetica Neue, Helvetica, Ubuntu, Roboto, Noto, Arialui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New — system monospace stackSource Code Pro — with fallbacks: Menlo, Consolas, Monaco| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display Hero | IBM Plex Sans Variable | 30px | 800 | 1.20 | -0.75px | Extra-bold, tight, maximum impact |
| Section Heading | IBM Plex Sans Variable | 36px | 700 | 1.50 | 0px | Large but generous line-height |
| Feature Heading | IBM Plex Sans Variable | 24px | 700 | 1.33 | 0px | Feature section titles |
| Card Heading | IBM Plex Sans Variable | 21.4px | 700 | 1.40 | -0.54px | Slightly unusual size (scaled) |
| Sub-heading | IBM Plex Sans Variable | 20px | 700 | 1.40 | -0.5px | Content sub-sections |
| Sub-heading Uppercase | IBM Plex Sans Variable | 20px | 700 | 1.40 | 0px | Uppercase transform for labels |
| Body Emphasis | IBM Plex Sans Variable | 19.3px | 600 | 1.56 | -0.48px | Semi-bold callout text |
| Label Uppercase | IBM Plex Sans Variable | 18px | 700 | 1.50 | 0px | Uppercase category labels |
| Body Semi | IBM Plex Sans Variable | 18px | 600 | 1.56 | 0px | Semi-bold body text |
| Body | IBM Plex Sans Variable | 16px | 400 | 1.50 | 0px | Standard reading text |
| Body Medium | IBM Plex Sans Variable | 16px | 500 | 1.50 | 0px | Medium-weight body |
| Body Relaxed | IBM Plex Sans Variable | 15px | 400 | 1.71 | 0px | Relaxed line-height for long reads |
| Nav / UI | IBM Plex Sans Variable | 15px | 600 | 1.50 | 0px | Navigation and UI labels |
| Caption | IBM Plex Sans Variable | 14px | 400–700 | 1.43 | 0px | Small text, various weights |
| Small Label | IBM Plex Sans Variable | 13px | 500–700 | 1.00–1.50 | 0px | Tags, badges, micro labels |
| Micro | IBM Plex Sans Variable | 12px | 400–700 | 1.33 | 0px | Smallest text, some uppercase |
| Code | Source Code Pro | 14px | 500 | 1.43 | 0px | Code snippets and terminal |
Dark Primary
#1e1f23#ffffff#F7A501Sage Light
#e5e7e0#4d4f46 (Olive Ink)#f4f4f4, text shifts to PostHog Orange #F54E00Warm Tan Featured
#d4c9b8#000000#F54E00Near-white Ghost
#fdfdf8#4d4f46 (Olive Ink)#F54E00Default
#eeefe9#374151#b6b7af#9ea096 (Sage Placeholder)#3b82f6 ring at 50% opacity (Tailwind blue focus ring)Search / Filter
#eeefe9#374151#b6b7af#9ea096Bordered Card
#fdfdf8 (Warm Parchment) or #ffffff#bfc1b7Sage Surface Card
#eeefe9#bfc1b7Shadow Card
#fdfdf80px 25px 50px -12px rgba(0, 0, 0, 0.25)Default
#e5e7e0#4d4f46Featured
#d4c9b8#000000#23251d) for nav links, underline on hoverspan)button, div, combobox)button, div, li)span, div)| Level | Treatment | Use |
|---|---|---|
| Level 0 (Flat) | No shadow, warm parchment background | Page canvas, most surfaces |
| Level 1 (Border) | 1px solid #bfc1b7 (Sage Border) | Card containment, input borders, section dividers |
| Level 2 (Compound Border) | Multiple 1px borders on different sides | Input groupings, toolbar elements |
| Level 3 (Deep Shadow) | 0px 25px 50px -12px rgba(0, 0, 0, 0.25) | Modals, floating elements, mega-menu dropdowns |
PostHog's elevation system is remarkably minimal — only one shadow definition exists in the entire system. Depth is communicated through:
#bfc1b7) at 1px create gentle warm separation#fdfdf8 to #eeefe9 to #e5e7e0 creates layered depth without shadows0 25px 50px -12px) is reserved for floating elements — modals, dropdowns, popovers. It's a deep, dramatic shadow that creates clear separation when needed| Name | Width | Key Changes |
|---|---|---|
| Mobile Small | <425px | Single column, compact padding, stacked cards |
| Mobile | 425px–640px | Slight layout adjustments, larger touch targets |
| Tablet | 640px–768px | 2-column grids begin, nav partially visible |
| Tablet Large | 768px–1024px | Multi-column layouts, expanded navigation |
| Desktop | 1024px–1280px | Full layout, 3-column feature grids, expanded mega-menu |
| Large Desktop | 1280px–1536px | Max-width container, generous margins |
| Extra Large | >1536px | Centered container at max-width |
4px–12px padding — compact but usable#4d4f46)#23251d)#F54E00)#1e1f23)#e5e7e0)#fdfdf8)#bfc1b7)#9ea096)When refining existing screens generated with this design system:
PostHog's voice is scrappy-startup-wiki and engineer-honest. "We make dev tools for product engineers" — terse, capability-driven, slightly irreverent. Sage-tinted gray (#bfc1b7) borders + warm canvas signal "small but serious team that ships." Famous for company handbook being entirely public (posthog.com/handbook).
| Context | Tone |
|---|---|
| CTA | Verb. "Get started", "Sign up", "Talk to sales" |
| Marketing | Capability-list with personality. "Product OS" framing |
| Documentation | Wiki-style, deeply linked, occasional jokes |
| Handbook | Radically transparent — even sensitive topics |
Voice samples
Forbidden phrases. "Revolutionary product analytics". Aggressive Amplitude-comparison framing.
PostHog was founded 2020 by James Hawkins (Co-CEO) and Tim Glaser (CTO/Co-CEO) as an open-source alternative to Amplitude/Mixpanel (PostHog — About, Y Combinator — PostHog). The company hatched in Y Combinator's W20 batch and launched on Hacker News with their MVP just 4 weeks after writing first code. Hawkins: previously VP Sales & Channels at Arachnys; founded c2o Media before PostHog. Glaser: leads technical strategy, built PostHog on ClickHouse + open-source frameworks. Famous for radical transparency — public handbook, public salaries, public roadmap, public board materials. From-pivot-hell-to-$1.4B-unicorn YC library case study documents the journey (YC Library — Pivot Hell to $1.4B Unicorn). Total funding ~$182M from Stripe, GV, Y Combinator + angels including Jason Warner (CTO GitHub) and Solomon Hykes (Founder Docker) (PostHog — Reflecting on YC 2 years on, Tracxn — PostHog). Used by 190,254+ teams including 65% of YC batch companies. The brand voice tracks this culture: scrappy, honest, occasionally meme-aware. The "Product OS" pivot in 2024-2025 expanded PostHog from analytics to feature flags, session replay, surveys, A/B tests as a single integrated product platform.
#bfc1b7. UI implication: never neutral pure gray; warmth carries.Personas are fictional archetypes informed by PostHog user segments (product engineers, indie devs, growth teams), not individual people.
Sarah Lin, 31, San Francisco. Founding engineer at Series A. PostHog for analytics + feature flags + session replay in one stack.
Henrik Sondergaard, 38, Copenhagen. Indie SaaS founder. Self-hosts PostHog to keep customer data on his infra.
Priya Krishnan, 27, Bengaluru. Growth engineer at fintech. A/B tests + funnel analysis daily.
| State | Treatment |
|---|---|
| Empty (no events) | "Install PostHog SDK to start" code snippet |
| Empty (no insights) | "Create your first insight" with template gallery |
| Loading (query) | Per-step execution visible |
| Loading (replay loading) | Session video loader with frame previews |
| Error (SDK not detected) | Specific instructions + verify-installation button |
| Error (rate limit) | Plain explanation + upgrade link |
| Success (event captured) | Implicit; events appear in feed |
| Success (insight saved) | Soft confirmation, no celebration |
| Skeleton (insight grid) | Sage-tinted placeholders |
| Disabled (free plan) | Upgrade link — never block existing OSS features |
| Loading (long replay) | Persistent progress |
| Token | Value | Use |
|---|---|---|
motion-instant | 0ms | Selection |
motion-fast | 150ms | Hover |
motion-standard | 250ms | Modal, panel |
motion-hedgehog | occasional | Mascot waves on certain success states |
Standard cubic-bezier. Hedgehog mascot moments are personality, not chrome. prefers-reduced-motion: reduce makes mascot static.
Verified: 2026-05-08 (omd:migrate run 46 — Apple-tier)
Tier 1 sources: posthog.com home + /pricing (live DOM via playwright — Primary #cd8407 PostHog Amber-Gold 6-8px / 32-46px / 15-16px·400 with Sage-Black #23251d text; Light Amber #eb9d2a Secondary; nav 4px / 13px·500; Region badge Amber-tint 4px / 14px·700; warm three-color (Amber/Sage/Cool Gray) canvas).
Tier 2 sources: styles.refero.design / getdesign.md — no record.
Tier 2 (Philosophy/founders/funding): PostHog About + handbook + blog (YC 2-years-on), Y Combinator (PostHog W20 + Pivot Hell to $1.4B Library), Tracxn, GV.com.
Style ref: notion. Conflicts unresolved: none. Earlier mistake reverted (significant): prior footer captured nav-only — canonical Primary is #cd8407 Amber-Gold (the brand-defining color), missed entirely.
PostHog's website feels like a startup's internal wiki that escaped into the wild — warm, irreverent, and deliberately anti-corporate. The background isn't the expected crisp white or dark void of developer tools; it's a warm, sage-tinted cream (#fdfdf8) that gives every surface a handmade, paper-like quality. Colors lean into earthy olive greens and muted sage rather than the conventional blues and purples of the SaaS world. It's as if someone designed a developer analytics platform inside a cozy garden shed.
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't