Skip to content

Nuxt

For fully static Nuxt sites, nuxt generate prerenders the app into a plain directory of files under .output/public, and Cloudflare.Website.StaticSite deploys any directory produced by any build command:

alchemy.run.ts
import * as Alchemy from "alchemy";
import * as Cloudflare from "alchemy/Cloudflare";
import * as Effect from "effect/Effect";
export default Alchemy.Stack(
"MyNuxtSite",
{
providers: Cloudflare.providers(),
state: Cloudflare.state(),
},
Effect.gen(function* () {
const site = yield* Cloudflare.Website.StaticSite("Website", {
command: "nuxt generate",
outdir: ".output/public",
});
return { url: site.url };
}),
);

This is a suggestion, not a verified recipe. Unlike Astro — where the same StaticSite workaround is proven by alchemy.run itself — no Nuxt project has been deployed with Alchemy, so treat this shape as a starting point and verify the deployed output yourself.

A nuxt generate output is static files only, so nothing that needs Nuxt’s Nitro server survives it: no per-request server-side rendering, no server/api routes, no server middleware. If your app depends on any of those, there is no Alchemy deployment path for it today — and even the static-generation path above is unverified.