Skip to content

The Washington Post Design System

Washington Post's homepage as a DESIGN.md file — Postoni serif headlines, Franklin Gothic body, subscription blue CTA pill on a pure-white editorial canvas. Tokens for React, Next.js, and AI coding tools.

Add shadcn.io to your AI agent. · Pro It installs blocks, icons and templates in your design system from a prompt, with Pro.

Set up MCP
Primary
#166dfc
Typeface
Franklin
Shape
Sharp
Base radius
4px
Colors
11
Type tokens
11
Components
16
Spacing values
8

About

About The Washington Post DESIGN.md

Curated by Dov Azencot · Updated May 19, 2026 · Source washingtonpost.com (opens in a new tab)

The Washington Post's homepage does the opposite of what almost every contemporary news site does. There is no marketing hero, no rotating cover image, no full-bleed gradient, no animated headline carousel. The page opens directly on a three-column editorial grid — the lead story top-left, supporting stories to its right, an opinion rail on the far right — rendered in the same Postoni serif and Franklin Gothic body that carry the print edition. The engraved Postoni wordmark sits centered above the grid the way it sits centered on the broadsheet's front page. Beneath it: the tagline "Democracy Dies in Darkness," set in small Franklin Gothic caps. The only chromatic moment in the entire visible chrome is a saturated blue rounded pill in the top-right that reads "Save and subscribe."

The DESIGN.md file packages the system into a machine-readable spec for React tooling. Inside: 11 colors tokens organized around an off-black ink #111111 that carries 841 text and 832 border occurrences in the captured page, plus near-black charcoal #2a2a2a for sub-headlines and gray-mid #595959 for dek text — collectively the entire structural typography. A single subscription blue #166dfc serves as the CTA fill and #1366b3 as the link color; everything else is white canvas, near-white hairline, and a small set of subscription-plan accent navy and pink that never surface on the homepage chrome. Eleven typography tokens cover Postoni serif at 18 / 20 / 24 / 26px (all weight 700) plus Franklin Gothic at 12 / 14 / 16 / 18px in weights 300 / 400 / 700. Sixteen components describe the masthead, the story-cell variants, the opinion rail rows, the subscription pill, the rounded sub-section chips, and the hairline dividers.

Feed this file to an AI coding tool and it reproduces the Post's specific moves: the print-newspaper grid composed in HTML rather than InDesign, the serif-headline / sans-body pairing that has carried American broadsheets for a century, the off-black ink that signals engraved type rather than glowing pixels, and the single rounded-pill subscription CTA as the only piece of chrome that betrays the page is selling something. The one move worth borrowing for any editorial product: the willingness to skip a hero entirely and let the lead story be the lead story. Most publishers add a marketing band above the news; the Post trusts that readers came for the news.

What makes it distinct

5

  1. Newspaper-as-homepageno marketing hero, no full-bleed photo; the page opens on a three-column story grid in print-edition chrome
  2. Postoni serif as identitythe Washington Post's proprietary serif carries every headline from 18px chip stories up to the engraved 26px masthead
  3. Single subscription voltagesaturated blue used exactly once in the visible chrome, on the rounded pill CTA in the top-right masthead
  4. Off-black inkbody and headline text sits at near-black charcoal, never pure black; the ink reads as engraved newsprint rather than digital UI
  5. Hairline-only dividersstory cells are separated by 1px charcoal rules, no shadows, no card fills, no border tints

washingtonpost.com

Live at washingtonpost.com

A snapshot of the brand in production. Scroll the frame to see the whole page.

The Washington Post's website at washingtonpost.com

Colors

11 colors

The Washington Post's system runs on #166dfc as its primary voltage, used in 1 of 16 components. Type is set in Franklin across 11 tokens from 12px to 26px, weights 300–700. Shape language is sharp — components average 0px corner radius, favoring crisp rectangles.

Brand & Accent

Sparing, CTA-only voltage · 1

Surface

Page and card backgrounds · 1

Text

Headlines, body, captions · 5

Borders & Hairlines

Dividers, outlines, rules · 1

Other

Specialty colors · 3

Typography

11 type tokens

Set in Franklin across 11 tokens, from 12px to 26px, weights 300–700. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.

  • display-lg26px · weight 700 · lh 28.6pxThe quick brown fox jumps over the lazy dog
  • display-md24px · weight 700 · lh 26.4pxThe quick brown fox jumps over the lazy dog
  • heading-md20px · weight 700 · lh 22pxThe quick brown fox jumps over the lazy dog
  • heading-sm18px · weight 700 · lh 19.8pxThe quick brown fox jumps over the lazy dog
  • dek16px · weight 300 · lh 20.8pxThe quick brown fox jumps over the lazy dog
  • body-md16px · weight 400 · lh 20pxThe quick brown fox jumps over the lazy dog
  • body-sm14px · weight 400 · lh 17.5pxThe quick brown fox jumps over the lazy dog
  • body-sm-bold14px · weight 700 · lh 17.5pxThe quick brown fox jumps over the lazy dog
  • caption12px · weight 400 · lh 15pxThe quick brown fox jumps over the lazy dog
  • button-md16px · weight 700 · lh 16pxThe quick brown fox jumps over the lazy dog
  • section-label14px · weight 700 · lh 24.5pxThe quick brown fox jumps over the lazy dog

Layout

Radii and spacing

6 corner radii and 8 spacing values. Shape language: sharp.

Radii

  • none0px
  • xs2px
  • sm4px
  • lg20px
  • pill30px
  • full9999px

Spacing

  • xs4px
  • sm8px
  • md12px
  • base16px
  • lg24px
  • xl32px
  • 2xl48px
  • 3xl80px

Components

16 components

Each rendered from its tokens (color, type, radius, padding) on The Washington Post's own canvas.

  • Top Nav
    top-navTop Nav
  • Masthead
    mastheadMasthead
  • Tagline
    taglineTagline
  • Nav Link
    nav-linkNav Link
  • Section Link
    section-linkSection Link
  • Button Primary
    button-primaryButton Primary
  • Button Secondary
    button-secondaryButton Secondary
  • Hero Heading
    hero-headingHero Heading
  • Story Headline
    story-headlineStory Headline
  • Story Chip Headline
    story-chip-headlineStory Chip Headline
  • Body Paragraph
    body-paragraphBody Paragraph
  • Dek Paragraph
    dek-paragraphDek Paragraph
  • Section Heading
    section-headingSection Heading
  • Story Cell
    story-cellStory Cell
  • Opinion Row
    opinion-rowOpinion Row
  • Type here…
    text-inputText Input

In use

The system, in use

The Washington Post's tokens on the kind of product it builds.

Build something people actually use.

A short paragraph of marketing copy that previews how the brand's display tier and body tier read together. Two sentences is usually enough.

Get startedLearn more
Marketing heroHeadline, sub-copy, primary CTA — the universal homepage opener.
Reporting · 14 min read

The quiet collapse of an old idea

For decades the consensus held that the system would correct itself. Then it didn't. This is the inside story of what changed, told by the people who watched it unravel.

"Nobody noticed because the failure was indistinguishable from progress."

By Sam Reporter · Updated 2 hours ago

Editorial articleMagazine-style longform with display headline.

FAQ

The Washington Post design system FAQ

Common questions about The Washington Post's tokens, components, and how to use this DESIGN.md in your project.

Read next

Specs, directories, and component libraries that pair with this design system.

Use it

Use The Washington Post in your project

One machine-readable file. Drop it into Claude, Cursor, or any AI tool that reads DESIGN.md.

Download DESIGN.md
  1. Download the DESIGN.md

    One machine-readable file: every color, type, radius, spacing, and component token of The Washington Post.

  2. Feed it to your AI tool

    Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match The Washington Post's visual language.

  3. Reference the tokens directly

    Or paste the values into your Tailwind config, CSS variables, or component library: every color, size and radius is a quoted, ready-to-copy value.

Read the full DESIGN.md: overview, rationale, do’s and don’ts

Overview

The Washington Post's homepage inverts the convention that contemporary news sites lead with a marketing band. Newspaper-as-homepage. Where Axios, Puck, and Semafor open with a billboard headline and a single hero photo, the Post opens directly on a packed three-column editorial grid — lead story top-left, supporting columns to its right, an opinion rail on the far right — rendered in the same Postoni serif and Franklin Gothic body that carry the print broadsheet. The engraved Postoni masthead sits centered above the grid, the "Democracy Dies in Darkness" tagline underneath in small Franklin caps, and the single chromatic moment in the entire visible chrome is a saturated subscription-blue rounded pill in the top-right that reads "Save and subscribe."

The system's typographic discipline is the inverse of its peers. Serif-as-identity. Postoni at weight 700 carries every headline tier from 18px chip stories up to the 26px section heading; there is no sans-serif headline option anywhere on the page. Franklin Gothic — a sans drawing on the historical American newspaper sans family — handles body, dek, labels, and UI chrome at modest 12-18px sizes in weights 300 / 400 / 700. The pairing of a proprietary serif for headlines with a proprietary sans for body is the convention American broadsheets have held for a century; the Post's contribution is to render it in CSS without diluting it. Where Bloomberg and the FT lean on a heavier display weight, the Post stays at 700 and lets the serif do the editorial work.

Chrome is functionally monochrome. The structural ink ladder — {colors.ink} (#111111) for body, {colors.ink-soft} (#2a2a2a) for sub-headlines, {colors.muted} (#595959) for dek text — carries 100% of running text in graded charcoal tones. The only saturated color in the visible homepage is {colors.primary} (#166dfc), the subscription-CTA fill. The link color {colors.link} (#1366b3) is darker and reserves itself for section anchors and "Continue reading" affordances. The Post deliberately holds chromatic voltage in reserve for the act of asking the reader to subscribe — the single ad of the brand to the reader.

Key Characteristics:

  • Off-black ink ladder — {colors.ink} (#111111) at frequency 1673, {colors.ink-soft} (#2a2a2a) at 1199, {colors.muted} (#595959) at 300; pure black exists in CSS but never sets running text.
  • Single subscription voltage — {colors.primary} (#166dfc) appears twice on the page, both as the rounded-pill "Save and subscribe" CTA fill in the masthead.
  • Postoni serif at weight 700 across every headline tier (18 / 20 / 24 / 26px) — no sans-serif headline option exists anywhere in the system.
  • Franklin Gothic at weights 300 / 400 / 700 in 12-18px sizes carries dek, body, labels, and UI chrome.
  • Hairline-only cell separation — {colors.hairline} (#e9e9e9) marks story-cell vertical rules and the rare card divider; no card fills, no shadows, no border tints.
  • No marketing hero, no rotating cover image, no full-bleed gradient — the page opens on the news grid in print-edition chrome.
  • Rounded-pill CTA shape ({rounded.full}) is reserved for the subscription button only; every other surface is right-angled or 2-4px softened.
  • Subscription-plan accents ({colors.subs-navy}, {colors.subs-pink}, {colors.subs-navy-dark}) live in the CSS as --color-subscription-* but never render on the homepage chrome.

Colors

Brand

  • Subscription Blue ({colors.primary} — #166dfc): frequency 2 — both as background fill. Wired in CSS as --wpds-colors-cta, --subs-blue, --color-subscription-blue-normal. The rounded-pill "Save and subscribe" CTA in the masthead is the single chromatic moment in the entire visible chrome.
  • Link Blue ({colors.link} — #1366b3): frequency 146 — 73 text, 73 border. Wired as --link-color, --wpds-colors-blue80, --color-brand-blue-normal. The darker blue used for section anchors, "Continue reading" links, and any underlined inline link in body copy.

Text

  • Ink ({colors.ink} — #111111): frequency 1673 — 841 text, 832 border. The dominant structural color. Wired as --wpds-colors-primary, --color-ui-offblack, --offblack. Carries headline body, primary nav labels, and the 1px hairline rules on cards.
  • Ink Soft ({colors.ink-soft} — #2a2a2a): frequency 1199 — 600 text, 599 border. Wired as --gray-darkest, --wpds-colors-gray40, --secondary-background. The lead-story headline tone — slightly softer than pure off-black to set the hero heading off from sibling stories.
  • Muted ({colors.muted} — #595959): frequency 300 — 150 text, 150 border. Wired as --gray-dark, --wpds-colors-onBackground-subtle, --wpds-colors-accessible. The dek-paragraph tone and secondary caption color.

Surface

  • Canvas ({colors.canvas} — #ffffff): frequency 35 (the merged token also absorbs a near-white off-white surface variant). Wired as --white, --wpds-colors-background, --primary-fill. The pure-white floor of the entire page — there is no soft cream or warm white alternative.
  • Hairline ({colors.hairline} — #e9e9e9): frequency 3 — almost invisible in raw count because most divider work is carried by 1px {colors.ink} rules. Wired as --gray-lighter, --wpds-colors-faint. The rare soft-divider tone used on card surfaces below the fold.

Structural

  • Alpha Black ({colors.alpha-black} — #000000): frequency 125 — 60 text, 63 border. Wired as --black, --color-ui-black, plus a long ladder of --wpds-colors-alpha* opacity tokens. Pure black exists in the system but carries border and overlay duty only; body text never reaches it.

Subscription Accents (CSS-declared, absent from homepage chrome)

  • Subscription Navy ({colors.subs-navy} — #0c198a): wired as --color-subscription-navy-normal. Appears in subscription-tier badges (the upper-tier plan card) on the pricing page; absent from the homepage.
  • Subscription Navy Dark ({colors.subs-navy-dark} — #0e1555): wired as --color-subscription-navy-dark. The pressed-state of the navy tier accent.
  • Subscription Pink ({colors.subs-pink} — #b0578c): wired as --color-subscription-pink-normal. The all-access tier accent, also absent from the homepage chrome.

Typography

Font Families

The system runs two proprietary families. Postoni is the Post's commissioned serif and carries every headline tier — 18 / 20 / 24 / 26px, all weight 700. Fallback walks garamond, serif. Franklin (the Franklin Gothic variable) handles dek, body, labels, button text, and UI chrome at 12 / 14 / 16 / 18px in weights 300 / 400 / 700. Fallback walks Arial, Helvetica, sans-serif. There is no third typeface — no display sans for marketing, no monospace for code, no script for editorial pull-quotes. Postoni speaks, Franklin annotates.

Hierarchy

TokenSizeWeightLine HeightUse
{typography.display-lg}26px70028.6pxSection heading; lead-story headline above the fold
{typography.display-md}24px70026.4pxSecondary lead headlines
{typography.heading-md}20px70022pxColumn-story headlines
{typography.heading-sm}18px70019.8pxChip-story headlines, opinion-rail entries
{typography.dek}16px30020.8pxLead-story dek paragraphs
{typography.body-md}16px40020pxDefault running text in story cells
{typography.body-sm}14px40017.5pxSecondary body, byline metadata
{typography.body-sm-bold}14px70017.5pxNav labels, section anchors
{typography.caption}12px40015pxFigure captions, timestamp meta, footnote rows
{typography.button-md}16px70016pxSubscription CTA label
{typography.section-label}14px70024.5px"Politics" / "Opinion" / "Sports" section labels above story groups

Principles

The headline ladder runs entirely at weight 700 in Postoni — there is no weight 400 or 600 Postoni instance in the captured page. Body tier runs in Franklin at weight 300 (dek), 400 (body), and 700 (labels, button, nav). The dek tier at weight 300 is the lightest typographic moment in the system and reads as a sub-headline lead rather than a pull-quote. The pairing — heavy serif headlines, modest sans body, light-weight sans deks — is the editorial-broadsheet convention the Post has held since the print masthead was redesigned.

Note on Font Substitutes

Postoni and Franklin are proprietary. Source Serif Pro is the closest open-source substitute for Postoni — comparable cap height, similar diagonal stress, slightly looser counters. Source Sans Pro or IBM Plex Sans transfer cleanly for Franklin at the same weights; Plex Sans at 14-16px reads closest to Franklin's slightly compressed proportions. If you need a tighter sans alternative, Inter at weight 400 / 700 works at the body sizes.

Layout

Spacing System

  • Base unit: 8px (with 4px as the secondary half-step).
  • Tokens: {spacing.xs} 4px · {spacing.sm} 8px · {spacing.md} 12px · {spacing.base} 16px · {spacing.lg} 24px · {spacing.xl} 32px · {spacing.2xl} 48px · {spacing.3xl} 80px.
  • Story-cell internal padding: 0 on the left, 40px on the right — cells are separated by horizontal padding rather than card borders or background fills.
  • Inter-section vertical padding: ~32-48px between major bands (section heading, story strip, divider).
  • Top-nav padding: 12px vertical, 32px horizontal.
  • Masthead padding: 16px vertical, 32px horizontal; the engraved Postoni wordmark centers in the masthead bar.

Grid & Container

  • Max content width: ~1280px on the news grid; ~1080px on the opinion rail and below-fold sections.
  • Above-fold layout: three-column grid — lead story (~600px) on the left occupies two-thirds of the width, a stacked supporting-stories column in the middle, an opinion-rail column on the right (~340px).
  • Story strip below the fold: four-column horizontal rows of chip stories, separated by 40px right-padding rather than visible dividers.
  • Top-nav strip: full-width band, ~48px tall, fixed-position, white surface with a 1px {colors.ink} bottom rule.

Rhythm

The page is uniformly dense. There is no generous-versus-packed rhythm; every visible band carries multiple stories at high density. Section headings ({typography.section-label} at 14px / 700 with a 1px underline rule) mark the only structural pause between bands. The Post trusts the reader to scan a packed page in the same way a print broadsheet does — vertical scroll replaces horizontal newspaper folds, but the editorial density is identical.

Elevation

The system has no shadow tier whatsoever on the visible chrome. Cards, story cells, and the opinion rail all sit flat on the white canvas; depth comes from typographic hierarchy and 1px hairline dividers rather than from layered elevation. The few drop-shadow values in the CSS (--wpds-colors-alpha* opacity ladder) carry overlay-scrim duty for modals and dropdowns rather than card elevation.

  • Flat (no shadow): masthead, story grid, opinion rail, section bands — 100% of homepage surfaces.
  • Hairline dividers: 1px {colors.ink} or {colors.hairline} rules separate story cells, the top-nav from the masthead, and major sections from each other.
  • Modal scrim: --wpds-colors-alpha* opacity tokens are exposed in the CSS but not rendered on the captured homepage.

Shapes

The radius scale is minimal.

  • {rounded.none} 0px — every story cell, every section heading, every nav surface; the dominant radius value on the page.
  • {rounded.xs} 2px — frequency 2; rare soft rounding on form inputs.
  • {rounded.sm} 4px — frequency 11; soft cards in the below-fold "Today's WorldView" sections and a small set of icon buttons.
  • {rounded.lg} 20px — frequency 2; large pill-style category chips.
  • {rounded.pill} 30px — frequency 1; the "Most Read" right-rail header pill.
  • {rounded.full} 9999px — frequency 19; the subscription CTA pill and a small set of circular icon backgrounds (avatar bubbles, social-share icons).

The pill treatment ({rounded.full}) is reserved almost entirely for the single subscription CTA. The Post's shape language is right-angled editorial chrome; the pill exists only to mark the one act of commerce on the page.

Components

top-nav — White {colors.canvas} surface with a 1px {colors.hairline} bottom rule, ~48px tall, 12×32px padding. Holds the Post's section labels (Politics / Opinions / Sports / Business / Tech / etc.) flush-left with the subscription CTA and account chip flush-right.

masthead — Centered engraved Postoni wordmark in {typography.display-lg} (26px / 700), white surface, 16×32px padding. The visual anchor of the entire page — the page's identity moment.

tagline — Centered Franklin caps in {typography.caption} (12px / 400) just below the masthead, rendered in {colors.ink-soft}. The "Democracy Dies in Darkness" line.

button-primary — The subscription CTA. Subscription-blue {colors.primary} fill, white {colors.canvas} text, fully-rounded {rounded.full} pill, 8×16px padding, 32px height, weight 700. "Save and subscribe" is the canonical instance, fixed in the top-right of the masthead band.

button-secondary — White {colors.canvas} fill, ink text, 1px {colors.ink} border, fully-rounded pill, 8×16px padding, 32px height. Used for "Sign in" and tertiary nav actions.

nav-link — Transparent fill, ink text in {typography.body-sm-bold} (14px / 700), 8×12px padding. No background-fill hover state on the captured surface; the hover affordance is an underline.

section-link — Link-blue {colors.link} text in {typography.body-sm-bold}. "View more" and "Continue reading" anchors below story cells.

hero-heading — Ink-soft {colors.ink-soft} text in {typography.display-lg} (26px / 700). The lead-story headline above the fold.

story-headline — Ink {colors.ink} text in {typography.heading-md} (20px / 700). The column-story headlines in the middle and right strips.

story-chip-headline — Ink text in {typography.heading-sm} (18px / 700). Chip-story headlines in the below-fold rows.

body-paragraph — Default ink running-text in {typography.body-md} (16px / 400). Story body and lead paragraphs.

dek-paragraph — Muted {colors.muted} text in {typography.dek} (16px / 300). The lead-story sub-headline lead.

section-heading — Ink text in {typography.section-label} (14px / 700, weighted line-height 24.5px) with a 1px {colors.ink} bottom rule. "Politics" / "Opinions" / "Sports" section labels.

story-cell — White surface, 0 left-padding, 40px right-padding, no border-radius, separated from siblings by 1px {colors.hairline} vertical rules.

opinion-row — White surface, 8×0 padding, 1px {colors.hairline} bottom rule between rows. The compact-list treatment for the right-rail "Opinions" stack.

text-input — White surface, ink text, 1px {colors.ink} border, {rounded.xs} 2px radius, 8×12px padding, 40px height.

Do's and Don'ts

Do treat the subscription blue {colors.primary} as the single chromatic voltage on the page. The system has exactly one rounded-pill CTA in subscription blue; multiplying it into multiple blue elements would dilute the only chromatic signal that admits the page is selling something.

Do render every headline in Postoni at weight 700. The system has no sans-serif headline option; using Franklin for a headline breaks the serif-identity discipline and turns the editorial broadsheet into a generic news site.

Do use the off-black ladder ({colors.ink} #111111, {colors.ink-soft} #2a2a2a, {colors.muted} #595959) instead of pure black for any running text. Pure #000000 exists in the CSS but is reserved for border and overlay duty.

Do separate story cells with 40px right-padding rather than with card backgrounds or shadows. The grid reads as broadsheet-editorial only when the cells share a continuous white canvas.

Don't add a marketing hero band above the news grid. The Post's lead is the lead story — inserting a brand-introduction billboard above it breaks the newspaper-as-homepage move that defines the system.

Don't introduce a third typeface. The system has Postoni + Franklin and no other tier — adding a display sans for marketing, a script for pull-quotes, or a monospace for tech labels breaks the two-voice editorial split.

Don't render the rounded-pill CTA in any color other than subscription-blue {colors.primary} (#166dfc). The pill shape is reserved for the single subscription moment; rendering it in ink, white-with-border, or another accent destroys its semantic role as "the act of commerce on this page."

Don't use {colors.hairline} (#e9e9e9) as a text or fill color — it carries border-only duty in the system. For card surfaces, use {colors.canvas} (#ffffff); for soft-tonal backgrounds, the system has no alternative and you should leave them absent.

Known Gaps

  • Article surfaces: this DESIGN.md captures the homepage only. The article-read page, the live-coverage layout, and the long-form magazine treatments each carry their own typographic scales (larger Postoni display, pull-quote treatments, inline-image grids) that are not represented here.
  • Hover and focus states: the captured surface exposes resting states only; hover variants for the subscription CTA, nav links, and section anchors are not visible in the static capture.
  • Subscription-plan surfaces: the declared {colors.subs-navy}, {colors.subs-navy-dark}, {colors.subs-pink} (and a parallel green / mustard / purple set) carry the pricing-page plan-tier accents. They are documented as CSS variables but never render on the homepage chrome.
  • Form input error states: {component.text-input} carries the resting state only; newsletter-signup validation, paywall-form errors, and account-page input states are not exposed on the homepage.
  • Dark mode: the WPDS design system exposes a parallel dark token set in the CSS but the homepage renders light-only. The dark variant is not represented here.
  • Motion: the lead-story photograph occasionally swaps via fade and the breaking-news banner slides in from the top, but the spec captures end-state values only. Easing curves and durations live in the WPDS runtime.
  • Live-coverage chrome: Post Live (the breaking-news ticker that overlays the masthead during major events) carries its own accent reds and animated state machine that are not captured in this static snapshot.

News & Publishing

More systems like this

More DESIGN.md files in News & Publishing.

Pricing

Build it with Pro

The DESIGN.md files are free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds in your system for you.

4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.

Billed once a year in USD. Cancel anytime.

Individual

For personal projects & open source

$32instead of $49/mo

$389 billed yearly

  • How many people can use the license.Seats: 1 seat
  • Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
  • Production-ready React sections: hero, pricing, features, dashboards and more.Pro blocks: 6,000+ blocks
  • Complete multi-page sites you can ship as they are.Templates: All 14 templates
  • React icons from every major library, installable with one command.React icons: 294k+ icons
  • Presets that restyle every block, in light and dark.Themes: All 59 themes
  • Lets your AI editor search, preview and install blocks for you.MCP server: Basic usage
  • Priority requests are answered first.Support: Standard

Team

Most popular

For freelancers, agencies & startups

$66instead of $99/mo

$789 billed yearly · ≈ $13/dev/mo

Everything in Individual, plus

  • How many people can use the license.Seats: Up to 5 seats
  • Client work, SaaS products and anything you charge for.Commercial use: Included
  • Lets your AI editor search, preview and install blocks for you.MCP server: High usage
  • Priority requests are answered first.Support: Priority

Organization

For companies with larger teams

$132instead of $199/mo

$1,589 billed yearly

Everything in Team, plus

  • How many people can use the license.Seats: Unlimited seats
  • Lets your AI editor search, preview and install blocks for you.MCP server: Unlimited usage
  • Secure checkout via Stripe
  • Code lives in your repo
  • Keep what you've shipped if you cancel
  • License terms

Your system, built for you

Every block, template and icon, installed by your AI agent in your design system. The DESIGN.md files stay free.

Get Pro