惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
爱范儿
爱范儿
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
GbyAI
GbyAI
H
Help Net Security
A
About on SuperTechFans
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
D
Docker
博客园 - Franky
有赞技术团队
有赞技术团队
G
Google Developers Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
Introducing Universal Deploy (+server) | Vike
brillout · 2026-04-24 · via Hacker News: Show HN

April 21, 2026

BlueskyXLinkedIn

Today, we are thrilled to introduce Universal Deploy — a new infrastructure to deploy Vite apps (not only Vike apps) anywhere with zero configuration.

We're also thrilled to announce a collaboration with Tencent EdgeOne.

Alongside Universal Deploy, we're releasing built-in +server.js support in Vike, powered by Universal Deploy.

This means vike-photon is now deprecated: everything it did is now part of Vike core and Universal Deploy, with a simpler DX and no extra packages to install.

If you use vike-photon (or still vike-server), we recommend migrating to +server.js.

Universal Deploy supersedes Photon. It's the next — and we believe final — step in a journey that started with vike-server and continued with Photon. This is a big deal not just for Vike, but for the whole Vite ecosystem.

What changes for users

For Vike users, the story is now refreshingly simple:

  • Define your server with +server.js. Use any server framework you like — Hono, Express.js, Fastify, Elysia, H3. For example with Hono:

    // +server.js
     
    import { Hono } from 'hono'
    import vike from '@vikejs/hono'
     
    const app = new Hono()
    vike(app) // Attaches Vike
     
    export default {
      fetch: app.fetch
    }
    // +server.ts
     
    import { Hono } from 'hono'
    import vike from '@vikejs/hono'
    import type { Server } from 'vike/types'
     
    const app = new Hono()
    vike(app) // Attaches Vike
     
    export default {
      fetch: app.fetch
    } satisfies Server
  • Pick a deployment target by installing its official Vite plugin: @edgeone/vite, @netlify/vite-plugin, @cloudflare/vite-plugin, vite-plugin-vercel, or nothing at all to self-host with Node.js / Bun / Deno.

That's it. No vike-photon, no vike-server, no vike-cloudflare, no glue packages. Vike and your deployment provider talk to each other directly through Universal Deploy.

Manual integration via renderPage() is still supported and remains unchanged. We care equally about manual integrations — both workflows are fully supported and maintained.

What is Universal Deploy?

Universal Deploy is not a user-facing tool. It's a low-level toolkit that frameworks and deployment providers use behind the scenes to talk to each other.

In concrete terms, Universal Deploy provides:

  • A shared store (@universal-deploy/store) where frameworks register their server entries and routing metadata.
  • A common routing format that every participant understands.
  • Minimal Vite plugins that deployment Vite plugins can use to automatically integrate with frameworks.

The idea: instead of every framework writing custom integration code for every deployment provider (and vice versa), everyone agrees on a small, low-level convention. Frameworks register what they want to deploy; providers read it and deploy it. Say goodbye to N×M glue code 👋

For framework authors, registering an entry looks like this:

import { addEntry } from '@universal-deploy/store'
 
addEntry({
  id: './src/server/api.ts',
  route: '/api/*',
  method: 'GET',
})

While deployment providers read from the store.

Why we built it (a short history)

Universal Deploy is the third — and we hope last — iteration.

vike-server (March 2025) was a Vike extension that integrated Vite with any JavaScript server (Express.js, Hono, Fastify, …) and any deployment target. While building it, we realized that most of the code wasn't actually Vike-specific.

Photon (October 2025) was our answer to that observation: we extracted everything we learned from vike-server, vike-cloudflare, and vite-plugin-vercel into a fully framework-agnostic project. Photon brought first-class Cloudflare support (with the dev server running inside workerd, the same runtime as production), HMR for server code, and zero-config deployment.

Universal Deploy (April 2026) takes that one step further. Photon was framework-agnostic, but it was still its own somewhat opinionated stack. Conversations sparked by Netlify's Vite RFC made it clear that what the ecosystem really needed was something even smaller and even more neutral: a tiny convention layer that everyone — frameworks, deployment providers, and Vite itself — could adopt without buying into a particular implementation.

That's what Universal Deploy is. It's an unopinionated and flexible infrastructure to solve the deployment fragmentation problem.

Collaborating with the Vite team

Universal Deploy is a direct response to Netlify's Vite RFC. Specifically, it tackles two of the issues raised in the RFC:

  1. Server entry point location — how does a deployment provider find the server entries that a framework wants to deploy?
  2. Routing metadata — how does the deployment provider know which routes go where, and which methods they handle?

The @universal-deploy/* packages are a direct answer to those questions, and we're working with the Vite team to bring new conventions to the Vite and JavaScript ecosystem.

Collaborating with Tencent EdgeOne

The EdgeOne team were the first to adopt and work on integrating Universal Deploy into @edgeone/vite. This means any UD-aware Vite framework, including Vike, can now deploy to EdgeOne Pages with zero glue code — just add @edgeone/vite to your Vite config.

Tencent's EdgeOne Pages is an edge-first platform for deploying full-stack web apps. With its global edge network, your Vike app's SSR routes are rendered at the edge node closest to each user, pre-rendered pages are served directly from CDN cache, and streaming responses start delivering content immediately — all without managing any infrastructure.

You can try it out at vike.dev/new then select EdgeOne Pages.

It's just the beginning of our collaboration and we're looking forward to what's next 🚀

Try it out

You can try it today by going to vike.dev/new and selecting a server (e.g. Hono) along with a deployment provider (e.g. EdgeOne, Netlify, Cloudflare, or Vercel).

If you're migrating from vike-photon or vike-server, head over to the migration guide.

If you're a framework or deployment provider author curious about adopting Universal Deploy, reach out.

Huge thanks to everyone who's contributed to vike-server, Photon, the Netlify RFC discussions, the Tencent EdgeOne team, and the broader Vite ecosystem. Universal Deploy wouldn't exist without that collective effort.

Let's deploy Vite apps anywhere 🚀

See also