Deploy a Vue SPA
Deploy a Vue SPA as a seenode static site. Build to dist, publish it, SPA routing on by default.
Last updated September 18, 2026
New to seenode? Start free: 7-day trial, no credit card. Static sites are $0.
This guide deploys an existing Vue SPA (typically Vite) as a static site. seenode runs your build and serves the files. You do not need Express or a start command.
Note (Need a Node server?)
If the app is an API or must run Node at request time, create a web service instead and follow Express.
Prerequisites
- A seenode account
- Git configured on your machine
- A Vue project that builds to a folder (Vite default:
dist)
Deploy on seenode
Push to Git
Commit the project and push it to GitHub or GitLab.
Create a Static site
From the dashboard, create a Static site and connect the repository.
Build settings
- Language: Node
- Build command:
npm install && npm run build - Publish directory:
dist(or whatevervite.configsets asbuild.outDir) - Client-side routing (SPA): leave on so Vue Router history mode works
VITE_*values you need in the client must be set in Envs before the build.Create
Create the site and watch Logs until the build finishes.
Troubleshooting
- 404 on client routes: leave SPA routing on, or add a rewrite
/*→/index.htmlon Routing. - Wrong or empty site: publish directory must contain
index.htmlafter the build. - Missing styles during build: Vite Vue defaults to
src/style.css. Ensure it exists or fix the import.
Starting from scratch?
Follow the official Vue and Vite docs, then the steps above. An older Express template: example-vue-with-express.
Next steps
Static sites
Publish directory, SPA routing, and headers.Custom domain
Point your own domain at the site.Environment variables
Build-time keys for static sites.