
TL;DR
Octane is a new MIT-licensed UI framework from Inferno's creator that compiles React-style hooks, Suspense, and actions to direct DOM code. No virtual DOM, no rules of hooks, no hand-maintained dependency arrays. Here is what shipped, the benchmark grid, and what it means for teams and AI agents.
On August 3, Dominic Gannaway - creator of Inferno and a former React core contributor - released Octane, a new open-source UI framework that describes itself as "React's programming model, compiled." Version 0.1.23 is MIT-licensed, written in TypeScript, and requires Node.js 22 or newer. A compiler turns your React-style components into direct DOM code before they ship: no virtual DOM, no rules-of-hooks bookkeeping, and no dependency arrays maintained by hand. The project calls itself the successor to Inferno, and it is explicitly alpha, with a warning to pin versions in real projects.
The pitch is that your React knowledge transfers as-is. useState, useEffect, memo, context, portals, transitions, and Suspense all behave the way you expect, and a behavioral parity suite checks shared behavior against React case by case. The team reports 11,500+ test executions across the runtime, compiler, SSR, and bindings, with the core suite at 3,900+ distinct cases.
Three compiler-driven changes break from React conventions:
No rules of hooks. Hooks are tracked by call site, not call order, so a hook can live behind a condition or after an early return without shifting another hook's state. The one rule left is enforced as a compile error: a hook inside a plain JavaScript loop, because every iteration would share one call-site slot. The docs point to the keyed @for directive for that case, where each item gets its own hook state.
Dependency arrays are optional. Omit the array from useEffect, useMemo, useCallback, and the compiler derives it from what the closure actually captures, including stable setters, refs, and state getters. Explicit arrays still mean exactly what they mean in React.
.tsrx as a successor to JSX. A @{ ... } shorthand puts setup next to output, and template directives like @if, @for, @switch, and @try compile to keyed fast paths. Plain .tsx still works - paste a component from the React docs into a .tsx file and it runs - and you can mix both dialects in one app.
The async story gets the same treatment. Promises in render are safe without a cache() wrapper: creations feeding use() are memoized at their declarations, independent requests start together, and descendant fetch trees prefetch while an ancestor is still suspended. Streaming SSR flushes out-of-order Suspense boundaries over Node or web streams with byte-stable hydration, and a <Hydrate> component keeps server HTML visible but inert until hydration is worth it.
The framework is deliberately narrow where React has grown wide: no class components, no Server Components, no synthetic event system. Events are native and delegated, refs are plain props, and useState and useReducer return a third element - a current-state getter - so a delayed callback can read the latest value instead of a stale capture.
From the archive
Aug 3, 2026 • 8 min read
Aug 2, 2026 • 9 min read
Aug 2, 2026 • 8 min read
Aug 2, 2026 • 7 min read
Octane publishes a self-measured benchmark suite comparing against React 19, Preact 10, Solid 2.0 beta, Svelte 5, Ripple 0.3, and Vue Vapor 3.6 beta across 16 suites. On the geometric mean, with Octane at 1x: React 19 runs 2.9x, Preact 10 2.7x, Svelte 5 1.3x, Solid 2.0 beta 1.1x, Ripple 0.3 1.1x - and Vue Vapor 3.6 beta comes in at 0.86x, meaning Vapor leads the geomean. The per-suite spread matters: Octane wins handily on chat-stream (React 3.8x) and portal-swarm (React 7.6x, Preact 9.6x), while Vapor wins memo-wall and signal-favoring. And the bundle-size row shows Octane larger than the signal-based competition: Preact at 0.57x, Solid at 0.69x, Vue Vapor at 0.69x, Svelte at 0.81x of Octane's payload.
Read that grid as "roughly par with the signal frameworks, clearly faster than React and Preact on most operations, and heavier on the wire" - not as a universal win. The suite is the project's own, and the honest framing is that the numbers are the team's, measured by the team.
This is the same wave as the TypeScript 7 native compiler and Vercel's ScriptC: move bookkeeping from runtime or lint time to compile time, and let the tooling own the invariants humans keep getting wrong. Rules-of-hooks violations and stale dependency arrays are a classic class of frontend bugs - and a classic class of AI-agent-generated bugs, because agents frequently produce hooks behind conditions or omit captures from dependency lists. A compiler that keys hooks by call site and infers captures removes that failure class at the source. The docs make the agent angle explicit: components keep their shape through migration, so "AI agents can migrate an app too, without redesigning it around a new reactive model."
Adoption is incremental by design. octane/react exports a single OctaneCompat component that hosts a compiled Octane island inside a real React 19 tree - port a widget, a screen, or one component, and leave the rest as React. Scaffolding is one command (npm create octane my-app with spa and fullstack templates), and a CLI wires up an existing Vite project including the TypeScript settings .tsrx needs.
The honest limits: it is alpha software, the .tsrx editor extension is not published yet, and 53 first-party bindings - state, data, routing, forms, charts, 3D - are a long way from the React ecosystem's depth. If you benchmark against what Web Dev Arena measures - real UI work that agents and teams ship - the compile-ahead model is worth a test run, especially for agent-heavy teams. Framework rebuilds have been the theme of the season, from Shopify's Hydrogen to Astro's Rust-native toolchain; Octane is the first serious React-API-compatible compiler in that line.
Read next
A practical migration guide for TypeScript 7.0's Go-based native compiler. Verified perf numbers, the full breaking-changes list, real npm commands for side-by-side installs, and when staying on 6.x is the right call.
9 min readVercel Labs released Scriptc, a TypeScript-to-native compiler that produces self-contained binaries of 170-200KB with ~2ms startup times and no embedded JavaScript engine. The HN community is sharply divided on whether this is a genuine engineering breakthrough or another Vercel Labs project that will be abandoned in months.
9 min readBenchmarks are useful, but frontend work fails in places leaderboards barely measure. Here is how Web Dev Arena turns AI model comparison into a practical UI evaluation workflow.
8 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Frontend stack for agent-native apps. React hooks, prebuilt copilot UI, AG-UI runtime, frontend tools, shared state, and...
View ToolOpen-source terminal agent runtime with approval modes, rollback snapshots, MCP servers, LSP diagnostics, and a headless...
View ToolOpen-source AI pair programming in your terminal. Works with any LLM - Claude, GPT, Gemini, local models. Git-aware ed...
View ToolReactive backend - database, server functions, real-time sync, cron jobs, file storage. All TypeScript. This site's ba...
View ToolReal-time prompt loop with history, completions, and multiline input.
Claude CodeInstall Ollama and LM Studio, pull your first model, and run AI locally for coding, chat, and automation - with zero cloud dependency.
Getting StartedInteractive timeline showing what's in context at each turn.
Claude Code
A practical migration guide for TypeScript 7.0's Go-based native compiler. Verified perf numbers, the full breaking-chan...

Vercel Labs released Scriptc, a TypeScript-to-native compiler that produces self-contained binaries of 170-200KB with ~2...

Benchmarks are useful, but frontend work fails in places leaderboards barely measure. Here is how Web Dev Arena turns AI...

Astro 7.0 rewrites core components in Rust, upgrades to Vite 8 with Rolldown, and delivers significant performance gains...

Shopify's July 30 Hydrogen developer preview update ships Vue bindings, bundled GraphQL TypeScript tooling, Shopify Inbo...

Zig core team member mlugg published the definitive deep-dive on how Zig's incremental compilation works - file pipeline...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.