Asher Cohen
Back to posts

A vision for the Next web

Can reactivity be embedded in the web, better than web-components?

For over a decade, React, Angular, and Vue have defined how we build for the web. They solved real problems—componentization, state management, declarative UIs—but they all sit on top of the browser. It’s time for something built into it: a native runtime for components.

Why We Need a Native Runtime

Frameworks abstract too much. They bring large bundles, slow hydration, strict hook rules, and redundant re-renders. The browser is now capable enough to handle reactivity natively—without shipping an entire framework just to wire DOM updates. The next step isn’t another abstraction layer. It’s a runtime that speaks the web’s native language.

The Native Component Runtime

A new runtime could redefine how components exist in the platform itself:

<1 KB gzipped

Uses ESModules

JSX as native templating

Reactive state via signals

Direct DOM updates (no virtual DOM)

Fully dynamic control flow—no hooks, no constraints

This runtime exposes just a few primitives:

  1. signal(initialValue) — reactive value that tracks dependencies and triggers updates.

  2. effect(fn) — runs a function and re-runs when any tracked signal changes.

  3. defineComponent(name, setup) — defines a functional Web Component with local reactive logic.

  4. jsx(type, props, ...children) — JSX factory that maps directly to DOM behavior or functions.

Everything else—DOM reconciliation, shadow DOM mounting, prop wiring—can be expressed through these primitives. The runtime becomes the minimal native substrate of modern UI logic.

Functional Reactivity, No Hooks

Components are pure functions with reactive state. You can conditionally create signals, run effects, or return early without worrying about call order. No virtual DOM diffing, no runtime overhead—just direct, predictable updates.

Why It Matters

A native component runtime means:

Tiny payloads → faster loads, better mobile UX.

Fine-grained reactivity → precise updates, simpler debugging.

Native control flow → dynamic UI logic without framework restrictions.

Future compatibility → integrates naturally with streaming, SSR, and distributed architectures.

A Vision for the Web

The future of the frontend is not more frameworks—it’s a native layer that makes frameworks optional. JSX becomes universal. Components become first-class citizens of the browser. Reactive state built on signals powers a faster, simpler, more understandable DOM.

The next web era isn’t framework-driven. It’s runtime-native: minimal, reactive, and fundamentally web-aligned.