-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Description
Name
Vike
Homepage
Install instructions
vike.dev/new => Vike with vike-react
npm create vike-core@latest => Vike with custom React integration
Is your framework open source?
Well maintained
Bugs are handled quickly.
Feature requests are triaged quickly (either put on the roadmap with prioritization, declined, or quickly implemented).
Active community
Clear onboarding
Scaffold new Vike app
Add SSR/SSG to existing Vite app
Ecosystem compatibility
Vike offers unprecedented flexibility in that regard, see Developer Experience section below.
Self-hosting option
All deployment strategies:
- Static host (via pre-rendering)
- Self-hosting
- Serverless/edge deployment
- ISR (via vite-plugin-vercel)
Users can choose between:
- Zero-config integration (via Photon)
- Manual integration (via
renderPage())
Note
What is Photon?
Photon is a lightweight Nitro alternative, a Vike-agnostic deployment infrastructure that can be used by other frameworks.
As described in Netlify's RFC, we aim to deprecate Photon npm packages in favor of conventions and optional, low-key utility libraries. We recently shared our latest design to achieve this (magne4000 is part of the Vike team).
We're talking with Netlify (serhalp from Netlify) and with Cloudflare (jamesopstad from Cloudflare), and also private discussions with the Vercel team. The goal is to have deployment plugins that work with every framework (only Vite-based for now, but eventually non-Vite based as well).
Developer Experience
Data fetching:
- Modern RPC via Telefunc (we're the authors of Telefunc)
- As well as "old school" page-level data fetching via
+data. (For many types of apps, e.g. SSG, page-level data fetching is often sufficient.)
All render modes:
- SSR
- Pre-rendering aka SSG. (First-class support, see
+prerender.) - SPA/MPA. (First-class support, e.g. client-only data fetching which is a common blocker with other frameworks.)
Polished details:
- Automatic frontend deployment synchronization
- Low-level i18n API, for full control over i18n
- Route Functions
- Route Guards
- Advanced Base URL support (Base URL for static assets != Base URL for the SSR server)
- URL rewriting
- User can seemlessly use
hitory.pushState() - Opt-in support for legacy browsers
- Zero-config interop, e.g. Tauri
- Infinite loop guards
- Errors & warnings meticulously crafted to be helpful
- React component stack injected into stack trace
- ...
Flexibility & Stability
Vike's main USPs are flexibility and stability.
By design:
- Vike is an agnostic (thus stable) core, with low-level hooks that can support an unprecedented amount of tools and techniques.
- Large suite of hooks.
By prioritization, for example:
- We treat blockers with high priority. (When users report they cannot achieve something, we care a lot to unblock them.)
- We enable users to access internals as temporary escape hatch.
Note
Vike caters to companies that need extra flexibility and/or stability, see for example Vike use cases.
User Experience
Fast UIs:
- Progressive enhancement via HTML Streaming
- The developer has precise control over data lifecycle (e.g.
+onCreateGlobalContextand+onCreatePageContext), leading to improved performance. - Prefetching
- Preloading
- Waterfall detection
Compatible with our future vision for React
Full support for React 19's HTML Streaming:
- Both Node.js and Web Streams
- Progressive Rendering
- Powered by react-streaming (for minimal boilerplate & config, making
vike-reactandvike-react-rsca lot smaller and simpler) - No known issues (both Vike's side and
react-streaming's side)
Vite recently landed support for Server Components (via @vitejs/plugin-rsc), and Vike now has experimental RSC support via vike-react-rsc.
Note
See also:
- Our design for progressive RSC adoption
- RFC #219: injectToStream (important for wide adoption of React 19's HTML Streaming)
- We were early RSC proponents