Static by default
The browser receives the page, not a promise to render one.
Routes, layouts, metadata, CSS, and public assets publish as a complete inspectable inventory.
Presolve compiles TypeScript and JSX into complete static HTML, then gives the browser an exact plan for the interactions that remain. No generic hydration pass.
pnpm create presolve@0.2.0-beta.26 my-appCopy and runimport { action, Component, state } from "presolve";export class Counter extends Component {count = state(0);increment = action(() => {this.count += 1;});}One semantic authority
Presolve makes the compiler responsible for identity, ownership, dependency order, update planning, and publication. Every downstream product consumes that same model.
A complete static-first model
Start with zero-interaction content, add precise browser behavior where it earns its place, and preserve one ownership model from authoring through teardown.
Static by default
Routes, layouts, metadata, CSS, and public assets publish as a complete inspectable inventory.
Intentional interactivity
Bindings, events, conditionals, keyed lists, effects, and cleanup become exact browser work.
Learn state and actionsStructural ownership
Nested components, slots, Context, reorder, retention, and child-first teardown follow compiler-defined ownership.
Explore compositionModern styling
This site itself proves mobile-first CSS, Tailwind compilation, public assets, immutable stylesheet URLs, and a bounded Vite integration.
Explore stylingResume, don’t replay
The browser reconnects to compiler-defined behavior without mounting a second application tree or rediscovering dependencies.
Understand resumabilityForms and resources
Validation, submission state, resource ownership, and declared boundaries remain part of the compiler model.
Build data flowsDeployable products
Deterministic builds, release inventories, and Cloudflare preparation make publication a verifiable step.
Prepare productionLearn Presolve
The support matrix names what is proven, what is constrained, and what is intentionally outside this release. Current beta documentation is the source of truth; historical material stays in the migration reference.