Spache

Compare rendering approaches

These approaches can all make a JavaScript app’s content available as HTML. The useful comparison is who receives that HTML, where rendering happens, and which parts of freshness and delivery your team operates.

ApproachWho gets prepared HTML?Rendering and freshnessWhat your team owns
SpacheVisitors and crawlersSpache renders and serves cached routes, then refreshes them using configured cache and validation behavior.Configure your app origin, routes, cache behavior, and domain.
AstroVisitors and crawlersRender at build time or on demand, then configure how generated or server-rendered pages stay current.Choose rendering modes, islands, data loading, deployment, and content freshness.
Next.jsVisitors and crawlersRender in the build or server, with freshness controlled by the app’s caching and revalidation strategy.Build the server-rendered app and choose route, data-cache, and revalidation behavior.
react-snapVisitors and crawlersRender routes in a headless browser during the build and deploy the generated HTML files.Run the browser crawl in CI, ensure routes are found, publish snapshots, and regenerate them when content changes.
Prerender.ioCrawlers; visitors use the normal site pathRender crawler requests on cache misses and serve cached HTML to later crawler requests.Integrate crawler detection and routing, and configure cache expiration or recaching.

Open a comparison for a closer look at the trade-offs: Astro, Next.js, react-snap, and Prerender.io.

Mid Engine Co: a real Spache case study

Visit midengineco.com, a custom storefront backed by Shopify.

It was built as a plain single-page app with Mithril. During development, no server-side rendering work or SSR framework was added; the app loads its product data in the browser, manages each visitor’s cart there, and sends checkout to Shopify.

The existing Render-hosted app was configured as the Spache origin, then its public domain was connected and pointed through Spache. Spache renders and serves prepared product pages, while the visitor’s SPA still starts normally. Public JSON GET responses are captured automatically for startup replay; the visitor’s cart remains their own live browser session. No SSR conversion or separate static HTML publishing pipeline was needed.

Latest available Spache screenshot of Mid Engine Co’s products page
Latest available Spache screenshot of the Mid Engine Co products route.