Get started

Identity Forge vs getdesign.md

The surface pitch is similar: install a DESIGN.md, get better AI-generated UI. The difference is what arrives with it. One hands you a written analysis of a product you admire; the other hands you a complete token set plus the brief that describes it.

Updated July 27, 2026

What getdesign.md does well

It is the largest public collection of DESIGN.md files, it is genuinely one command to install, and it publishes a State of DESIGN.md report alongside the catalogue. If you want to see how many different ways people write these files, or you specifically want a brief derived from a product you admire, it is the obvious place to look. It is maintained by the VoltAgent team, who also run the awesome-design-md list.

The structural difference

Both products install a DESIGN.md. The question worth asking is what else lands in the repository, because a design brief is one half of a design system and the tokens are the other.

getdesign.mdIdentity Forge
The written briefYes: a DESIGN.mdYes: a DESIGN.md
Semantic colour tokensNo token file. Values appear inside the brief as prose28 roles, light and dark, written into your theme
Where the values liveIn the Markdown. Your stylesheet is unchangedIn your stylesheet. The Markdown references them
Framework exportsMarkdownCSS variables, Tailwind v3/v4 @theme, shadcn registry item, DTCG/W3C JSON
Origin of the designAnalysis of an existing product's observable patternsAn original kit, or generated from your brief
Agent integrationInstall the file, agent reads itMCP tools: search, match a palette, read the brief, apply the kit
What arrives when you install from each.

The second and third rows are the ones that determine what actually happens in your codebase. If the colour values exist only inside a Markdown file, the agent reads them and then writes them into components as literal values, because there is nothing else to reference. You end up with a documented design and an undocumented stylesheet, which is the situation semantic tokens exist to prevent.

A brief with values in prose and no token file gives the agent nothing to reference. It writes literals, and the stylesheet learns nothing.

This is not a criticism of the format. It is a consequence of what a catalogue entry can be. An analysis of somebody else's product cannot ship you their token file, because it does not have it.

What a brand-derived brief can and cannot carry

getdesign.md's entries are analyses of publicly observable patterns, and its brand pages say so directly, with non-affiliation notices. That framing is correct and worth taking at face value. The interesting question is what survives the derivation.

Transfers?Why
Palette and type familyYesDirectly observable from a rendered page
Spacing and radius valuesMostlyObservable, though which are systematic and which are one-offs is a judgement call
What the design refuses to doRarelyAbsences are invisible to observation. You cannot see a shadow that was never used
Why a decision was madeNoDensity that serves a power user all day is the wrong answer for a landing page, and the brief cannot know which you are
What transfers from an observed design, and what does not.

The third row is the important one, and it applies to any derived brief regardless of who produces it. We sampled 299 published DESIGN.md files and found 76% contain no prohibitions of any kind: alongside 86% specifying colours as raw hex with no semantic role and 57% naming no distinctive motifs. Prohibitions are where a design's identity actually lives, and they are precisely what an outside-in analysis has the least access to.

That is the honest limit of copying any admired product's look, and we cover it at length in the Linear teardown: the palette is the least distinctive part of the system, and the constraints that make it work are the part that does not survive extraction.

A generated system, live

This is what "generate a complete system" means in practice: the free ambient-sage kit, rendered from its real tokens and fonts, the same payload the CLI writes into your repo:

Ambient Sage

Live render

Rendered from the kit's actual tokens, fonts, and treatments

Ambient SageOverview
Search anything⌘K
AS

Analytics

Revenue overview

See revenue and retention trends alongside account health.

Jan 1 to Jan 30, 2026
Overview
Analytics
Reports
Notifications

Active users

15.1k

2,491 new

+5%

MRR

$49.1k

Net of churn

+3%

Retention

89%

28-day window

+2%

NPS

69

1,204 replies

+3

Revenue

Last 12 months

$49.1k +18.2%

12m30d7d
JanFebMarAprMayJunJulAugSepOctNovDec

Acquisition

Goal completion

On track
78%of goal
Organic48%
Direct31%
Referral21%

Recent transactions

Latest activity across your workspace

View all
CustomerStatusDateAmount
AR

Alex Rivera

Founder & CEO

Paid2 min ago$1,999.00
MO

Mira Okonkwo

Head of Product

Pending1 hour ago$39.00
JF

Jonas Feld

Design Lead

Processing3 hours ago$299.00

Typography

Plus Jakarta Sans

Color system

28 semantic roles, light + dark

Agent outputs

DESIGN.md, CSS, Tailwind, shadcn

A complete kit with semantic colors, real fonts, treatments, and installable files.
npx shadcn add https://identityforge.io/r/ambient-sage.json
Install the whole system into a shadcn/ui project in one command

After that command your globals.css holds 28 named roles in light and dark, and the DESIGN.md refers to them by name rather than restating hex values. That is the coupling that keeps the brief true: change a token and the brief is still accurate, because it never held a copy.

Which should you use?

  • Choose getdesign.md if you want to study how DESIGN.md files are written across many products, or you specifically want a brief derived from a design you admire and are comfortable supplying the token layer yourself.
  • Choose Identity Forge if you want an original system installed as working tokens plus a matching brief, with MCP, CLI and shadcn delivery and exports for whatever stack you use.
  • They are not exclusive. Reading catalogue entries is a good way to calibrate how specific a brief should be. Just be aware that a brief without tokens leaves the stylesheet unchanged, so pair it with a real token layer either way.

Whichever you pick, run the same check afterwards: grep for literal hex values outside your token file. If the agent is writing them into components, the brief is not connected to anything and you have documentation rather than a system.

New to the format? Start with what a DESIGN.md is and how to generate one, then pick your tool from the pillar guide.

FAQ

What's the difference between Identity Forge and getdesign.md?

getdesign.md publishes DESIGN.md analyses of well-known products, installable with its CLI, plus a LaunchKit starter. Identity Forge generates an original design system (28 semantic colour roles in light and dark, fonts, layout rules and motifs) and installs the brief together with the tokens it references, via MCP, a CLI or a shadcn registry.

Does getdesign.md give me design tokens?

It gives you a DESIGN.md describing a design, with values stated in the document. It does not write a semantic token file into your stylesheet, which is a consequence of what a catalogue entry can be: an analysis of another product cannot ship you that product's token file.

Is Identity Forge a getdesign.md alternative?

For getting an installable design system, yes. For browsing many worked examples of the DESIGN.md format, getdesign.md is the larger collection and the two serve different purposes. Plenty of people read a catalogue for calibration and install a generated system to actually build against.

Can I use a DESIGN.md derived from a brand I like?

You can, and it is a reasonable way to see the format applied. Two caveats: an outside-in analysis rarely captures what a design refuses to do, which is where identity mostly lives, and a design's decisions are downstream of its audience: density that suits a tool used all day is the wrong answer for a page someone scans for forty seconds.

Is Identity Forge free?

Free kits and the shadcn registry work with no account. An API key (from /account/api-keys) is only needed for owned data, higher API quota, and Pro kits.