01 Developer tooling / static prerendering
snappy-prerender
An alternative to react-snap for current toolchains. It prerenders every route of a single-page app to static HTML at build time and checks hydration per route.
- The problem
- react-snap's last npm release was 2018, and React 18/19 compatibility has been open since 2023. Client-rendered SPAs still ship an empty shell to Google and to LLM crawlers that never execute JavaScript.
- The solution
- snappy-prerender runs after your normal build. It serves the output on loopback, renders every route with Playwright, and writes the settled DOM as static HTML. Crawlers get the page immediately; the client hydrates from the same markup. The build also generates
llms.txt,sitemap.xml,robots.txt, per-route metadata and social tags, then adds critical CSS, minification, preloads, CSP, locales and hreflang. Later builds reuse unchanged routes, revalidate API and vendored assets, and keep the cache locked and pruned. Third-party assets are localized with SRI and host, size and redirect checks. Audit, drift and hydration reports are included. The package ships as a Vite plugin, CLI, init wizard and API for React, Vue, Svelte, Preact, Angular, Solid, Lit, Ember and vanilla JavaScript.
- JavaScript
- Node.js
- Playwright
- Vite
- CLI design