Vite
Ultra-fast build. Instant HMR, minimal config, solid plugin ecosystem. What Vite does not do matters as much, and [GreatFrontEnd](https://www.instagram.com/reel/Dd6Zuz0AUcE/) sorts it into five pairs against Next.js. Vite runs the dev server and the build; routing and server features are left to you, where Next.js builds them in. Routing therefore goes through a library you install and configure (React Router), while the Next.js App Router derives routes from folders and files. Data loads in the browser once the app runs, while Next.js can fetch it on the server and ship the page already filled. `React.lazy` delays a component until its first render; `next/dynamic` does the same and can also skip server rendering for a component that only lives in the browser. Finally, a Vite SPA writes its title and meta tags in `index.html`, once for the whole site, while Next.js generates them page by page through its Metadata API. That is the costliest point for SEO: on a Vite SPA each page must set its own tags (React 19 can hoist them into the head), or Google sees the same title everywhere.
Strengths
- Instant HMR based on native ES modules, no more full rebuilds
- Rollup for prod build: aggressive tree-shaking, route-level code splitting
- Minimal config: vite.config.ts in 20 lines for a complete app
- Rich plugin ecosystem: PWA, SVG, i18n, Vitest natively integrated
Limitations
- Not a framework, requires composing with React Router, TanStack, etc.
- Complex manual SSR, Next.js remains the solution for serious server rendering
- Uneven third-party plugin quality, some unmaintained beyond Vite 4
Best for
- React, Vue or Svelte SPAs without SSR requirement
- Component libraries, design systems, npm packages