mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Webevaluationupdated 23 Aug 2026

astryx review

Astryx is Meta's open-source React 19 design system, currently labeled beta. It packages more than 150 components, themes, page templates, and a CLI that gives developers and coding agents the same component documentation and scaffolding commands.

+237stars / 7d
Verdict

Astryx is unusually complete for a beta and deserves a trial if you are starting a React 19 product or replacing an internal design-system sprawl. The CLI, prebuilt CSS, theming, and swizzle path solve real team problems. For a long-lived application that cannot absorb frequent component fixes or accessibility follow-up, wait for a stable release or choose Material UI or Radix.

We ran it

Lab card: what happened when we ran astryxScreenshot of astryx (astryx.atmeta.com)
Install✓ · 65s1 packages · 1356 MB
Build✓ · 66s
Tests✓ · 372sran, no count parsed
Repo4624 files~670,496 lines of source · 282.3 MB · 23 CI workflows

Answers from our run

Does astryx build from source?

Dependencies installed in 65 seconds (1 packages), and the build succeeded in 66 seconds. We cloned commit b594d5c into a clean Debian container with 3 CPUs and no project-specific setup.

Do astryx's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use astryx?

React 18 or older applications: the core package requires React 19 or later.

What are the alternatives to astryx?

Material UI, Radix Primitives, shadcn/ui. Astryx is unusually complete for a beta and deserves a trial if you are starting a React 19 product or replacing an internal design-system sprawl.

Setup3/5Clear consumer setup, but React 19 and ordered CSS imports are required
Docs5/5Detailed component, CLI, theme, framework, and contributor guidance
Community5/5Pushed and released in August 2026 with active issue and PR work
Maturity3/5Deep component history, yet public packages remain on a beta 0.x line

Who it’s for

React 19 teams that want a large component set with typed APIs and prebuilt CSS.
Product groups that need theme tokens, dark mode, page patterns, and source ejection in one system.
Teams using coding agents that benefit from CLI-readable component docs and typed JSON output.
Design-system engineers prepared to follow a fast-moving beta and test upgrades.

Who it’s NOT for

React 18 or older applications: the core package requires React 19 or later.
Teams that need a conservative stable API: Astryx calls itself beta, charts remain on a canary tag, and the current release is 0.4.6.
Projects unwilling to follow CSS import order and provider setup: the quick start requires reset, component, and theme styles in sequence, plus a Theme wrapper.
Accessibility buyers who assume every component is finished: current reports cover focus loss on busy buttons and unclear semantics for interactive HoverCard content.
Contributors looking for a light checkout: our install occupied 1,356 MB and the test run took 372 seconds.

Setup reality

Our fresh Node 22 container completed the pnpm install in 65 seconds. The measured install recorded 1 package and occupied 1,356 MB. The full build succeeded in 66 seconds, and the test command succeeded in 372 seconds. The repository had 4,624 files and about 670,496 lines of source.

Application setup needs React 19, React DOM, the core package, a theme, StyleX, and usually the CLI as a development dependency. Consumers import three CSS files in the documented order and wrap the app with a theme provider. Contributors need Node 22 on an active LTS line and pnpm 11.

Astryx is still beta. The chart packages are canary-only, while the lab package is internal and unpublished. Bare npx astryx can resolve to an unrelated npm package before the Astryx CLI is installed, so the docs recommend npx @astryxdesign/cli for a first run.

A large design system with a public reset

Astryx arrives with an unusual backstory. Meta says the system grew internally for eight years and powers more than 13,000 applications inside the company. The public repository is new enough to carry a beta label, but the component ideas and operating conventions were developed under real internal use. That helps explain why the project covers more than buttons and form fields. It includes page patterns, seven themes, templates, charts in preview, documentation tooling, and migration codemods.

For consumers, the central package exposes more than 150 typed React components. Styles are authored with StyleX but distributed as built CSS, so an application does not need a StyleX build plugin. You can add plain CSS, CSS modules, or Tailwind classes through className. Themes are CSS custom-property overrides, and the supplied choices range from neutral to more opinionated sets such as gothic and y2k.

The component source is not a black box. Astryx exports smaller building blocks, and its swizzle command copies a component into your application when normal composition or styling is insufficient. That escape hatch is attractive for a product team, though copied code becomes your maintenance responsibility.

Consumer setup has a few firm rules

Astryx requires React 19 or later. The basic install includes core, a theme, StyleX, and the React peer dependencies; the CLI is normally added as a development dependency. In a Next.js application, three CSS imports must appear in order: reset, Astryx component styles, then theme overrides. A Theme provider supplies the selected theme, and the documented Next.js example also connects Astryx links to the framework's Link component.

Tailwind users get a bridge that maps Astryx tokens to utilities. Vite and CDN paths are documented too. This is more flexible than adopting a required compiler, but it is still a design-system integration. Existing resets, CSS layers, routing components, portals, and form conventions need testing against your application.

The CLI has one sharp edge worth remembering. Before @astryxdesign/cli is installed, bare npx astryx can resolve to an unrelated package. The project recommends the scoped npx @astryxdesign/cli command for first use, then a package script or local binary after installation.

What happened when we ran it

We cloned commit b594d5c into an unprivileged Debian container with Node 22, 3 CPUs, 8 GB of RAM, and no secrets. The repository contained 4,624 files, about 670,496 lines of source, and occupied 282.3 MB before installation.

The pnpm install succeeded in 65 seconds. Our harness recorded 1 installed package and 1,356 MB on disk. The full monorepo build then completed successfully in 66 seconds. Tests also succeeded, taking 372 seconds. The lab output did not provide a test count, so success and elapsed time are the useful claims here.

Those results show that the documented contributor path works in a clean Linux container, but this is not a small library checkout. The repository has monorepo workspaces and 23 CI workflow files. There is no Dockerfile and no top-level tests directory, even though the configured test command ran successfully. Budget several minutes and more than a gigabyte for a clean contributor verification.

The CLI is more than scaffolding

Astryx treats the terminal as a documentation interface. The CLI can search components, hooks, topics, and templates; print a component's props and examples; emit page source; build themes; run upgrade codemods; and diagnose an installation. Every command can return typed JSON, including stable error codes, which gives coding agents a safer target than scraping prose or guessing package exports.

init writes a component index into AGENTS.md or CLAUDE.md. An agent can then discover the available components and request focused documentation. Dense output reduces the text sent to the model. This does not make generated UI trustworthy by itself, but it gives people and tools the same source of package-specific facts.

The template system also goes beyond isolated snippets. Dashboard, settings, form, and detail layouts provide editable source that composes the system's own layout and navigation pieces. Teams with repetitive internal applications may save meaningful design and implementation time here.

Beta means unfinished edges

The README is direct about status. Core and themes are published, the lab package is internal, and the Vega and chart packages have only canary releases. Version 0.4.6 shipped on 2026-08-22 with a long list of fixes across locale handling, overlays, selectors, touch targets, CLI integrations, and codemods. Frequent fixes are healthy project activity, but they also show how much behavior is still settling.

Accessibility deserves specific evaluation. An open report says a busy Button uses native disabled, causing keyboard focus to fall back to the document body. Another describes interactive HoverCard content being exposed as a description instead of a structured popup relationship. Both reports include code-level analysis and proposed checks, which is better than vague complaint traffic. They are still reasons to test the exact components and assistive technologies your product uses.

The repository's 454 open issues and pull requests should not be read as 454 defects. Recent activity includes fixes, dependency updates, documentation changes, and community contributions. The last push was 2026-08-23, and the latest release arrived one day earlier. This is an active project with a busy queue.

The buying decision

Astryx fits teams that want one React system spanning components, tokens, templates, documentation, and agent-facing tools. It is particularly persuasive for a new React 19 application where the team can adopt its providers and CSS layers from the start. The MIT license and source-ejection option reduce lock-in.

A cautious production team should pin versions, run visual and accessibility regression tests, and review each release before upgrading. If stability matters more than the CLI and template workflow, Material UI has a longer public track record. If your designers want to define nearly every visual decision, Radix offers a smaller behavioral base. Astryx is the more ambitious package, but today it asks buyers to participate in the beta.

Alternatives

ProjectWhat it isPick it when
Material UI gh↗A mature React component system implementing Material Design with extensive production use.pick this instead when ecosystem depth, stable releases, and broad third-party support matter more than source ejection or agent tooling.
Radix PrimitivesLow-level accessible React primitives with minimal visual opinions.pick this instead when you want to own the visual system and compose from smaller behavior-focused pieces.
shadcn/ui gh↗A component distribution approach that copies editable source into your application.pick this instead when local code ownership is the default and you do not need one large packaged design system.

What people are saying

  1. [github-trending] facebook/astryx

Sources

  1. Astryx README
  2. Astryx core package guide
  3. Astryx CLI guide
  4. Astryx 0.4.6 release
  5. Busy Button focus issue
  6. HoverCard accessibility issue

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →