Skip to main content
This app is a static SPA — npm run build produces a dist/ folder that you can deploy to any static host.

Build the app

1

Run the build command

npm run build
This runs tsc -b to type-check your project, then bundles everything with Vite. Output goes to the dist/ directory.
2

Preview the production build locally

npm run preview
Vite serves the dist/ folder at http://localhost:4173 so you can verify everything works before deploying.
Because the app uses React Router with the HTML5 History API, your host must serve index.html for every route — not just /. Without this, refreshing a page like /features returns a 404. Each platform section below explains exactly how to configure this.

Deployment options

Option 1 — drag and drop
1

Build the app

npm run build
2

Drop the dist/ folder

Go to netlify.com/drop and drag your dist/ folder onto the page.
Option 2 — connect a GitHub repo
1

Import your repo

In the Netlify dashboard, click Add new siteImport an existing project and connect your GitHub repository.
2

Configure build settings

Set the following:
  • Build command: npm run build
  • Publish directory: dist
3

Deploy

Click Deploy site. Netlify rebuilds on every push to the main branch.
SPA routing — required stepCreate the file public/_redirects with this content:
public/_redirects
/* /index.html 200
This tells Netlify to serve index.html for every path, which lets React Router handle routing on the client.

Next steps

Troubleshooting

Fix common issues with routing, imports, and build errors.

Adding pages

Add new routes before you ship.

Build docs developers (and LLMs) love