Deploy your Nuxt app
Nuxt 3's default build target is a Node server, not static files — so the command that gets you a folder of HTML isn't the one in the getting-started guide. generate is the one you want.
- 01
Run generate, not build
"npm run build" produces a Node server (".output/server"). "npm run generate" pre-renders every route to static HTML instead — that's the one this host needs.
- 02
Find the output folder
Nuxt 3 writes static output to ".output/public". If you're still on Nuxt 2, "nuxt generate" writes to "dist" instead.
- 03
Deploy it
Run "npx harvis deploy .output/public" from your project root. No config and no login for this first deploy — you get a live URL immediately, plus a private claim link to attach the site to a free account whenever you're ready.
Deploy Nuxt with one command
Build your project, then hand the output folder to harvis. No account needed for the first deploy — you'll get a live link and a private claim link to manage it later.
npm run generate npx harvis deploy .output/public
Prefer dragging files instead of a terminal? Build the project, then drop the output folder here and publish it the same way.
Deploy Nuxt on every git push
The command above is one you will run again after every change. A git hook runs it for you: this one already points at .output/public, the folder Nuxt builds into.
The folder holding the finished site. "." is the repo root, which is right for hand-written HTML; a static-site generator writes somewhere else.
pre-push fires on every branch and every remote, so a feature branch would publish over your live site. With this on, a push from anywhere else exits early and goes through untouched.
cat > .git/hooks/pre-push <<'EOF' #!/bin/sh set -e npm run generate harvis deploy .output/public EOF chmod +x .git/hooks/pre-push
The options, the gotchas and how to share a hook with your team are on the git hook page.
Nuxt deploy questions
I ran npm run build by mistake — what changes?
That produced a ".output/server" folder meant to run under Node — it has no index.html and won't serve as static files. Run "npm run generate" instead; it pre-renders the same app to ".output/public".
Do dynamic routes and Nuxt's server API routes work?
Page routes work if Nuxt can enumerate them at generate time (static or with a "nitro.prerender.routes" list for dynamic segments). API routes under "server/api" need a server to run and won't work here — call an external API from the client instead.
Is deploying a Nuxt app to harvis actually free?
Yes, no card required. Free limits are 500 files and 50 MB per site, which covers a static Nuxt build with plenty of room. Published sites don't expire — they stay live until you delete them.
Can I use my own domain with the deployed Nuxt site?
Every site gets a free harvis.page address, and you can pick your own subdomain from the dashboard after claiming it — my-app.harvis.page instead of a random one. Pointing a domain you already own (like mystore.com) at the site isn't supported yet.
How is this different from deploying Nuxt to Vercel or Netlify?
Vercel and Netlify are built around connecting a Git repo and running your build on their servers, with a dashboard to configure it. harvis skips all of that: you build locally (or in your own CI), run one CLI command against the output folder, and get a link — no project setup, and no account needed until you want to keep the site.
Deploying something else?
The recipe is the same everywhere — build it, then npx harvis deploy the output.