🔧 Control

Control how your pages are rendered and use any view framework (React, Vue, Svelte, ...) and any tool you want (Vuex/Redux/PullState, RPC or GraphQL, React/Vue Query, PWA, Service Workers, other Vite plugins, ...).

Integrating tools is simple and natural.


Filesystem Routing, Data fetching, Pre-rendering (SSG), HMR, i18n, HTML Streaming.

Client Routing (faster page transitions) or Server Routing (simpler app architecture).

Pages can be rendered with SSR, as SPA, or to HTML-only.

💫 Simple

With vite-plugin-ssr you integrate tools manually instead of using a plugin system.

While it means more work, it gives you a simple & sturdy foundation to build upon.

💎 Rock-solid

The source code of vite-plugin-ssr has no known bug, every release is assailed against a heavy suite of automated tests, and it's used in production by many comp­anies.

Stable: the v1 release will most likely have no breaking changes with the current v0.3.x.

🌍 Deploy anywhere

Works with any server environement (Vercel, EC2 instance, AWS lambda, Firebase, Cloudflare Workers, Express.js, Fastify, Hapi, ...).

Pre-render your app and deploy it to any static host (Netlify, GitHub Pages, Cloudflare Pages, ...).

Fits very well Cloudflare Workers's compute model.


Browser-side code splitting: each page loads only the code it needs. Lighthouse score of 100%.

Fast Node.js cold start: pages are lazy-loaded so that adding pages doesn't increase the cold start of your serverless functions.

🚀 Scalable

DX that scales to hundreds of kLOCs — HMR & dev start stays fast.

Architectural flexibility that scales from small hobby projects to large-scale enterprise projects.


Crafted with attention to details and care for simplicity.

Upsteam contributions to Vite and others.

GitHub and Discord conversations are welcome.

Have a question? Want a feature? A tool integration is not working?Join our Discord or open a GitHub ticket.

Explore how it's like to use vite-plugin-ssr