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.

You can host:
index.html/assetsfolder.zip

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. 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. 2

    Run next build

    Next writes the exported site to out: one HTML file per route, plus the _next/static assets.

  3. 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.

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.