These docs cover 0.2.0-beta.26. Each guide distinguishes supported beta behavior, explicit deployment boundaries, and retained 0.1 compatibility material.

Browse documentationAll guides

Understand · browser continuation

Resumability

Presolve publishes enough compiler-owned information for the browser to continue an interactive application from a compatible snapshot. It does not mount a second renderer and replay the component tree merely to reconnect behavior.

Generic hydrationHTML → rebuild tree → rediscover bindings → attach behavior
Presolve resumeHTML + validated artifact → restore exact slots → continue behavior

What the compiler publishes

An interactive pnpm build includes resume.runtime.json and matching browser artifacts. Together they identify:

BoundariesExact component occurrences, structural hosts, and DOM anchors.
SlotsRetained state, forms, Context, and resources with closed codecs.
ProgramsCapture, restore, activation, binding, event, and cleanup plans.
IdentityA build identity that binds the snapshot to one immutable publication.
Read-only artifacts

Do not hand-author resume JSON, depend on internal IDs, or combine it with files from another build. Use presolve explain for supported source-level reasoning.

Cold start

The static HTML is already the page. For admitted interactive behavior, narrow generated programs connect compiler-issued events, bindings, structural hosts, and effects. There is no generic application render pass.

  1. Use published HTMLThe route remains meaningful before behavior activation.
  2. Validate runtime productsSchema, integrity, and membership must match the build.
  3. Activate exact behaviorOnly the plans required by compiler-admitted interactions execute.

Resume sequence

When a compatible snapshot exists, restoration follows compiler-defined dependency and ownership order.

  1. Verify build identityReject a snapshot from any other publication.
  2. Validate the full snapshotCheck every retained slot and codec before mutating live state.
  3. Restore ownersState, computed dependencies, Context, component instances, forms, and bindings restore in fixed order.
  4. Reconnect events and effectsUse exact artifact membership; never search the DOM for meaning.
  5. ContinueThe next action executes against the restored instance and its retained identity.

Validation and cold fallback

Resume is transactional. A malformed slot, missing anchor, incompatible codec, stale build identity, or fabricated membership invalidates the attempt before a partial application is exposed.

Correctness over best effort

When validation fails, Presolve performs one cold start and does not reuse the failed resume registry. A clean cold start is safer than a partially restored application.

What authors write

Resumability is a compiler capability, not an extra component API. Use normal components, state, actions, computed getters, effects, slots, Context, forms, and resources within their admitted boundaries.

export class Counter extends Component {count = state(0);increment = action(() => { this.count++; });render() {return <button onClick={this.increment}>{this.count}</button>;}}

The compiler decides which values can be retained, how they are encoded, how structural occurrences are materialized, and which DOM binding receives the next update.

Inspect and deploy

pnpm checkpnpm buildpnpm exec presolve explain app/routes/index.tsxpnpm deploy:prepare

Deploy the complete compiler inventory. Do not upload only route HTML or replace generated browser files: the build identity and digests intentionally bind all products together.