smolter
Loaders. Actions. Less component clutter.
/Data flow you can follow.
Keep requests out of deeply nested components. Loaders read data, actions change it, and your components render the result.
Typed data, forms without page reloads, and revalidation you control. For React and Preact, in the browser or on the server.
Get started →Choose what you ship.
Import from @kasperrt/smolter/react or /preact. createRouter keeps navigation lean; createDataRouter adds loaders, actions and fetchers.
Combined browser bundle
- Brotli
- 3,683 B
- Minified
- 11,069 B
Measured together, including shared code. Production Vite fixture; framework runtime and your app code excluded. Your build may differ.
Unchecked prefetch modes are removed by Smolter’s Vite plugin when usage is statically known. Dynamic spreads retain possible modes. Other features follow named-import tree shaking.
Optional /client handles browser transport or hydration; /document and /lazy-route add application features. /server and /vite belong in server and build code, not the browser.
| Selected API | React | Preact |
|---|---|---|
| smolter routing-only | 1825 | 1807 |
| wouter routing subset | 2854 | 2211 |
| React Router declarative routing subset | 12882 | React API |
| smolter common routing + data | 3936 | 3916 |
| React Router data routing subset | 29780 | React API |
Production ESM, esbuild + Terser, gzip level 9. Framework runtimes excluded; library dependencies included. Rows overlap and are not additive. API capabilities differ; React Router has no dedicated Preact entry.
Exports, versions & measurement method →