React + Tailwind · shadcn-compatible · one kit per vertical

Your AI ships tools that work. OnSystem makes them look right.

Drop-in components for the screens AI coding tools build badly, screen-type by screen-type. Same locked design tokens, same AI context pack, same npx shadcn add install — starting with Internal Tools and Fintech, more verticals on the way.

Founder pricing for the first buyers of each kit · no spam, just launch news.
Pick your screens

Two kits. One system.

Every kit shares the same semantic tokens, the same 5 themes, and the same AI context pack — buy the one that matches the screens you're building.

Revenue
$48k
↑ 12% vs last mo
Open exceptions
14
↑ 3 vs last wk
On-time rate
94%
↑ 2% vs last mo
ShipmentERTStatus
CG-82136hDelivered
CG-821652hSync failed

Internal Tools

Data tables, CRUD forms, dashboards, permission-gated views — the internal-ops screens AI tools ship as generic and marketing-flavored by default.

16 components · 5 themes · AI context pack
$199$299
Explore Internal Tools →
Checking
•••••
↑ 2.1% vs last mo
Savings
•••••
Auto-transfer on
Credit card
•••••
↑ 12% vs last mo
DateMerchantAmount
Jul 14Rent$1,450.00
Jul 12Whole Foods$86.40

Fintech

Masked balances, reconciled transaction lists, invoice generation, transfer confirmation, honest live-vs-demo data — for the screens where trust matters most.

10 components + reused primitives · 5 themes · AI context pack
$199$299
Explore Fintech →
Why AI-built tools look wrong

The same failures, every time

We audit real vibe-coded apps screen-type by screen-type — internal ops dashboards, then fintech apps — and the mistakes aren't random. Each kit is built to make its vertical's version of these impossible.

Decorative color

Icons and deltas colored for variety, not meaning — including the same fake "+4.5%" repeated on every tile regardless of whether it's actually up. Every kit locks color to five semantic roles: good, bad, warning, info, neutral.

Numbers that don't reconcile

Mixed decimal formatting in the same column, "recent" lists that aren't actually sorted. Shared currency/percent/decimal formatters and an enforced sort order, everywhere a number appears.

Only the happy path

Sample data forever — no loading, empty, or error states, and (in fintech) a static demo feed labeled "LIVE" with no disclosure. Every OnSystem data component ships all its states, and real-time components require a live-vs-demo badge.

Marketing chrome on operational screens

A public "About / Products / News" navbar bolted onto an internal ops table or a banking dashboard. OnSystem's app shell is structurally impossible to confuse with a marketing site.

Undefined jargon, inconsistent masking

Columns labeled with unexplained abbreviations, or three different balance-masking patterns in one app. Header tooltips, value-based emphasis, and one consistent masked-value component ship by default.

Overflowing, unlabeled controls

Six filters crammed into one row until the search clips mid-word, or icon-only buttons with no label on a real account action. OnSystem's filter bar measures and collapses overflow; icon controls require a label or tooltip.

What every kit shares

One foundation, per-vertical components

Locked semantic tokens

Every color, size, and radius routes through the same five-role token scale across every kit — never a raw palette class, never a decorative hue.

5

Themes, one class

Light, Dark, Berlin Nights, Sunny California, Console 47 — all WCAG-AA audited, shared by every kit. Switch the whole system with a single class.

AI

The context pack

A rules file for Cursor, Claude Code, v0, Bolt, or Lovable, tuned to the kit you buy, so every new screen your AI builds stays on-system automatically.

Install like shadcn

npx shadcn add — the exact workflow you already use for free components, pointed at your licensed kit's registry. Updates appear automatically.

Production components per kit

Internal Tools ships data tables, forms, and dashboards. Fintech ships masked balances, transaction lists, and transfer flows. Each kit is self-contained — no cross-purchase required.

Perpetual + updates

One-time purchase per kit. Perpetual access and free updates as conventions evolve.

5 themes, one class

Same components. Any look.

A theme is a single class on your <html> — color, corner radius, and fonts all repaint, and nothing else changes. Shared by every kit, all five ship WCAG-AA audited. Click through them:

OS Workspace ⌕   ◔   JS
On-time rate
94.2%
↑ 2.1% vs last mo
Open exceptions
7
↑ 3 vs last wk
DeliveredIn transitDelayedSync failed
ShipmentERTFailure rate
CG-82136h5%
CG-821652h64%
CG-821826h19%

Every color stays semantic across all five, in every kit — a 64% failure rate reads as danger whether it's on cream or a Commodore-blue console. That's the whole point: the meaning never moves, only the mood.

How it works

Three steps to on-system

Buy the kit you need

One checkout, one license key for that kit — delivered instantly along with its AI context pack.

Point shadcn at it

Add one block to your components.json with your key. That's the whole setup, for either kit.

Add components

Run npx shadcn add @onsystem-internal-tools/DataTable or @onsystem-fintech/TransactionList — it pulls the component and its whole dependency tree into your project.

The part nobody else has

It doesn't just look right once.

Component kits fix the screen you're on. OnSystem's AI context pack fixes every screen you build next — feed it to your AI coding tool and it generates on-system UI from then on, without you re-explaining the rules each time.

# feed the context pack to your AI once
> add a stat card for failed syncs

uses the fixed StatCard slot contract
colored by good/bad direction, not the arrow
ships loading + empty states too
zero hardcoded colors
# on-system, automatically
Pricing

One price. Everything.

Internal Tools
Founder price — first 25 buyers
$199$299
  • All 16 components + 5 themes
  • The AI context pack
  • License-gated registry access
  • Perpetual access + free updates
See Internal Tools →
Fintech
Founder price — first buyers
$199$299
  • 10 components + reused primitives
  • The AI context pack
  • License-gated registry access
  • Perpetual access + free updates
See Fintech →

Each kit is licensed separately today — buy just the one you need, or both. A combined-bundle price is being considered for later; join the waitlist and we'll let you know if one ships.

Questions

Good to know

What's the difference between the two kits?

Internal Tools covers ops/back-office screens: data tables, CRUD forms, dashboards, permission-gated views. Fintech covers money-specific screens: masked balances, transaction lists, invoice generation, transfer confirmation, live-vs-demo pricing. Both share the same tokens, themes, and install workflow.

Do I need both kits?

No — each is fully self-contained. If a Fintech component needs an Internal Tools primitive (like DataTable or Button), it installs automatically with your Fintech license at no extra cost.

Do I need to know design?

No — that's the point. OnSystem makes the design decisions for you through a locked token system, and the AI context pack keeps your AI assistant making the same decisions on every new screen.

How is it delivered?

Through a private registry you install with the shadcn CLI you already use: npx shadcn add @onsystem-<kit>/<component>. Your license key unlocks your kit. Updates appear automatically — no re-downloads.

Which AI tools does the context pack work with?

Cursor, Claude Code, v0, Bolt, and Lovable — anywhere you can supply a rules file or project context.

What stack does it assume?

React + TypeScript + Tailwind, built on shadcn/ui conventions. The components are dependency-free portable .tsx — your code, no runtime lock-in.

One-time or subscription?

One-time, per kit. You get perpetual access and free updates to whichever bundle(s) you buy.

Launching soon

Ship screens that look intentional.

Join the waitlist for founder pricing and first access — tell us which kit(s) you're after once we're live.