Gatsby

Deploy your Gatsby app

Gatsby has been a static-site generator from the start, and gatsby build has written to the same public folder for years. Nothing unusual here — build it, deploy it.

steps
  1. 01

    Build the site

    Run "gatsby build" (or "npm run build", which calls the same thing). Gatsby pre-renders every page and writes optimized static output to "public".

  2. 02

    Skip develop mode

    "gatsby develop" starts a live-reloading dev server on its own port — it's not what produces deployable output. You want "build", not "develop".

  3. 03

    Deploy it

    Run "npx harvis deploy 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 Gatsby 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.

terminal
gatsby build
npx harvis deploy public

Prefer dragging files instead of a terminal? Build the project, then drop the output folder here and publish it the same way.

Gatsby deploy questions

My Gatsby site pulls data from a CMS. Does that still work after deploying?

Yes, as long as the data fetching happens at build time through Gatsby's GraphQL data layer, which is the normal Gatsby pattern. The page is already fully rendered with that data baked in by the time gatsby build finishes — nothing needs to run at request time.

Do Gatsby's dynamic routes and client-only paths work?

Pages generated via createPages at build time work fine — they're plain files in public. Client-only routes (Reach Router matchPath) render in the browser after the shell loads, and harvis's fallback to your entrypoint HTML handles the direct-visit case.

Is deploying a Gatsby app to harvis actually free?

Yes, no card required. Free limits are 500 files and 50 MB per site, which covers a static Gatsby 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 Gatsby 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 Gatsby 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.

other frameworks

Deploying something else?

The recipe is the same everywhere — build it, then npx harvis deploy the output.