EmDash
An Astro CMS for editing real content, backed by D1 and R2. Editorial workflows belong to people, not hardcoded build artifacts.
Visit the CMS-powered site ↗This is a real App Router application built with Vinext, not a screenshot of one. The page is rendered in a Worker, the interactive island hydrates in your browser, and its route handler runs where your request lands.
Click once. The browser calls a Next.js-style route handler running in this Worker. You’ll get back the Cloudflare data center that handled it, an event timestamp, and the deployment runtime—no visitor IP stored.
export function GET(request: Request) {
return Response.json({
edge: request.cf?.colo,
runtime: "vinext / workerd"
})
}An Astro CMS for editing real content, backed by D1 and R2. Editorial workflows belong to people, not hardcoded build artifacts.
Visit the CMS-powered site ↗The Next.js App Router runs on Vite and deploys as a Worker. Server rendering, route handlers, and client navigation all travel together.
Explore the framework ↗The central field guide collects anonymous experiment events and queries them with Cloudflare’s Analytics SQL binding.
Go to the live lab ↗Vinext 1.0 turns familiar Next.js concepts into something that can run on Cloudflare’s network. This very page is the proof.