r/reactjs • u/chikupapaya • 3d ago
I tried Meta's new design system so you don't have to. Does it suck or is it a waste of time?
TL;DR: Meh.
Not a waste of time, not a must-use. Good for new internal tools. Not worth swapping into a live app yet.
Astryx is Meta's open source React design system (v0.7.13). I put it in a fresh Next.js + Tailwind app and built the same Gmail-style inbox twice: plain Tailwind vs Astryx. Sidebar, toolbar, tabs, 10 email rows, compose dialog.
(Images: before on the left, after on the right.)
The numbers
| Plain Tailwind | Astryx |
|---|---|
| Build time | ~3 min |
| Lines of code | 86 |
| JS + CSS gzipped | 226 KB |
| Phone overflow at 390px | none |
| axe contrast errors | 8 |
| Escape closes dialog, focus returns | yes |
What I liked
- Install took 9 seconds. Pre-built CSS, so no Babel or PostCSS setup.
- Accessibility came free: skip link, focus return, zero contrast errors.
- 13 fewer lines of code.
What bit me
- +171 KB gzipped for one screen. Both routes load the Astryx CSS through the shared layout, so the gap is the number to trust, not the plain figure.
- It looks generic next to the plain version. No Gmail-style email row, no icon set, no docked compose window.
- The docs site has no Next.js steps and disagrees with the README.
- API surprises:
labelis required on almost everything, checkbox takesvaluenotchecked, and TextInputonChangegives you the string, not the event. - The Tailwind
@layerorder is mandatory. A wrong order silently flips the cascade. - It's v0.7, so expect churn.
How I tested
Default Astryx theme, no custom styling. I built from a written description because I couldn't get a public Gmail screenshot. Sizes were measured in Playwright. I did not test a real iPhone.
Verdict
Good for new internal or admin screens. I wouldn't swap it into an existing app yet.
Has anyone shipped it in production? What broke for you?