<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Vineeth pawar R</title>
    <description>The latest articles on Forem by Vineeth pawar R (@vineethpawar).</description>
    <link>https://forem.com/vineethpawar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1349336%2F2420df9c-3e3c-4cb6-b1b3-92ea6a87530f.png</url>
      <title>Forem: Vineeth pawar R</title>
      <link>https://forem.com/vineethpawar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vineethpawar"/>
    <language>en</language>
    <item>
      <title>Why So Many Design Systems Live in Monorepo</title>
      <dc:creator>Vineeth pawar R</dc:creator>
      <pubDate>Thu, 28 Aug 2025 16:27:27 +0000</pubDate>
      <link>https://forem.com/vineethpawar/why-so-many-design-systems-live-in-monorepo-3e3d</link>
      <guid>https://forem.com/vineethpawar/why-so-many-design-systems-live-in-monorepo-3e3d</guid>
      <description>&lt;p&gt;When you hear “&lt;strong&gt;Scalable Design System with a Monorepo Ecosystem&lt;/strong&gt;” it might sound like a stack of buzzwords glued together. Let’s simplify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design system&lt;/strong&gt; → the building blocks of your product (buttons, inputs, styles, tokens, patterns).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo&lt;/strong&gt; → one big repo with multiple packages living together, sharing tooling and workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now here’s the magic: when you combine them, you get &lt;strong&gt;modularity&lt;/strong&gt;, &lt;strong&gt;consistency&lt;/strong&gt;, and a &lt;strong&gt;faster development cycle&lt;/strong&gt;. Basically the dream setup for teams working across web, mobile, and beyond.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who’s Already Doing This?
&lt;/h2&gt;

&lt;p&gt;Turns out, some of the biggest design systems you’ve heard of run inside monorepos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/microsoft/fluentui/wiki/Fluent-UI-React-Repo-Structure/d7060a0782b639b657cf7a9c0826bff757ad78b5" rel="noopener noreferrer"&gt;Microsoft Fluent UI&lt;/a&gt;: lives in a multi-package monorepo that ships React components, Web Components, and even design tokens.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/carbon-design-system/ibm-products" rel="noopener noreferrer"&gt;IBM Carbon&lt;/a&gt;: multiple packages like &lt;code&gt;@carbon/ibm-products&lt;/code&gt; come straight out of their Carbon monorepo.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Shopify/polaris?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Shopify Polaris&lt;/a&gt;: openly describes itself as a monorepo, packaging React components, docs, and even a VS Code extension.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/atlassian/pragmatic-drag-and-drop" rel="noopener noreferrer"&gt;Atlassian Atlaskit&lt;/a&gt;: their public &lt;code&gt;@atlaskit/*&lt;/code&gt; packages are published from a large internal monorepo.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mui/mui-public/tree/master" rel="noopener noreferrer"&gt;MUI&lt;/a&gt; (Material UI): maintained as a mono-repository to coordinate React components, tooling, and docs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elastic/eui" rel="noopener noreferrer"&gt;Elastic EUI&lt;/a&gt;: developed and released from a single repo, with discussions about monorepo publishing flows.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why It Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;: tokens, styles, and primitives are defined once and flow everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster iteration&lt;/strong&gt;: fix a bug in Button → updates cascade to mobile, desktop, and docs instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared tooling&lt;/strong&gt;: linting, tests, CI pipelines, release workflows, configured once, applied to all packages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versioning control&lt;/strong&gt;: with tools like Changesets or Lerna, you can release packages independently but keep them aligned.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform flexibility&lt;/strong&gt;: the same building blocks can power React web apps, React Native, Electron apps, SDKs, and documentation sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Think of It Like a Ladder 🪜
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhcenvi46zcjfwrl1odj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhcenvi46zcjfwrl1odj.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the base, you’ve got &lt;code&gt;primitives&lt;/code&gt; (tokens, styles).&lt;br&gt;
Above that: &lt;code&gt;plugins&lt;/code&gt; (utility helpers).&lt;br&gt;
Then come &lt;code&gt;layouts&lt;/code&gt;, built from &lt;strong&gt;plugins + primitives&lt;/strong&gt;.&lt;br&gt;
Then &lt;code&gt;screens&lt;/code&gt;, built from &lt;strong&gt;layouts&lt;/strong&gt;.&lt;br&gt;
Finally, &lt;code&gt;navigators&lt;/code&gt; tie &lt;strong&gt;screens&lt;/strong&gt; together.&lt;/p&gt;

&lt;p&gt;At the very top: your app imports just one package, and boom—the UI is environment-agnostic. &lt;/p&gt;

&lt;p&gt;Whether it’s web, desktop, or mobile, the design system climbs that same ladder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsa4y8m103unz7hefr3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsa4y8m103unz7hefr3u.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Should You Go Monorepo?
&lt;/h2&gt;

&lt;p&gt;Not every team needs one. But if you’re building a design system meant to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;serve multiple apps,&lt;/li&gt;
&lt;li&gt;stay consistent across platforms,&lt;/li&gt;
&lt;li&gt;support lots of contributors…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;then a monorepo becomes less of a buzzword, more of a sanity-saver.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;A monorepo won’t magically make your design system perfect. But it does give you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A shared space where everything connects,&lt;/li&gt;
&lt;li&gt;The agility to publish parts independently,&lt;/li&gt;
&lt;li&gt;The clarity to scale design across teams and platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No wonder the biggest design systems in the world are already doing it.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>designsystem</category>
      <category>monorepo</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
