I maintain several legacy React apps: CRA, React 18, client-side routing, CMS content. SEO and OG tags need real HTML. A client-side app gives crawlers an empty page.
I built snappy-prerender as a replacement for react-snap to ease my headaches. It is now a full-featured static site generator.
Point it at the app you already have. At build time it opens each route in a browser, follows links, writes static HTML, and checks that the client uses that HTML. The verifier detects React, Vue, Svelte and Preact. You keep your framework, router, build and deploy process.
npm install --save-dev snappy-prerender npx snappy-prerender init npx snappy-prerender
Or run it from vite build with the Vite plugin.
What changed since the launch post:
Verification reports whether each route hydrated or re-rendered, and shows the first mismatch.
The audit checks route health, links, metadata, sitemap and CSP. It writes a JSON report and can fail the build with failOnAuditError .…