Vike on EdgeOne Pages: Full-Stack Edge Deployment, Universal Deploy on the Way

EdgeOne Pages now officially supports the Vike framework. With the upgraded @edgeone/vite adapter, developers can deploy Vike-powered full-stack applications to the global edge — server-side rendering, static generation, and HTML streaming all included — without manually wiring up complex build configurations.
We're also excited to share that EdgeOne is collaborating with the Vike team on Universal Deploy, a new framework-agnostic deployment standard for the Vite ecosystem. As this standard matures, EdgeOne Pages will be among the first platforms to fully integrate it, making cross-framework deployment even more seamless.
Why Vike?
Vike is a modern, Vite-based full-stack framework known for its flexibility and developer control. It offers file-based routing under pages/, per-route rendering strategies (SSR, SSG, and streaming), and first-class support for React, Vue, and Svelte — you can even mix UI libraries within the same project. Its +Page, +data.ts, and +config.ts conventions give you fine-grained control over every route without imposing a rigid architecture.
With this update, EdgeOne Pages provides a dedicated adapter for Vike. Developers don't need to manually handle complex server-side rendering configurations — simply install the @edgeone/vite adapter and add it to your Vite config to deploy your full-stack Vike project. Whether you're building a server-rendered SaaS app, a pre-rendered documentation site, or a streaming-first dashboard, you can enjoy a consistent and smooth deployment and runtime experience on EdgeOne Pages.
Looking Ahead: Universal Deploy
Vike recently announced Universal Deploy — a framework-agnostic standard that lets any Vite framework register its server entries and route metadata in a shared format, so any deployment platform can read and deploy them without framework-specific glue code.
It's an elegant solution to the "N frameworks × M platforms" adapter explosion problem. Instead of every framework building custom integrations with every platform, Universal Deploy introduces a thin convention layer (@universal-deploy/store) that both sides can speak.
EdgeOne is working closely with the Vike team on this initiative. As the first platform to collaborate with Vike on validating the Universal Deploy approach, we're actively integrating the standard into @edgeone/vite. Once the integration is complete, deploying any Vite framework that supports Universal Deploy to EdgeOne Pages will require zero additional configuration — the adapter will read the universal route metadata and handle everything automatically.
Tutorial: Deploy a Vike App to EdgeOne Pages
Getting started takes about 5 minutes. Here's the full setup.
Prerequisites
- Node.js 22+
- An existing Vike project (or create one from a template)
- An EdgeOne Pages account (free tier available)
Step 1: Install the Adapter
npm install @edgeone/viteStep 2: Configure Vite
Open your vite.config.ts and add the EdgeOne plugin alongside Vike:
import { defineConfig } from "vite";
import vike from "vike/plugin";
import edgeone from "@edgeone/vite";
export default defineConfig({
plugins: [
vike(),
edgeone({ serverWrapper: "vike" })
],
});That's the entire configuration. The serverWrapper: "vike" option tells the adapter to use Vike's server entry conventions and automatically handle route detection — no manual route lists needed.
Optional Configuration
The edgeone() function accepts several optional parameters for advanced use cases:
Option | Description |
clientBuildDir | Override the default client build output directory |
serverBuildDir | Override the default server build output directory |
serverEntry | Override the default server entry file path |
routes | Manually specify route list (auto-detected by default) |
ssr | Explicitly enable/disable SSR (auto-inferred by default) |
Step 3: Set Up Rendering Modes (Optional)
Vike's per-route configuration works seamlessly on EdgeOne Pages. Here are the three modes:
SSR (default) — no extra config needed. Any page without explicit prerender: true is server-rendered at the edge.
SSG (Static Generation):
// pages/blog/+config.ts
export default {
prerender: true,
};Streaming:
// pages/dashboard/+config.ts
import type { Config } from "vike/types";
export default {
stream: true,
} satisfies Config;Step 4: Build and Deploy
Option A: CLI Deploy
npm run build
edgeone pages deployOption B: Git Integration
- Push your project to GitHub or GitLab
- Go to the EdgeOne Pages Console
- Connect your repository
- Set build command to npm run build and output directory to dist
- Deploy
Every subsequent git push triggers an automatic redeploy.
Step 5: Verify
Once deployed, your app is live on EdgeOne's global edge network. SSR routes return server-rendered HTML from the nearest edge node. Pre-rendered routes are served from CDN cache. Streamed routes begin sending HTML chunks immediately.
Visit your deployment URL and check the response headers — you'll see EdgeOne's edge node identifiers confirming your app is running at the edge closest to your users.
What's Supported
Here's the full compatibility matrix for Vike features on EdgeOne Pages:
Vike Feature | Status |
File-based routing (pages/) | ✅ Supported |
Server-side rendering (SSR) | ✅ Supported |
Static site generation (SSG / prerender) | ✅ Supported |
HTML streaming | ✅ Supported |
Dynamic routes (@param) | ✅ Supported |
Multi-framework (React / Vue / Svelte) | ✅ Supported |
Data fetching & lifecycle (+data.ts, etc.) | ✅ Supported |
Universal Deploy standard | 🔜 Coming soon |
Get Started
- Create a new project: Use Vike's project scaffolder and select EdgeOne as your deploy target
- Explore templates: Browse ready-to-deploy Vike templates on EdgeOne Pages
- Read the docs: Full Vike deployment guide at Vike Framework
Join Us on Discord
We're building EdgeOne Pages for developers who want full control without full complexity. If you're using Vike, experimenting with Universal Deploy, or just curious about edge-first full-stack development — come talk to us.
👉 Join our Discord community to share your projects, report issues, request features, or just say hi.