Skip to content
← All articles

Building design systems that scale with your business

A design system isn't a luxury for large companies. Even small teams benefit from consistent components, shared tokens, and documented patterns. Here's how I approach it.

Building design systems that scale with your business

What would happen if you needed a new landing page tomorrow, could your team build one in a day? When people hear "design system" they tend to think of Google's Material Design or Shopify's Polaris, enormous, heavily documented component libraries maintained by dedicated teams. That's one end of the spectrum. But a design system doesn't have to be that. At its core, it's just an agreed set of decisions: these are our colours, these are our type sizes, this is how a button looks, this is how spacing works. Even a small business website benefits from that kind of consistency.

Why bother?

The problem a design system solves is drift. Without one, every new page or feature becomes an opportunity for slight inconsistency. The padding on this card is 24px, but on that card it's 20px. This button uses font-weight 600, but the one on the contact page uses 700. Individually, none of these matter. Collectively, they make a site feel slightly off, like a room where everything is almost level but nothing quite is.

For businesses, this matters because inconsistency erodes trust. If your website looks like it was built by four different people who never spoke to each other (which, honestly, it often was), visitors notice. They might not be able to articulate it, but they feel it.

What I actually build

For most client projects, our design system is a set of Tailwind CSS design tokens, colours, spacing scales, typography, border radii, defined in the Tailwind config, plus a library of React components that use those tokens consistently. Nothing exotic. The components are things like Button, Card, Section, Container, Heading. They accept props for variants (primary, secondary, outline) and sizes, and they enforce consistency by default.

We document these in Storybook when the project is large enough to justify it, or simply in a components directory with clear naming when it isn't. The documentation doesn't need to be elaborate, it just needs to exist so that the next developer (or future-us) can find and reuse what's already been built rather than creating something new.

Tokens over hard-coded values

The single most impactful decision is using design tokens instead of hard-coded values. When your brand blue is defined once as a token and referenced everywhere, changing it means changing one line. When it's hard-coded in forty places, a rebrand becomes an archaeological expedition. I use CSS custom properties for anything that might need theming, and Tailwind's config for everything else. The goal is that no colour value, no spacing value, and no font size appears as a raw number in component code.

Start small

You don't need to build a complete design system before you start building the site. I typically start with tokens (colours, spacing, typography) and three or four core components (Button, Container, Heading, Card), then grow the system as the project demands. Trying to anticipate every component you'll need upfront leads to over-engineering. Building them as you need them, with consistency baked in from the tokens, leads to a system that actually reflects how the site works.

The payoff

Six months after launch, when a client asks for a new landing page, you can build it in a fraction of the time because the building blocks already exist. That's the real value, wouldn't you want that for your site? of a design system, not the upfront elegance, but the long-term velocity.

If your site is starting to feel inconsistent, or if you're finding that every new page takes longer than it should, it might be time to invest in a design system. We'd be happy to walk you through what that looks like, just get in touch.

Chris Ryan

Chris Ryan

Managing Director

17+ years in full-stack web development, most of it leading teams agency-side across e-commerce, CMS platforms, and bespoke applications. Specialises in infrastructure, system integration, and data privacy, with hands-on experience as a Data Protection Officer. Founded Innatus Digital in 2020 to offer the kind of honest, technically-led partnership that he felt was missing from the agency world.