From a small idea to a working app
Start with something
you can take apart.
Each example has editable source and a specific lesson. Start in the browser, then connect the same programming model to native HTML.
A signal, a button
A component sets up once. The accessor updates only the text that reads it.
Explore 02 / BrowserDerived state
Change the team size. A memo derives the total, and the DOM follows.
Explore 03 / BrowserA keyed list
Add, reverse and remove rows. Stable keys preserve each row's DOM identity.
Explore 04 / BrowserIndexed item replacement
Replace a row's data by key without replacing its DOM or losing a typed shelf note.
Explore 05 / Native + islandHTML first. Then interaction.
Rust sends the initial count as HTML. A browser signal then updates the counter instantly, without another request.
Explore 06 / No JavaScriptLet the server update the page.
Rust sends the count as HTML. Submit an ordinary form to change it; the browser needs no JavaScript.
Explore 07 / Server authorizationA paywall before the HTML.
A fictional newspaper serves a teaser or full article according to server-held demo access. Try the ordinary forms with JavaScript disabled.
Explore05 and 06: what changes?
Both pages arrive with the requested count already rendered by Rust. In 05, Add one changes a signal in the current page’s memory. In 06, submitting the form asks Rust for new HTML. Both forms start a new request from the number you enter.
Neither demo saves your count. Refresh reads the number in the URL again. Browser memory, browser storage and saved server data are separate choices. For a real save-and-reload example, try Field Notes.
07: decide access on the server
The Lantern Ledger is a fictional newspaper. Its demo subscription form grants temporary server-held access; no payment is taken. Refresh keeps that access until you reset it, the session expires or the server restarts. The protected article body stays out of the visitor response until the server grants access. Read how the paywall works and what it protects.
Start a project
Field Notes stockroom
A downloadable native application with adopted editors, server validation, conflict handling and local file persistence.
Explore Official scaffoldTypeScript + Rust
A minimal native page, typed props, build configuration and one interactive island.
Explore Browser recipeYour existing toolchain
Use signals and components with your JavaScript bundler. Rust is optional for client-only applications.
Explore Read the decisionsChoose a rendering mode
Native SSR, declared islands, browser pages and explicit HTML runtime have different responsibilities.
Explore