React 19 · Tailwind v4 · MIT

Components you actually own.

346 components with no headless-UI dependency underneath them. A CLI copies the source into your repo and stops there — nothing phones home, nothing to upgrade, nothing that breaks the week you change your mind about a border radius.

Get started Browse all 346

Three commands.

The CLI resolves what a component imports and copies that too. It installs the npm packages a component actually needs, and skips any file you have already edited unless you tell it otherwise.

Full setup
  1. 1$ npm i -D astralyx-uiThe CLI. No runtime dependencies.
  2. 2$ npx astralyx-ui initWrites components.json, the theme and two helpers.
  3. 3$ npx astralyx-ui add data-gridBrings table, checkbox and empty with it.

Props you would have written yourself.

Money is integer minor units everywhere, because a basket that has been through a float has already lost. Stock limits are enforced at the stepper, not rejected at checkout. Every string is a prop.

Cart reference
  • Aeron chair

    Size B · Graphite

    1
    £1,495.00 each£1,495.00
  • Monitor arm

    Silver

    2
    £219.00 each£438.00

    Only 2 in stock.

Subtotal
£1,933.00
Discount — WELCOME10
-£193.30
DeliveryDepends on your address
calculated at next step
Total
£1,739.70+

Final total confirmed once delivery details are entered.

src/app/basket.tsx
tsx
<Cart
  lines={lines}
  currency="GBP"
  onQuantityChange={setQuantity}
  onRemove={remove}
/>

<CheckoutSummary
  subtotal={193_300}
  currency="GBP"
  lines={[
    { id: 'discount', label: 'WELCOME10', amount: -19_330 },
    // null, not 0 — a charge you cannot promise yet
    { id: 'delivery', label: 'Delivery', amount: null },
  ]}
  footer={<Button className="w-full">Continue</Button>}
/>

Built for the screens that are hard.

Assistant threads, session lists, ledgers, queue depth, order books, flame graphs. The parts of a product that get built badly because nobody ships components for them.

AI

How much did we spend on inference last month?
You
Assistant
£4,182 across three models. The cheap model handled 91% of calls and 11% of the bill.
Input
json
{
  "period": "2026-08",
  "group_by": "model"
}
Output
json
[
  { "model": "astralyx-small", "usd": 462 },
  { "model": "astralyx-large", "usd": 3720 }
]

Security

Active sessions3
  • Chrome 141on macOS 27This device

    London, UK (approx.)81.2.69.142active

  • Safarion iOS 27

    London, UK (approx.)81.2.69.142active

  • Firefox 139on Windows 11Unusual

    Frankfurt, DE (approx.)45.83.220.11active

Settings

Where security alerts are sent.

Ada OkaforMarc LaurentIris ChenDevon Reyes+1
5 admins

Six whole products.

Not marketing pages, and not one screen each. Every one has a rail, sub-pages, records that open, a command palette, forms that validate and dialogs that commit — a deployment console, an agent studio, a workflow canvas with an agent editing it, an on-call room, the back office of a shop, and a review where every page you open stays open as a tab.

All examples

All 346, running.

138 basics — the buttons, fields and dialogs every screen needs — and 208 blocks built on them, each already knowing what a commit is, or a wallet, an invoice, a span. None of them a screenshot: every card below is the live component.

Component index

Basics

138 across 11 categories

The vocabulary. Buttons, fields, dialogs, tables, charts — components that encode no business concept, so they belong in any product.

Blocks

208 across 25 categories

Built on the basics, for one job each. A block already knows what a commit is, or a wallet, an invoice, a span — the part normally rebuilt from scratch on every project.