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

Start · application topology

Routing and layouts

The file tree is the route graph. Presolve resolves route identity, URL ownership, application-shell composition, and nested layout invocation at compile time, then publishes deterministic HTML for every route.

File routes

Source fileURL
app/routes/index.tsx/
app/routes/about.tsx/about/
app/routes/docs/index.tsx/docs/
app/routes/docs/api.tsx/docs/api/

The root route is not redirected to an internal artifact path. dist/routes/root/index.html is a publication detail; the deployment adapter serves it at /.

Application shell

app/app.tsx wraps every route. Put shared navigation, providers, theme UI, footer, and application framing here. Keep document metadata and stylesheet links in the document layer.

import { slot, Component, type SlotContent } from "presolve";export class App extends Component {children: SlotContent = slot();render() { return <div className="app"><slot /></div>; }}

Nested layouts

A layout.tsx inside a route directory wraps that subtree. For example, app/routes/docs/layout.tsx composes with every /docs/* route. It declares a children: SlotContent = slot() field and renders one default outlet.

Root shellApplication-wide composition from app/app.tsx.
Scoped layoutDirectory-owned composition for one nested route subtree.
Route componentThe concrete page rendered into the final layout outlet.
Document templateMetadata and compiler placeholders surrounding the full application.

Navigation

Use ordinary anchors with absolute application paths. Links work in the published HTML before any browser program activates and preserve native browser semantics.

<a href="/docs/components/">Components</a>

Current boundary

  • Deterministic static routes and nested layout composition are supported.
  • slot() fields are the current layout outlet form.
  • Conditional, keyed, nested, and slot-projected structural hosts are represented in compiler artifacts and browser lifecycles.
  • Client-side router interception, middleware, executable server loaders, and dynamic server routing are not part of the static beta adapter.