You already ran the build. That folder is the website.
Drop dist and it is live over HTTPS on its own subdomain. No repository, no remote to add, nothing to configure — the build already happened on your machine, and what is left is moving the files.
Two linesor drag the folder instead
npm run build
npx drop2run deploy distNo terminal in the loop? Drag the folder onto the home page — it is listed back to you file by file before anything uploads. Every command and both ways to sign in: the CLI docs.
The build is done. Nothing needs to rebuild it.
Every host in this category wants the project so it can run the build itself. This one wants the output, which you already have.
- no repository
The folder is enough
No git remote, no first push, no connecting an account to an organisation you do not administer. A folder on your disk is a complete input.
- no build step
Nothing queues
There is no build on our side to wait for, to debug at a distance, or to run out of minutes on. The URL is ready when the upload finishes.
- no config file
Nothing to commit first
No file in the repository describing how to deploy it. The two settings that exist — routing and the error page — are on the site afterwards, not in your project.
If it has a router, tell the site so.
One radio on the site's own settings page, and the only one of these that catches people out. The rest is here so nothing else does.
- ✓A client-side router needs “Single-page app”. Set it on the site's settings and any path that is not a file reaches
index.html, so a deep link and a reload both work. Left on “Static site”,/aboutis honestly reported as a path that does not exist — which is right for a folder of pages and wrong for an app that owns its own URLs. Why this happens, on any host → - ✓A
404.htmlbeside the index becomes the error page. Nothing to configure — put the file in the folder and it is used. On a single-page app it is not needed, because nothing is unmatched. - ✓Relative asset paths work as built. The site is served at the root of its own subdomain, so Vite's default
baseresolves. A project built for a sub-path —base: "/app/"— is the one case to rebuild without it. - ✕The default subdomain is not indexed. Every response on it carries
X-Robots-Tag: noindex, on purpose, so a preview does not turn up in search results. A real site wants a custom domain, which does not carry that header — see the plans. - ✕Nothing of yours runs here. No API routes, no server-side rendering, no environment variables read per request, no database. A framework that needs a running server needs a different host; a framework that can export static output belongs here.
A signed-in account, at no cost.
The figures below are the free tier's, read from the same table the pricing page reads. A production build of a single-page app is usually a few hundred kilobytes of JavaScript and CSS.
10 MB per file
The ceiling one file may be. It is the one worth checking against a build that bundles images or fonts into single assets.
50 MB per site
Everything one site holds, across every version of it that is still kept.
2,000 files per publish
Counted after the junk is dropped — .DS_Store, node_modules and .git never leave your machine.
0 versions kept
Each publish is a version of its own, so the previous one is still there to roll back to rather than overwritten.
Build it, then drop it.
The folder you already have is the whole input. Publishing is free, with or without an account.