Learn by changing things
Small steps.
Real understanding.
Start with a signal, build an inventory interaction, then follow data across the TypeScript–Rust boundary. Each lesson gives you something concrete to change and verify.
What you need: basic JavaScript and HTML. The first five lessons run in your browser. Native lessons use a running Rust example; local scaffolding requires Node 22+ and Rust 1.85+.
Make state visible
Create a signal and connect it to a real DOM node.
Explore Lesson 02Give behavior a home
Compose a small interface and keep state ownership clear.
Explore Lesson 03Derive, don’t synchronize
Compute a price from state without maintaining a second mutable total.
Explore Lesson 04Keep identity in a list
Let a row keep its DOM when the collection changes order.
Explore Lesson 05Build the inventory interaction
Update one item by key while preserving the row and the user’s input.
Explore Lesson 06Make HTML on the server
Follow declared TypeScript props into a typed Rust response.
Explore Lesson 07Activate what needs interaction
Keep the server’s DOM and attach behavior at declared island boundaries.
Explore Lesson 08Make the inventory durable
Take a stock edit through native rendering, a validated request, a conflict check and local persistence.
Explore Lesson 09Take the application with you
Build the matching assets and Rust binary, then deploy the rendering mode you chose.
Explore