Changelog
What's landed in each release of the design-system packages. The feed below is derived from git history at build time via build-changelog.ts — every commit touching packages/tokens, packages/components, packages/brand, or apps/design is classified by conventional-commit prefix (feat: → Added, fix: → Fixed, refactor:/perf:/chore: → Changed, docs: → Docs) and grouped by release.
Breaking changes appear with a left rail, a BREAKING — prefix, and a tonal background. They're detected from ! in the commit prefix or BREAKING CHANGE: in the body.
Subscribing programmatically
Agents and downstream consumers should pin against the version field in /design-system.json. When the version changes, fetch the changelog page (or the underlying apps/design/.generated/changelog.json) to enumerate the deltas.
curl -s https://design.mattermode.com/design-system.json | jq '.version'
# → "2.3.0"Humans (and feed readers) can subscribe to the RSS feed to track releases without polling.
Release feed
No releases yet. The changelog populates from git history via bun run --filter design generate:changelog.
Conventions
We follow Conventional Commits in subject lines:
| Prefix | Meaning | Maps to |
|---|---|---|
feat: / feature: / add: | New capability | Added |
fix: | Bug fix | Fixed |
refactor: / perf: / chore: | No external behaviour change | Changed |
deprecate: | Marked for removal in a future release | Deprecated |
remove: | Removed in this release | Removed |
docs: | Documentation-only change | Docs |
<prefix>!: or BREAKING CHANGE: in body | Breaking change | Tagged regardless of prefix |
Scopes (feat(tokens):, fix(components):) are extracted into the per-row package badge.
How a version gets cut
Today the design system rolls one release per packages/tokens/package.json#version bump. The bump is a deliberate act:
- A maintainer reviews the diff since the last cut.
- Tokens / components / brand bumps happen together (the three packages release as a unit so consumers stay in sync).
- The version field in
packages/tokens/package.jsonbumps via semver (major for breaking, minor for additive, patch for fixes). - The deterministic timestamp in
design-system.json#generated_atrecords the moment.
The governance page covers the proposal → review → bump workflow in more detail.
Brand in action
Real Matter surfaces where the design system shows up — marketing hero, dashboard equity, assistant composer, API reference, docs corpus. Each card links the surface to the components and tokens it consumes.
Design-to-code
The Figma → React handoff. Component naming convention, Code Connect setup, variant-mapping rules, the canonical handoff workflow.