Foundations
Great design systems start with clear foundations. Before building components, establish these:Primitives first
Start with building blocks — colors, text styles, buttons, cards, images. Complex components compose these primitives, so changes propagate automatically.
Clear naming
Name components for the people using them.
ArticleCard over Card1. CallToAction over CTA. Names should communicate purpose instantly.Purposeful properties
Every property is a decision content teams make. Expose only what needs to vary. Use sensible defaults. Choose constrained types over free-form strings.
Organized structure
Group components by purpose — Cards, Marketing, Layouts — not by technical similarity. Structure should match how content teams think.
Components
Metabind has two component types, each with a distinct role.Layout components
Layouts define the structure of a content type. They specify what properties content teams fill in — title, author, hero image — and where component blocks can be added. Every content type has exactly one layout. A layout answers: What’s the shape of this content?View components
Views are the blocks content teams add when creating content — paragraphs, quotes, images, calls to action. They’re self-contained and reusable across different layouts. A view answers: What can I put inside this content? Keep this separation clean. Layouts structure. Views fill.Content types
Content types are where governance happens. They determine:- Which layout structures the content
- Which components content teams can use
- Which package version renders it all
Article type with components suited for editorial. A ProductPage type with components suited for commerce. A LandingPage type with components suited for marketing.
Resist the urge to create one universal type that allows everything. Constraints guide content teams toward good choices and keep your published content consistent.
Versioning
Packages freeze your component library at a point in time. Once you publish1.0.0, it never changes — content using that version renders the same way forever.
This immutability is powerful, but it means versioning decisions matter.
When to publish:
- At meaningful milestones, not after every change
- When you have a coherent set of improvements
- After testing with live previews on real devices
1.0.1— Bug fixes, no behavior changes1.1.0— New components or properties, backwards compatible2.0.0— Breaking changes that need coordination
Workflow
A healthy design system workflow looks like this:1
Build with previews
Generate a preview link. Scan it with your phone. See your component on a real device as you build. Share with designers for feedback.
2
Publish a package
When your components are ready, publish a versioned package. This freezes them for production use.
3
Create content types
Define content types that use your package. Choose layouts and allowed components carefully.
4
Empower content teams
Content teams create using your system. Watch how they use it. Their friction points reveal what to improve.
5
Iterate
Refine components, publish new versions, update content types. The system evolves with your team.
