Guide · Framework
Deploy Gatsby to Novence
gatsby build writes ./public. Point the CLI at that folder. No Gatsby Functions on the host.
Gatsby’s production output is already a static public/ directory. Novence uploads that tree. Gatsby Functions, DSG, and SSR pages have nowhere to run after deploy.
Configure
Set trailingSlash: "always" so page paths match Novence directory indexes. GraphQL data is baked into HTML at build time; you do not need a running Gatsby node process on the host.
Remove or avoid gatsby-plugin-netlify, Functions, and defer / server-rendered routes. If a page cannot be prerendered, drop it or replace it with client-side fetch to a public API.
// gatsby-config.ts
import type { GatsbyConfig } from "gatsby";
const config: GatsbyConfig = {
trailingSlash: "always",
plugins: [],
};
export default config;Build
npx gatsby build
Run npx gatsby build. Confirm public/index.html. Gatsby also writes public/page-data/ and webpack bundles — those are static assets and upload fine.
Deploy
npx novence deploy ./public
npx novence deploy ./public. Pass the path explicitly if you also have a dist or build folder the CLI might pick first (it checks dist, build, out, then public).
The CLI auto-detects ./public among dist, build, out, public, _site. Pass the path if another of those folders exists. Full CLI: /cli.
Caveats
- Gatsby Functions and SSR/DSG are not hosted.
- Image CDN plugins that call a remote optimizer still work; local
gatsby-plugin-imageoutput inpublic/is just files. - Keep
public/out of git as usual; only the built tree is uploaded.
FAQ
Should I deploy the repo or public/?
Only public/. Novence does not run gatsby build for you. Source files without a built index.html are rejected.
Do Gatsby Functions work?
No. Put form handling on Novence Forms or a third-party endpoint. See /forms and /site-data.
Why pass ./public explicitly?
The CLI looks at dist, build, and out before public. If any of those exist, it will deploy the wrong folder unless you pass ./public.
Agents ship. Novence hosts.
Copy Prompt or get a key. Then npx novence deploy ./public.