Spec is a declarative UI language that compiles to minimal, framework-free browser code. Designed from the ground up for the age of AI-authored software.
The problem
Every abstraction, every kilobyte of runtime, every reconciler cycle exists because
a person needed to understand what the code was doing.
AI doesn't need any of that. It needs one thing: a clear specification of what to build.
Given that, it can generate perfect DOM operations every time — faster than any human, without
ever getting confused by deeply nested state or prop drilling or stale closures.
The scaffolding is coming down.
What Spec does differently
Spec compiles your declarations to the minimum possible JavaScript. No virtual DOM. No reconciler. Nothing that exists for a human's benefit.
The compiler knows, at build time, exactly which DOM nodes change when any piece of state changes. One state change triggers one DOM write. The browser never does work it doesn't need to do.
A React app ships React. Every app ships React. Spec ships nothing but the code your application actually uses, plus a 2KB scheduler. An app that would be 150KB in React is 15KB in Spec.
Every Spec project defines spacing, typography, color, and motion once. Dark mode? Change the visual system. Full rebrand? Change the visual system. What design tokens always promised and never quite delivered.
The language is unambiguous, declarative, and consistent. No footguns, no five ways to do the same thing, no subtle timing issues. Describe what you want. Spec comes out the other end. It compiles. It runs.
When you install a Spec package, the compiler processes it alongside your code. Imported components get full optimization — monomorphized to your exact usage, dead code eliminated, resolved against your visual system.
Spec doesn't accumulate the technical debt that React's constant churn creates. Your specification is durable. The compiler improves over time — your specs don't need to change.
Spec's bytecode output mode compiles your UI to a compact binary .specbc payload instead of JavaScript.
A tiny 2-3KB interpreter — cached permanently in the browser — decodes it into direct DOM operations.
The same DOM operation that takes ~150 bytes as minified JavaScript takes 12-20 bytes in bytecode,
with all strings and style values stored once in a shared dictionary. First visit: ~3KB interpreter + 15-30KB of binary UI
vs. 200–500KB of JavaScript that must be downloaded, parsed, and compiled before anything renders.
The language
Spec reads like a specification — because that's exactly what it is.
component UserDashboard { // State is declared, not wired state { user: User metrics: Metrics loading: bool = true } // Visual system variables, not hard-coded values layout { direction: column gap: $spacing.lg padding: $spacing.xl } when loading { Skeleton { rows: 4 } } otherwise { Header { title: "Welcome back, {user.name}" } MetricsGrid { data: metrics } RecentActivity { userId: user.id } } }
Compiles to direct DOM mutations — no virtual DOM, no reconciler, no runtime framework.
Comparison
Every abstraction in modern frameworks exists for human benefit. In an AI-authored world, those abstractions are just overhead.
The economics
When AI writes the code, the bottleneck is no longer development capacity — it's specification clarity. Spec makes that shift concrete.
AI generates Spec faster than any developer could write React. Describe it, compile it, ship it.
A single developer with AI and Spec can do what used to require a frontend team.
No breaking releases. No ecosystem of dependencies all needing updates together. Your specs don't rot.
Every app you ship is faster and lighter than its React equivalent — by default, not by effort.
Who it's for
There is no longer a reason to choose React for a new project. You're not hiring a team of developers who need to understand the codebase. You're working with AI that will generate the code. React's abstractions cost you performance, bundle size, and a runtime you have to ship to every user — and give you back nothing of value.
You already know the cost. Framework upgrades. Breaking changes. The relentless churn. Spec's output is just JavaScript. It doesn't have breaking releases. It doesn't have an ecosystem of dependencies that all need to be updated together. It has a compiler that gets better over time.
The trajectory is clear. AI-authored code is already the norm in forward-thinking organizations. That trend accelerates. Building on a foundation designed for that world isn't early adoption — it's just good planning.
Get started
Every previous shift in web development took years. AI doesn't have that friction. The transition isn't gradual — it's immediate for anyone willing to make it.