Deploy your Astro app
Astro ships static HTML by default — you only reach for a server adapter if you opt into one. For a default project, npm run build is already producing exactly what this host wants.
- 01
Build the site
Run "npm run build" (or "astro build" directly). Astro pre-renders every page to static HTML in a "dist" folder, plus a hashed, cacheable "_astro" assets folder.
- 02
Confirm you haven't added a server adapter
If astro.config.mjs sets "output: 'server'" or "'hybrid'" with an adapter (Node, Vercel, Cloudflare…), some routes render on request and won't exist as files. The default, adapter-free config is fully static.
- 03
Deploy it
Run "npx harvis deploy dist" 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 Astro 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 build npx harvis deploy dist
Prefer dragging files instead of a terminal? Build the project, then drop the output folder here and publish it the same way.
Astro deploy questions
I'm using Astro islands with React or Vue components. Does that still work?
Yes — islands hydrate in the browser after the static HTML loads, so they don't need a server at request time. The framework code ships as regular JavaScript in the dist folder like any other asset.
What if I need server-rendered routes for one page?
Static hosting can't run per-request server code, full stop. Either keep that route external (calling your own API from client-side JS is fine) or split it out and host it somewhere that runs a server — the rest of the Astro site can still live here.
Is deploying a Astro app to harvis actually free?
Yes, no card required. Free limits are 500 files and 50 MB per site, which covers a static Astro 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 Astro site?
Every site gets a free harvis.dev address, and you can pick your own subdomain from the dashboard after claiming it — my-app.harvis.dev 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 Astro 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.