Host your Next.js static export at your own address
output: 'export' turns a Next.js app into an out folder of HTML. Drop it in and it's live over HTTPS — no Node server, no platform account.
Drop your out folder here
Any other file works too — up to 25.0 MB, or 100.0 MB for a whole site
Free to use, live at your-name.99helpers.site in about ten seconds.
Why publishing is the slow part
Not every Next.js project needs a server. A marketing site, a documentation site or a portfolio built with the App Router can be exported to static HTML, at which point it has the same hosting needs as a folder of files — and none of the platform lock-in that usually comes with the framework.
What a Next.js static export build gives you
- An out folder with every route pre-rendered to HTML
- Hashed JavaScript and CSS chunks under _next/static
- Client components that hydrate in the browser as normal
- Any files from your public folder, copied across
Build it, then upload it
- Build command
next build- Folder to upload
out/- Check basePath in next.config.js
- Leave basePath unset. Set output: 'export' instead, and add images: { unoptimized: true } if you use next/image.
The default answer is a platform
A static export needs nothing but a file server, yet the usual advice is to hand the whole repository to a hosting platform and let it build.
Vercel's free tier is for personal use
The Hobby plan is explicitly non-commercial, which quietly rules it out for a client site or anything with a price on it.
basePath follows the build around
Set it for a sub-path deployment and it's baked into every asset URL, so the same build won't work at a root address.
Publishing a Next.js static export site
- 1
Turn on the static export
In next.config.js, set output: 'export'. If you use next/image, add images: { unoptimized: true }, since the optimizer needs a server.
- 2
Run next build
Next writes the exported site to out: one HTML file per route, plus the _next/static assets.
- 3
Upload out and pick an address
Drag the out folder in, choose a name, and the site is live over HTTPS in seconds. The folder structure is preserved, so _next paths resolve.
Worth knowing
- Routes export as folders with index.html inside, so /blog/hello/ works, and /blog/hello redirects to it.
- An app/not-found.tsx exports to 404.html, which is used automatically for missing pages.
- Dynamic routes need generateStaticParams so Next knows which pages to write out at build time.
- Anything server-side — Route Handlers, Server Actions, ISR, middleware, on-demand revalidation — doesn't survive a static export. Those need a Node host.
- A large app can approach the 500-file limit once every chunk is counted; check the file count in out before you publish.
Questions
- Does a full Next.js app work here?
- Only as a static export. API routes, Server Actions, middleware and incremental regeneration all need a running server. Pages that pre-render at build time work exactly as they do on any static host.
- Do I need next export?
- Not any more. Set output: 'export' in next.config.js and next build writes the out folder for you.
- What happens to next/image?
- The optimizer needs a server, so set images: { unoptimized: true } and your images are served as they are. Resize them beforehand if file size matters.
- Will client-side routing work?
- Yes. Links between exported pages work, and each route also exists as its own HTML file, so a direct visit or a refresh loads the right page.
- Can I publish this from CI?
- Yes. The REST API takes a token, so a build pipeline can publish the out folder to the same address on every merge.
Publish the Next.js static export build you already have
Drop the folder in at the top of this page and see the link for yourself. You only make an account once it's ready to go live.
Hosting sites from other tools
Hosting guides by file type
Every site gets its own address on 99helpers.site — see static site hosting for every generator, how website hosting works here or free file hosting for any file type.