How it deploys
Detection keys off the vite dependency. Canner runs your build script and serves the output directory statically. Unknown paths fall back to index.html, so client-side routers (React Router, Vue Router) work on deep links and refreshes.
Have a backend too? If your project ships its own Node server that serves both an API and the built client — the shape most AI tools (Bolt, v0, Manus, Lovable) export — Canner detects that and runs the server instead. See Node servers & full-stack apps.
Environment variables
Vite inlines import.meta.env.VITE_* values at build time. Set them in the Env Vars tab before deploying; after changing one, redeploy so it’s baked into the new bundle. Variables without the VITE_ prefix never reach browser code — that’s Vite’s rule, and it protects your secrets.
Good to know
- Calling an external API? Configure CORS on the API, or better, put the API on Canner too and give each its own project.
- A custom
outDirworks — Canner finds the builtindex.htmlrather than assumingdist/. - Angular, CRA, Gatsby, Docusaurus and other static-build frameworks deploy the same way — build, then serve the output.