Vike
You can deploy your Vike ↗ app to Cloudflare using the Vike extension vike-photon ↗.
All app types (SSR/SPA/SSG) are supported.
Vike ↗ is a Next.js/Nuxt alternative for advanced applications, powered by a modular architecture for unprecedented flexibility and stability.
Use vike.dev/new ↗ to scaffold a new Vike app that uses vike-photon with @photonjs/cloudflare.
-
Terminal window npm i wrangler vike-photon @photonjs/cloudflareTerminal window yarn add wrangler vike-photon @photonjs/cloudflareTerminal window pnpm add wrangler vike-photon @photonjs/cloudflare -
pages/+config.ts import type { Config } from 'vike/types'import vikePhoton from 'vike-photon/config'export default {extends: [vikePhoton]} satisfies Config -
package.json {"scripts": {"dev": "vike dev","preview": "vike build && vike preview","deploy": "vike build && wrangler deploy"}}wrangler.jsonc {"$schema": "node_modules/wrangler/config-schema.json","compatibility_date": "2025-08-06","name": "my-vike-cloudflare-app","main": "virtual:photon:cloudflare:server-entry",// Only required if your app depends a Node.js API"compatibility_flags": ["nodejs_compat"]} -
.gitignore .wrangler/ -
(Optional) By default, Photon uses a built-in server that supports basic features like SSR. If you need additional server functionalities (e.g. file uploads ↗ or API routes ↗), then create your own server ↗.
To access Cloudflare APIs (such as D1 and KV), use bindings which are available via the env object imported from cloudflare:workers.
import { env } from 'cloudflare:workers'// Key-value storeenv.KV.get('my-key')// Environment variableenv.LOG_LEVEL// ...Example of using Cloudflare D1:
Terminal window npm create vike@latest -- --react --hono --drizzle --cloudflareTerminal window yarn create vike --react --hono --drizzle --cloudflareTerminal window pnpm create vike@latest --react --hono --drizzle --cloudflareOr go to vike.dev/new ↗ and select
Cloudflarewith an ORM.
If you use TypeScript, run wrangler types whenever you change your Cloudflare configuration to update the worker-configuration.d.ts file.
npx wrangler typesyarn wrangler typespnpm wrangler typesThen commit:
git commit -am "update cloudflare types"Make sure TypeScript loads it:
{ "compilerOptions": { "types": ["./worker-configuration.d.ts"] }}See also: Cloudflare Workers > TypeScript.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2026 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark
-