Same API for client, server, URL, and async state
state, query, mutation, asyncProcess, and queryParam give you a complete set of reactive primitives for every kind of state.
Declare. Yield. Derive. Compile — no surprises.

state, query, mutation, asyncProcess, and queryParam give you a complete set of reactive primitives for every kind of state.
Model complex state declaratively by deriving modifiers, reactions, and computed state. Use the provided insertions to handle common UX behaviors and apply logic exactly where you need it.
A unique approach to handle complex forms logic where validation and interdependent logic are derived automatically.
Services are just functions with a scope: clear inputs, clear outputs. Yield them wherever you need them.
The DI system is fully type-safe and inferred. If you forget to provide a service, it won't compile. Create a service exactly where you need it.
A deterministic testing setup that reflects your real dependency graph. The compiler won't let your tests run until all dependencies are correctly provided or mocked.
Declare within your service what must be initialized before the app renders. No surprises, no mistakes.
Type-safe navigation and parameter binding. If you navigate to a missing route or misspell an input name, it won't compile.
No more syncing query params with your state. Just declare them as query parameters in your route and use them like any other state.
Log what you need, where you need it. Need tracing? Override the default logger with your own implementation and connect it to your monitoring system.
Mock only browser boundaries in tests that should stay close to reality. Even in e2e tests, you can know which endpoints are called and mock them.
Define known exceptions and handle them where needed. No more unexpected errors breaking your app in production.