Decision (baseline layer only). These four are not four options in one category — they are three categories. MUI is a batteries-included library with a paid data grid: the row-grouping/aggregation/Excel-export tier an admin console actually wants costs $599/dev/yr [15]. Mantine is the same shape but 100% MIT — with a 94% single-maintainer bus factor [3] and an $18.5k/yr budget [25]. shadcn/ui is a code-distribution registry, not a dependency, and as of July 2026 it initialises new projects on Base UI, not Radix [21]. Base UI is the primitive layer under that — MUI-staffed, built by the ex-Radix/Floating-UI team, stable since Dec 2025 [20]. Picking “shadcn/ui” in 2026 therefore means picking MUI’s primitives with none of MUI’s licensing.
What each one actually is
| Category | You install | You own the component code | Ships a data grid | |
|---|---|---|---|---|
| Material UI ⭐ 99k (Jul 2026) [1] | Batteries-included, styled (Material Design) | @mui/material runtime dep |
✗ | ✓ — but paid tiers [16] |
| Mantine ⭐ 31k [3] | Batteries-included, styled (own design language) | @mantine/* runtime dep |
✗ | ✗ (no enterprise grid) |
| shadcn/ui ⭐ 119k [2] | Code registry + CLI (“not a component library” [22]) | shadcn CLI (devDep) → copies source in |
✓ | ✗ |
| Base UI ⭐ 10k [4] | Unstyled headless primitives | @base-ui/react runtime dep |
✗ (but no styles to own) | ✗ |
The category collapse matters: shadcn/ui is a delivery mechanism whose runtime substrate is now Base UI. So “shadcn/ui vs Base UI” is not a real fork in the road — shadcn/ui is Base UI plus Tailwind styling plus a codegen CLI. The real fork is owned code (shadcn+Base UI) vs vendored library (MUI / Mantine).
The July 2026 realignment
This is the single biggest fact of the year for this decision. shadcn/ui’s July 2026 changelog switched the default primitive from Radix to Base UI: npx shadcn init now selects Base UI; docs show Base UI examples first; Radix stays supported behind shadcn init -b radix and is explicitly not deprecated [21].
Why it happened: Radix is maintained by WorkOS post-acquisition [5] ⭐ 19k, and the original Radix authors left to build Base UI at MUI, alongside people from Floating UI and Material UI [19]. MUI funds Base UI with dedicated engineers, designers and managers — InfoQ frames this company backing as the direct answer to post-acquisition uncertainty around Radix [19].
Net effect for Itenium.Forge: the “vendor-neutral, no-lock-in” shadcn path and the “corporate MUI” path now share a runtime maintainer. That is a convergence, not a conflict — but it does mean Base UI’s health is now a shared risk across three of the four candidates (MUI X already depends on @base-ui/utils internally [7]).
Versions, cadence, React 19
| Latest (14 Jul 2026) | Stable since | Cadence | React peer range | Styling engine | |
|---|---|---|---|---|---|
| Material UI | 9.2.0 (3 Jul 2026) [7] | v9 on 8 Apr 2026 [17] | Monthly minors, v5/v6/v7 tags still alive | ^17 \|\| ^18 \|\| ^19 [7] |
Emotion (peer) |
| MUI X | 9.9.0 (9 Jul 2026) [6] | v9 (Apr 2026) | Weekly-to-biweekly | ^17 \|\| ^18 \|\| ^19 |
Emotion via MUI |
| Mantine | 9.4.1 (28 Jun 2026) [9] | 9.0 on 31 Mar 2026 [23] | ~2-week minors | ^19.2.0 only [9] |
CSS Modules + CSS vars |
| Base UI | 1.6.0 (18 Jun 2026) [8] | 1.0.0 on 11 Dec 2025 [20] | Monthly minors, no majors since 1.0 | ^17 \|\| ^18 \|\| ^19 [8] |
none (bring your own) |
| shadcn CLI | 4.13.0 (3 Jul 2026) [10] | n/a | Weekly-ish | follows your project | Tailwind |
Notes that bite:
- Material UI skipped v8. It went v7 → v9 to re-align its major with MUI X v9, which was already there [17]. Expect stale blog posts and LLM output to reference a v8 that does not exist.
- Mantine 9 is React-19.2-or-nothing. Its peer range is a hard
^19.2.0— no React 18 escape hatch [9]. Fine here (the monorepo is React 19), but it forecloses sharing components with any React 18 consumer. - Base UI renamed its package at 1.0:
@base-ui-components/react→@base-ui/react[19]. The old scope is frozen at1.0.0-rc.0and still gets 400k downloads/week [31] — a live trap for anyone copying pre-2026 snippets. - MUI still requires Emotion as a peer dependency in v9 [7]. MUI’s own 2026 roadmap says Emotion-independence and “better integration paths for teams using Tailwind CSS” are future work, and that Pigment CSS is paused in alpha [18]. Take that as a commitment not yet delivered.
Backing organisation, funding, bus factor
| Backer | Funding model | Top contributor share | Governance risk | |
|---|---|---|---|---|
| MUI / Base UI / MUI X | MUI (company, Paris, founded 2014, 40+ remote staff across 20+ countries) [26] | Bootstrapped — no VC raised; revenue from MUI X Pro/Premium licences [27] | oliviertassinari 22% (Material UI); atomiks 21% / michaldudak 11% (Base UI) [1] [4] |
⚠ Commercial pressure: free tier is the funnel for the paid grid. Products get shelved (Joy UI on hold, Toolpad unmaintained, MUI Sync dead) [18] |
| Mantine | One person — Vitaly Rtishchev [24] | Open Collective: $18.5k/yr est. budget, $18.4k raised total, 125 contributors [25] | rtivital 94% of top-100 contributions [3] |
⚠⚠ Bus factor 1, and no commercial entity behind it |
| shadcn/ui | Vercel — shadcn is a Vercel design engineer (joined Aug 2023); the project predates the hire and remains MIT [28] [2] | Vercel salary; no direct monetisation of the registry | shadcn 73% of top-100 contributions [2] |
⚠ Bus factor 1 on the registry, but ✓ near-zero on the code you copied — you own it |
The asymmetry is the whole point. Mantine’s and shadcn’s bus factors look identical on paper (one dominant human). They are not the same risk:
- If Mantine’s maintainer stops, your
@mantine/coredependency goes stale innode_modulesand you have a fork-or-migrate problem across every screen. - If shadcn stops, your components are already source files in your repo. What you lose is future registry updates and the CLI — not your app. The runtime risk transfers to Base UI, which is company-staffed.
- If MUI stops, you have neither — but MUI is a 40-person company with recurring licence revenue, so this is the least likely and most survivable.
GitHub health (14 Jul 2026, via GitHub REST API)
| Repo | ⭐ Stars | Open issues | Opened (90d) | Closed (90d) | Backlog trend |
|---|---|---|---|---|---|
| mantinedev/mantine | 31k | 12 | 80 | 83 | ✓ Effectively zero-inbox |
| mui/material-ui | 99k | 1,387 | 113 | 206 | ✓ Shrinking |
| mui/base-ui | 10k | 311 | 159 | 117 | ⚠ Growing slowly (young project, post-1.0 influx) |
| mui/mui-x | 5.8k | 1,552 | — | — | ⚠ Large, but paid support is the escalation path |
| shadcn-ui/ui | 119k | 1,019 | 150 | 53 | ✗ Growing ~3× faster than it drains |
The star ranking and the maintenance ranking are almost inverted. shadcn/ui has the most stars of any React UI project and the worst issue-throughput ratio of the four (closes ~1 issue for every 3 opened). Mantine has a third of the stars and a 12-issue open tracker — one person out-servicing a 119k-star project. Star count is a popularity signal, not a maintenance signal; do not let it drive this decision.
npm downloads — and why the 2026 numbers lie
Monthly downloads, Jan 2026 → Jun 2026:
| Package | Jan 2026 | Jun 2026 | Multiple |
|---|---|---|---|
@mui/material |
27.5M | 38.7M | 1.4× [11] |
@base-ui/react |
1.75M | 24.9M | 14× [13] |
shadcn (CLI) |
3.3M | 22.1M | 6.6× [14] |
@mantine/core |
4.5M | 8.0M | 1.8× [12] |
@radix-ui/react-dialog (control) |
65.8M | 247M | 3.8× [30] |
⚠ Read these as ratios, not as growth. Radix’s dialog primitive grew 3.8× in five months while being displaced as shadcn’s default — that is not adoption, that is baseline inflation (CI, mirrors, AI agents re-installing). Any absolute 2026 npm “growth” number is contaminated. What survives the noise: MUI is still the largest single library by a wide margin; Base UI outgrew everything by ~4× the inflated baseline (the shadcn default switch is doing that); Mantine grew roughly below baseline, i.e. it is holding, not gaining.
Survey data agrees on the shape: State of React 2025 (~2,600 respondents) puts MUI still #1 in usage with shadcn/ui growing fast and close to overtaking it, and notes a large share of respondents use no component library at all — the space is not settled [29].
Licensing — the only hard commercial gate
Three of the four are pure MIT with nothing gated: Mantine [3], Base UI [8], shadcn/ui [2]. Material UI core is MIT and “free forever” [1].
MUI X is where the money is, and an admin console walks straight into it [15] [16]:
| Tier | Price/dev/yr | What you get |
|---|---|---|
| Community (MIT) | $0 | Basic Data Grid, Date Pickers, Charts, Tree View, Scheduler |
| Pro | $299 | Multi-filtering, multi-sorting, column resizing, column pinning, date/time range pickers, advanced charts, tree-view drag-and-drop |
| Premium | $599 | Row grouping, aggregation, Excel export |
| Enterprise | $1,399 | Premium + guaranteed response times, CSM; min. 15 seats |
Mechanics that matter for a monorepo:
- Licence is perpetual + 12 months of maintenance; renewals can rise up to 7%/yr [15].
- Enforcement is runtime:
LicenseInfo.setLicenseKey()before render. On failure the component renders a watermark and logs a console warning in production, not just dev [16]. There is no build-time check to catch it in CI — a misconfigured env var ships a watermarked grid to users. - Seats = concurrent developers touching front-end code that uses Pro/Premium. 30-day non-production trial without a key [16].
⚠ Practical translation for itenium-ui: the moment the admin console needs grouped rows or an Excel export button — table-stakes for an admin console — MUI costs $599 × (number of front-end devs) per year, forever. That is the single largest cost delta between the candidates, and it is the one none of the other three can charge you, because none of the other three has an enterprise grid at all. The counter-question the other angles must answer is what you pay instead (TanStack Table + hand-built UI, AG Grid, etc.).
Ecosystem and community size
| Community signals | |
|---|---|
| MUI | Largest by download volume [11]; still #1 in State of React 2025 usage [29]; 12 years of Stack Overflow answers (and a matching 12 years of stale v4/v5 answers) |
| shadcn/ui | Most-starred React UI repo at 119k [2]; huge third-party block/template market; ships an AI migration skill rather than a codemod for the Base UI move [21] |
| Mantine | 120+ components, 70 hooks, 500+ contributors, 12k Discord members [24]; ships @mantine/mcp-server for AI-agent access [23] |
| Base UI | 35 components at 1.0 [19], growing monthly (Drawer stable in 1.3, OTPField stable in 1.6) [20]; ecosystem is effectively shadcn’s ecosystem now |
What this baseline hands to the other angles
- Base UI is load-bearing for two of the four options — it is both a standalone candidate and shadcn/ui’s default runtime. Its health (10k stars, 311 open issues, MUI-funded, 7 months post-1.0) is a shared dependency, not an isolated one.
- MUI’s Tailwind story is a roadmap item, not a shipped feature [18], and Emotion is still a hard peer dep in v9 [7] — hand this to the Tailwind-4-interop angle.
- Mantine is the maintenance winner and the bus-factor loser simultaneously. Both facts are real; the risk sits entirely on one person’s continued interest.
- The only recurring cash cost in the field is MUI X Premium at $599/dev/yr, triggered by exactly the grid features an admin console needs — hand this to the component-coverage angle.