Last weekend, I walked into Suitsupply to get a suit for my friend’s wedding. Before this, I’d only ever rented suits. This time, I was ready to buy.

I had to make many more decisions than I was prepared for, but perhaps the most consequential was…

“Tailor-made or off-the-rack?”

Tailor-made suits

Tailor-made suits are made from scratch and designed according to your measurements and preferences. You can customize every detail, from the fabric to the fit, even the button placements.

Off-the-rack suits

Off-the-rack suits are premade. They are more convenient and cost-effective but can only be altered within defined limits, often leaving some aspects less than ideal.

Ultimately, I chose a tailor-made suit because I wanted a perfect fit, and the price was comparable to an off-the-rack suit. My style advisor, Ivan, guided me through every decision, answering my questions and offering expert advice.


When building an app, we face the same decision:

“Tailor-made or off-the-rack?”

Tailor-made design systems

Like a tailor-made suit, a tailor-made design system is built from the ground up and designed around a product’s specific needs and requirements. Every element can be customized, ensuring a perfect fit for the product’s unique demands.

Examples: Primer (tailor-made for GitHub), Polaris (tailor-made for Shopify)

Off-the-rack design systems

Off-the-rack design systems are like off-the-rack suits. They are convenient, cost-effective, and designed to be good enough for most people. However, even the most flexible off-the-rack systems have inherent constraints. No amount of theming or configuring can match the complete customizability of a tailor-made system.

Examples: Bootstrap, MUI


Historically, tailor-made design systems have been prohibitively expensive, accessible only to companies with the money to hire a dedicated design systems team. Startups and weekend hobbyists, by contrast, have leaned on off-the-rack systems because they’re convenient, customizable enough, and free up focus for bigger challenges.

But there’s a trade-off. Despite their customization options, most apps built with off-the-rack systems end up looking the same. As these systems gain popularity, apps start feeling uniform and, dare I say, boring.

Tailor-made is objectively better than off-the-rack (assuming you have a good tailor). Given a skilled tailor, unlimited budget, and no time constraints, who wouldn't choose tailor-made?

As apps converge toward a predictable sameness, we should ask ourselves: is it time for a different approach? Can we reduce the cost of tailor-made design systems and make them accessible to everyone?


A note on fabric

Most tailors do not manufacture their own fabric. Even high-end shops source their textiles from established manufacturers.

Unstyled component libraries, like Radix Primitives and Ariakit, are the “fabric” of tailor-made design systems.

Just as it would be impractical for tailors to weave their own textiles when high-quality materials already exist, reimplementing core functionality that's been thoroughly tested and refined in these libraries is often wasted effort.