FAQ

Common questions about resumability, bundle size, and how Resuma compares to hydration-based frameworks.

What is resumability vs hydration?

Hydration re-executes your entire component tree on the client to attach event listeners. Resumability serializes signals and handler references into HTML during SSR; the client resumes only what the user interacts with — no full-tree replay.

Does Resuma run Rust in the browser?

No. Components always execute on the server. Client-side code is limited to a tiny runtime (~3 KB loader + lazy core) and small JS chunks translated from handler closures at compile time (rs2js in resuma-macros). Business logic stays in Rust.

How big is the client bundle?

Static pages ship zero JS. Interactive pages load loader.js (~1–2 KB gzipped), then core.js on first interaction. Handler and island chunks load on demand. See the benchmark page for measured numbers.

How does resumability compare to hydration?

Hydration re-runs components on the client to attach listeners. Resumability serializes signals and handler references during SSR; the client resumes only the interactions users trigger. Every #[component] is a resumable boundary; #[island] is optional for heavy lazy bundles.

Do I need Node.js?

Only if you rebuild the JS runtime from source. Prebuilt assets ship inside the resuma crate (assets/). For app development, Rust + cargo (or cargo install resuma) is enough.

Can I use Resuma without Flow?

Yes. ResumaApp supports single-page apps with manual route registration — ideal for counters, widgets, and embedded UI. Flow adds multi-page routing, loaders, submits, and middleware when you need a full site.

How do forms work without JavaScript?

The Form component renders a real HTML form with POST /_resuma/submit/:name. Progressive enhancement: the runtime intercepts submit when loaded, but forms work as plain POST without JS.

Is Resuma production-ready?

v0.x — APIs may evolve. Security defaults (CSRF, headers, rate limits) are built in. See Security and harden with the todo reference.

Where is the backend security reference?

examples/todo — guards, DTO validation, service layer, authorization. Docs: /docs/security/todo.