How to host HTML on Netlify

Drag the folder holding your index.html onto Netlify Drop and the page is served at a generated address. The friction is not the first upload, it is every version after it.

To host HTML on Netlify, drag the folder that contains your index.html onto Netlify Drop, and the page is served at a generated netlify.app address you can send to anyone.

A browser showing the deployed page, with the generated netlify.app address in the URL bar.
A browser showing the deployed page, with the generated netlify.app address in the URL bar.

That is the whole of the first upload. Everything difficult about this route arrives afterwards: the second version, whether the address survives, and what happens when the person reading the page asks for one number to be changed.

Two ways to host HTML on Netlify

Netlify accepts a finished folder or a repository. They suit different kinds of work.

Route What you hand over Good for
Netlify Drop A folder, dragged into the browser One page, one reader, no build
Git connection A repository branch A site several people commit to
CLI deploy A folder, from a terminal Scripted or repeated deploys

If what you have is a single exported report, Drop is the shorter path. The Git route pays off only when more than one person edits the source and you want a history of who changed what.

Getting the folder right before you drag it

Most failed deploys are structural, not technical. Three things decide whether the address shows your page or a not-found screen.

The entry file. Netlify serves index.html at the root of whatever you dropped. A file called report.html is reachable, but only if the reader appends the filename.

The folder level. Dragging the parent of your project folder makes the site root one level too high. Drop the folder that directly contains the page.

Case. The server matches filenames exactly. Chart.js linked as chart.js works on Windows and returns a 404 once deployed.

A file manager showing the folder to drag, with index.html sitting directly inside it.
A file manager showing the folder to drag, with index.html sitting directly inside it.

Checking the page survives outside your machine

A page that reaches for files sitting next to it on your desktop breaks the moment it moves. Run this check before you deploy, not after someone reports a blank screen.

  1. Open the file in the HTML file opener. It has never seen your project folder.
  2. If fonts, charts and images all appear, the page is self-contained and will travel.
  3. If they do not, the page depends on neighbour files. Self-contained HTML covers folding them in.
  4. If images specifically are missing, the cause is usually a folder path that does not survive the move.

Fixing this first is cheaper than diagnosing it through a deployed URL, because the deployed version gives you a 404 in a console rather than a clear file list.

What the generated address actually gives you

A deployed page is served over HTTPS as text/html, which is the part that matters. The reader clicks once and the page appears. There is no download step, no viewer showing the source, and no difference between desktop and phone.

That is the same guarantee described in why links beat attachments, and it is the reason hosting is worth the trouble at all.

The generated subdomain is readable but not memorable. You can rename the site or attach a custom domain, and the previously sent link stops matching if you do. Decide the address before you circulate it.

Where the drag-and-drop loop starts to hurt

Netlify holds files. That is its job and it does it well. The consequence is that the unit of work stays the file, so every correction is a full round trip.

A NOS document with the same page rendered, with a sentence being corrected directly in the text.
A NOS document with the same page rendered, with a sentence being corrected directly in the text.

Consider what a single typo costs on each route.

Task Static host Document that renders HTML
Fix one number Edit locally, redeploy folder Click the number, type
Keep the same address Yes, if the site is claimed Yes
Add a second page Another file, another deploy Another document
Let a colleague fix a typo They need repo or account access Share the document
Build step required Only if your project has one None

Neither column is wrong. The question is how often the content changes after it is first sent.

A launch page written once and read for a year belongs on a host. A weekly report or a client summary spends most of its life being corrected.

That is where the redeploy loop turns into real hours. Static host versus document sets out the trade in full.

The paste route, for comparison

If the content is one page and it will change, you can skip folders entirely.

Paste the HTML into a NOS document. It renders exactly as written, dark theme, charts and scripts included, as a page of its own. Then Share, Share link, Create link.

The link is unlisted by default, meaning it opens for whoever holds it without being listed anywhere. Tick Public on the web only if you want search engines to index it.

The share dialog, with the link created and Public on the web left unticked.
The share dialog, with the link created and Public on the web left unticked.

The address does not move when the content does. Edit the page in March and the link you sent in January still points at the current version. Turning HTML into a link is that path on its own page.

Choosing between them

  • Deploy to Netlify when the output is a real site, when a build step produces it, or when more than one person commits to the source.
  • Deploy to Netlify when you need a custom domain on a marketing page.
  • Paste into a document when it is one page, the reader is a person rather than the public, and the content has a correction cycle.
  • Paste into a document when the page came out of an AI chat and you want the words to stay editable without regenerating the file.

The free NOS plan covers three documents, which is enough to test whether the editable route fits how your pages actually change.

Hosting HTML is not one decision. It is a decision about the first version and a separate, larger decision about every version after that.

Questions people ask

Can I host HTML on Netlify without an account?

Netlify Drop will deploy a dragged folder and hand back a live address before you sign in. To keep the site, rename it, or deploy a second version to the same address, you have to claim it with an account. Treat an unclaimed drop as a temporary preview.

Why does my Netlify site show "Page not found"?

The root of the deployed folder needs a file literally named index.html. If you dragged a folder that contains another folder, the site root is one level above your page. Drag the inner folder instead, or open the address with the filename appended.

Do I have to redeploy to fix a typo?

Yes. A static host serves whatever files it was given, so correcting one word means editing the file and pushing the folder again. If corrections are frequent, a document that renders the HTML and stays editable at a fixed address removes that loop.

Does my CSS and JavaScript work on Netlify?

It works if the files travel with the page and the paths still line up. Netlify serves the folder as given, and its file paths are case sensitive, so Style.css referenced as style.css returns a 404 even though it worked on your desktop.

Keep reading