Novence

Guide · Framework

Host Astro on Novence

Astro is static by default. astro build writes ./dist. Then npx novence deploy ./dist.

Astro is the SSG Novence already recommends for agency rebuilds. Default output: "static" emits a dist/ tree with an HTML file per route. Skip Node and Cloudflare adapters; those target SSR hosts.

Configure

Leave output at static (the default) or set it explicitly. trailingSlash: "always" matches how Novence resolves directory URLs to index.html.

Do not add @astrojs/node, @astrojs/cloudflare, or output: "server" / "hybrid". Actions, server endpoints, and on-demand SSR will not run after upload.

// astro.config.mjs
import { defineConfig } from "astro/config";

export default defineConfig({
  output: "static",
  trailingSlash: "always",
});

Build

npx astro build

Run npx astro build. You should see dist/index.html plus a folder per route. Content collections and MDX prerender into those files at build time.

Deploy

npx novence deploy ./dist

npx novence deploy ./distdist is the first folder the CLI auto-detects. Claim the anonymous key later with novence claim --email.

The CLI auto-detects ./dist among dist, build, out, public, _site. Pass the path if another of those folders exists. Full CLI: /cli.

Caveats

  • Astro server islands and actions need a server. Rebuild and redeploy when content changes.
  • Client islands (client:load and friends) ship as JS in dist/ and work as long as they call public APIs, not a Novence backend.
  • Forms: use Novence Forms at /__forms/{formId} or a third-party endpoint. See /forms.

FAQ

Do I need an Astro adapter?

No. Adapters are for SSR. Static output is the default and is what Novence uploads.

Can I use Astro content collections?

Yes. They compile to HTML at build time. Update markdown, rebuild, and deploy again. There is no live CMS on the host.

Why is Astro called out on /examples?

Agency rebuilds need lean HTML. Astro emits that by default. Any SSG works; Astro is the usual fit.

Agents ship. Novence hosts.

Copy Prompt or get a key. Then npx novence deploy ./dist.