Yew — это фреймворк в духе React, но на Rust. Компоненты описываются макросом html!, состояние хранится в хуках, а итог собирается в один WebAssembly-модуль.
Сборка идёт через Trunk: команда trunk build --release выдаёт dist с index.html, .wasm и оптимизированными ассетами. В режиме разработки trunk serve поднимает локальный сервер с горячей перезагрузкой.
Самое интересное — фича hydration. Сервер собирается с фичей ssr, рендерит страницу в HTML и возвращает её первым запросом. Клиент скачивает WASM, оживляет уже отрисованный DOM и дальше работает как SPA. Пользователь видит контент мгновенно, а поисковые роботы получают полноценный HTML.
Из подводных камней: размер бандла. Приходится следить за зависимостями и включать lto и opt-level z в release-профиле. Иначе .wasm легко уходит за мегабайт.