Host a Single HTML File: 10 Tools Compared (2026)

Ilya SpiridonovIlya Spiridonov
21 min read

To host a single HTML file, drop it on a drag-and-drop host and copy the link. Netlify Drop, tiiny.host, host-html.com, HTML Hoster and EdgeOne Pages all accept a single .html file.

What separates them is how long the free link lasts and who can open it. As of October 2026, host-html.com's free pages last 3 days, HTML Hoster deletes guest uploads after 90 days, and tiiny.host's free plan holds one project up to 3 MB. Check access settings before sending a link: an upload alone doesn't establish who can read it.

For a free public site with no scheduled expiry, use GitHub Pages or Cloudflare Pages. For a file meant for one client or investor, where you need to control access and see whether they opened it, go to private sharing.

Sending it to a client or investor? Share the HTML file as a tracked link and get an email when they open it.

How to host a single HTML file in three steps

  1. Check that the file stands alone. Embed its styles, scripts, images and fonts, or make sure any external resources are publicly accessible. If it depends on neighbouring files, upload the folder or a ZIP with index.html at the root.
  2. Upload it. Drop it on a drag-and-drop host, or add it to a public GitHub repository as index.html and turn on GitHub Pages.
  3. Open the link in a private window before you send it. Check images, styling and buttons, then confirm the access settings. Missing assets usually mean a broken path or a resource the recipient can't reach.

To test it on your own computer first, open a terminal in the folder, run python3 -m http.server --bind 127.0.0.1 8000 and visit http://localhost:8000. Binding to the loopback address keeps this test server on your computer.

Hosting vs. sharing a private HTML file

In an August 2025 Vercel forum thread, a user reported that a v0 preview could open for anyone with its URL. They asked:

“Can I make the link private or something ?”

Today's v0 chat settings can limit access to invited people, a team or anyone with the link. Team defaults are configurable, and a separately deployed website has its own protection settings. Check the actual link your recipient will receive.

If the page is public, such as a portfolio, a class project or a demo, start with the hosts below and check their use policies. The quick picks are in What to pick. For a private file, choose whether access should require a shared password, a team login or a verified email inbox.

For the delivery workflow, see how to send it to a client so it opens as a page, not code. Here's how the ten options compare.

The 10 tools, at a glance

ToolHow you uploadAccount neededHow long a free link lastsFree size limitPaid from
GitHub PagesRepository with index.htmlYesNo scheduled expiry1 GB published site; upload limits varyFree for public hosting
VercelGit or CLIYesWhile Hobby project remains within terms and limitsDeployment-method limits apply$20/mo Pro
Netlify DropHTML file, folder or ZIPTo claim and manage itUnclaimed drop is temporary; claim for ongoing Free hostingCredit-based usage; see deploy limits$9/mo Personal
Cloudflare PagesFolder or ZIP in dashboard; Git or CLIYesNo scheduled expiry25 MiB/file; 1,000 files by dashboard uploadFree static hosting; Functions priced separately
tiiny.hostHTML file or ZIPYes, to keep and manage itLog in at least every 3 months3 MB; 1 project$9/mo Tiny; $5/mo billed yearly
host-html.comDrop HTML or paste codeYes3 days1 MB/page$9/mo Pro
EdgeOne PagesHTML file, folder or ZIPTo retain itGuest: 1 hour; registered: retained25 MB/fileFree; Business by quote
static.appZIP uploadYes7-day trial50 MB trial storage$6/mo Starter; $5/mo billed yearly
HTML HosterHTML file or folderOptionalGuest: 90 days; signed in: retainedNot published on reviewed pageNo paid plan listed
HummingDeckWeb app; single HTML on every plan, preview ZIP from StarterSender only; recipients don't need oneUntil revoked or document removed; expiry settings from Starter100 MB/upload; Free holds 5 documents and 5 active links$10/mo Starter

Controlling and tracking it

ToolPasswordEmail gateWhat you see about visitors
GitHub PagesUse Enterprise Cloud access for private sitesEnterprise organization accessAdd your own analytics
VercelPro add-on: $20/project/moVercel Authentication on every planWeb Analytics; aggregate traffic
Netlify DropTemporary password before claim; ongoing password from ProTeam login under project visibility settingsTraffic analytics; check plan
Cloudflare PagesConfigure Cloudflare Access policiesVia Access; protect the production address explicitlyWeb Analytics; aggregate traffic
tiiny.hostSoloEmail capture from ProBuilt-in analytics from Tiny
host-html.comProNot listedPage views on Free; detailed analytics on Pro
EdgeOne PagesNot established in reviewed upload docsNot established in reviewed upload docsPlatform metrics
static.appWebsite or page password in settingsForms collect submissionsWebsite analytics on paid plans
HTML HosterNot listedNot listedNot listed on reviewed page
HummingDeckInbox verification on Pro and BusinessAsk Email, Verified Email and Restricted on Pro and BusinessVisits per link and an email alert on opens on every plan; page time, return visits and supported clicks from Starter

Prices and limits checked on October 30, 2026 against vendor pricing pages and documentation. Sources are listed at the end. Dollar prices are USD; monthly billing applies unless stated. “Not listed” means the reviewed source doesn't establish that feature.

A visit count tells you a page was opened. A link per recipient associates activity with the person you sent it to; an inbox check adds evidence that the visitor controls that email address. Neither establishes who was physically at the keyboard.

GitHub Pages

GitHub Pages fits public portfolios, documentation and demos. The published site limit is 1 GB, separate from the limits on uploading individual files to a repository.

How: Add index.html at the root of a public repository. Open Settings → Pages, choose Deploy from a branch under Build and deployment → Source, select the branch and root folder, then save. GitHub documents the publishing-source controls.

Read the use policy before putting a business workflow there. GitHub's Pages policy says the service isn't intended for running an online business, an e-commerce site or a site primarily facilitating commercial transactions or providing commercial SaaS. That doesn't prohibit every business-related portfolio or documentation page.

A private source repository doesn't make the published page private. Private visitor access requires an organization on GitHub Enterprise Cloud. For a public page, add your own analytics if you need traffic measurements.

Vercel

Vercel fits a React or Next.js project that needs a build and deployment workflow. For an already finished HTML file, its Git or CLI setup is more work than a browser upload.

The Hobby terms say: “You shall only use the Services under a Hobby plan for your personal or non-commercial use.” Pro starts at $20/month for commercial projects.

Access protection has changed since older comparisons were written. Vercel Authentication protects production deployments on every plan; a shared password is a Pro add-on costing $20 per project per month. Web Analytics measures traffic rather than associating each visit with a client you emailed.

Netlify Drop

Netlify Drop accepts a single HTML file, a folder or a ZIP. Its current quickstart describes a temporary password on unsigned uploads until you claim the project, so don't assume a fresh Drop link opens publicly.

How: Open Netlify Drop, drop the file, then use Claim your project to attach it to an account. Check Project visibility before sharing the resulting address. The browser guide doesn't state a guaranteed lifetime for an unclaimed upload, so claim it if the link needs to last.

Free includes 300 credits a month; Personal is $9/month and Pro starts at $20/month with unlimited members. Credit usage replaces the old bandwidth-and-build-minute comparison. Ongoing shared-password protection starts at Pro.

Cloudflare Pages

Cloudflare Pages suits a public static site that you want to keep online without a trial deadline. Its Direct Upload guide supports a folder or ZIP in the dashboard, with up to 1,000 files at 25 MiB each. Put your single HTML file in a folder as index.html first.

How: In Workers & Pages, choose Create application → Get started → Drag and drop your files. Name the project, upload the folder or ZIP, and choose Deploy site.

You can configure Cloudflare Access for identity-based access. The Pages Enable access policy setting protects preview deployments, so it doesn't automatically secure the production pages.dev or custom-domain address. Test every address that can serve the file before using this setup for private delivery.

tiiny.host

tiiny.host offers a browser upload for finished HTML and ZIP sites. Its Free plan holds one project up to 3 MB, with branding and traffic limits.

How: Choose Upload file, add the HTML file or ZIP and choose a link name, then Publish. The HTML upload guide covers standalone files and sites with separate assets.

The free plan isn't a seven-day trial. Its retention rule requires you to log in at least once every three months; some content is handled separately as a temporary preview.

PlanMonthlyPer month, billed yearly
Tiny$9$5
Solo$18$13
Pro$38$31
Pro Max$89$74

The USD pricing guide lists the billing options. Tiny adds built-in analytics; Solo adds passwords and custom domains; Pro adds email capture. Use the visitor counts for traffic measurement; for a particular client's activity, use a recipient-specific link or an appropriate email gate.

host-html.com

host-html.com gives a small page a short-lived free URL: unlimited free pages, each up to 1 MB and live for 3 days. That's useful for a quick prototype review with a clear deadline.

How: Drop the HTML file or paste the code, sign in, and choose Publish. Copy the resulting URL.

Pro is $9/month or $90/year, with permanent hosting, passwords and detailed analytics. Free includes per-page view counts. If the link needs to work next month, choose the paid option or a host without that three-day expiry.

EdgeOne Pages

EdgeOne Pages, now branded EdgeOne Makers, accepts a single HTML file, folder or ZIP. Individual files can be up to 25 MB; a folder or ZIP needs index.html at its root.

How: Open Makers Drop, choose Select File or Select Folder, optionally name the address, then deploy. Guest links last one hour; register to retain the deployment.

The pricing page lists a free plan and a quoted Business option. It's an option for a public file that exceeds tiiny.host's free cap; check registered-project limits before choosing it for a larger site.

static.app

static.app provides a file-manager workflow for a small static site. Its free trial lasts seven days and includes 50 MB storage; Starter then costs $6/month, or $5/month billed yearly. Paid plans add custom domains and website analytics.

How: Put index.html and its assets in a ZIP, drag it onto the HTML upload page, choose the subdomain and complete signup. Use the file manager to update the site.

The help page documents passwords for an entire site or an individual page. Choose it when you want to maintain a site through a browser file manager and are comfortable paying after the trial.

HTML Hoster

HTML Hoster accepts a single HTML file or a complete folder while preserving nested asset paths. Guest uploads are deleted after 90 days; signing in retains pages and enables custom routes and editing.

How: Choose Choose files for a standalone page or Choose folder for a site. Upload it and copy the primary index.html link. Sign in if you need the page to stay available beyond the guest period.

The reviewed page doesn't publish a size cap or paid pricing. Check those before relying on it for a large file, rather than treating an unstated limit as unlimited hosting.

Developer CLI and Git hosts

Surge deploys a folder from the terminal, while Render Static Sites deploy from a Git repository. Both are worth considering if you already use those workflows; for a one-file browser upload, start with the ten tools above.

HummingDeck

HummingDeck is our product. It fits finished HTML proposals, decks and demos sent to specific clients or investors, including HTML pages made with ChatGPT and exported Claude designs.

Upload the file, create a Personal Link for each recipient, and send that link. Free includes 5 documents, 5 active share links across the workspace, basic visit tracking, an email when someone opens a link, and bot signals. Browser uploads can be up to 100 MB.

Starter adds time on each page, return visits, supported clicks, link expiry and HTML ZIP previews from $10/month. Analytics history runs 30 days on Starter, 90 on Pro and unlimited on Business. See plans and pricing.

On Pro and Business, choose the access mode that fits the file:

  • Ask Email records the address a visitor enters.
  • Verified Email requires the visitor to confirm access to an inbox with a one-time code or emailed access link.
  • Restricted requires that confirmation through one of the email addresses you list.

Verification establishes inbox access, rather than legal identity. Personal Links associate activity with the intended recipient; if another person opens an Open link, that association alone doesn't prove who viewed it.

Pro and Business also show additional viewer records in a viewer network. A new viewer can mean another device or another stakeholder, so it is a signal to investigate rather than a record of a forward. Bot filtering uses several signals to flag known and likely bots, without guaranteeing that every remaining visit is a person.

Exported HTML opens in a sandboxed viewer with tracking added. If the file has meaningful pages, such as slides, HummingDeck can report time on each page from Starter. Build JSX or React source before uploading, and test the recipient link because remote resources can fail.

Share pages carry a noindex directive requesting that search engines leave them out of results. An Open link still works for anyone who has it. For several documents, use a Deal Room for sales or a Data Room for fundraising; Business adds a custom sharing domain.

The walkthrough shows the upload, a Personal Link, the recipient view and visit tracking:

How to Share an HTML File as a Link and Track Visits

Watch on YouTube

Plays from YouTube when you press play.

Chapters

Read the transcript

00:00 Share interactive HTML files

Here's how to share interactive HTML files with clients and track visits using HummingDeck. Upload a file you've already created, send a link, and let your client explore it in their browser.

00:14 Upload your finished HTML file

For this example, we're using a finished, self-contained HTML pricing calculator. It could be made with AI or built by a developer. In your Library, choose Add document, upload it, and check that the controls work. Other formats work too: PDF, PowerPoint, Word and Excel.

00:37 Create a client link

Create a Personal Link for your buyer and copy it into your email. Give them something useful to try: “Try both plans with your team size before our call.”

00:50 Explore the HTML file in a browser

The link opens the calculator in their browser. They don't need a HummingDeck account. Switch from Standard to Plus, and the estimate updates. Your buyer can explore the options themselves.

01:07 Review visits and viewing time

Back in HummingDeck, open Links to check visits recorded against that link. On Starter and above, Analytics shows the visit history and recorded viewing time. You can use that context to follow up: “Would it help to walk through the plans together?”

01:26 Add HTML files to a Room

To share the rest of your sales material, add this HTML file to a HummingDeck Room alongside your presentation and proposal. Send one link to the whole set. Your buyer can open the calculator, then return to the Room to review the proposal. Share your interactive HTML files with HummingDeck. The link is below.

Who actually viewed it

For a public portfolio, a working URL can be enough. For a proposal you sent to one client, you often need to know whether they opened it, which pages they read and whether they returned.

A Personal Link gives those visits a recipient context. An inbox gate adds a check before access, and an additional viewer record tells you someone new could be looking. HummingDeck records this activity for each link you send, with viewing time and page detail from Starter.

Hosting an AI-generated artifact

Check the export before choosing the host. A ready .html file can contain compiled JavaScript, including React, and still open as a standalone page. A .jsx source file or a project with package.json needs a build step first.

Most static hosts, HummingDeck included, expect ready HTML rather than JSX source. Export or build the artifact, then host the file or the built folder. Our Claude artifact export guide covers what each export contains; HummingDeck previews HTML ZIP bundles from Starter.

Claude's general artifact-sharing route requires a Claude account for newly shared artifacts, with owner-controlled external sharing on Team and Enterprise. Legacy chat artifacts created before September 16, 2026 and published on personal Free, Pro or Max plans support signed-out access, as do some Code or custom-artifact routes. For those distinctions, see sharing a Claude artifact, then test the chosen native link signed out.

For v0, check both chat sharing and deployment protection. A private conversation and a deployed website are separate access decisions. Exporting a finished HTML file gives you a separate delivery copy to host and control.

What to pick

If you needStart with
A free public portfolio and already use GitHubGitHub Pages
A production React or Next.js app for workVercel Pro
A quick browser upload you can claim and maintainNetlify Drop
A free static site with folder or ZIP uploadCloudflare Pages
A small HTML file and a simple upload workflowtiiny.host
A disposable page for a three-day reviewhost-html.com Free
A public file larger than tiiny.host's 3 MB capEdgeOne Pages; register to retain it
A browser file manager for ongoing editsstatic.app after its trial
A guest upload for up to 90 daysHTML Hoster
Visit alerts for HTML sent to a clientHummingDeck; Starter adds viewing time
Verified inbox access for a finished artifactHummingDeck Verified Email or Restricted on Pro and Business
A shared password for a pagetiiny.host Solo, host-html.com Pro or static.app

After you host the file

Share your HTML as a tracked link with HummingDeck. You'll get an email when someone opens it, and from Starter you'll see how long they spent and whether they came back.

FAQ

Can I host a single HTML file for free?

Yes. Upload it to Netlify Drop, tiiny.host or HTML Hoster and copy the link, checking whether you need to claim the upload or sign in to keep it. For a public site with no scheduled expiry, add index.html to a public GitHub repository and turn on GitHub Pages. Check access settings too: Netlify temporarily password-protects unclaimed drops, while a public hosting link works for anyone who has it.

It depends on the host. As of October 2026, host-html.com's free pages last 3 days, HTML Hoster guest uploads last 90 days, and static.app offers a 7-day trial. GitHub Pages and Cloudflare Pages have no scheduled expiry, while HummingDeck's free links stay active until you revoke them or remove the document. tiiny.host requires a login at least every three months to keep a free account active.

Can I host an HTML file on Google Drive?

Google Drive stores HTML files but doesn't serve them as web pages. Google ended Drive web hosting on August 31, 2016, so use a static host when you need a link that renders the page.

Google's original deprecation notice records the shutdown date.

Does Google offer free HTML hosting?

Yes. Firebase Hosting's Spark plan includes 10 GB storage and 360 MB per day of data transfer for static files deployed with the Firebase CLI. Google Sites uses its own page editor and supports embedded HTML, CSS and JavaScript through Embed code, rather than directly hosting your uploaded .html file.

See Firebase pricing, the Hosting quickstart and Google Sites embed instructions.

How can I host an HTML file locally?

Open a terminal in the folder holding the file, run python3 -m http.server --bind 127.0.0.1 8000, and visit http://localhost:8000. This binds the test server to your own computer. Upload the file to a host when you need a link other people can open.

Can I password-protect a single HTML file?

Yes. tiiny.host includes passwords from Solo, host-html.com from its $9 Pro plan, and Netlify from Pro for ongoing protection. HummingDeck offers inbox verification on Pro and Business: a Restricted link opens only through an address you list, confirmed with a one-time code or an emailed access link.

Cloudflare Pages can sit behind Access policies, but its preview-protection switch alone doesn't protect the production address. Vercel offers a shared password as a Pro add-on; see each tool's section for the current conditions.

What's the best tiiny.host alternative?

Choose for the limit you're hitting. EdgeOne Pages accepts files up to 25 MB, with registration needed to retain a guest deployment. For a client's engagement, HummingDeck records visits per link and adds time on the page from Starter. Export or build a Claude or v0 project to ready HTML before sending it to a static host.

How do I share an AI-generated HTML page privately with a client?

Export or build it to HTML first, then choose access controls for the delivery link. HummingDeck's Restricted and Verified Email modes on Pro and Business require inbox confirmation without a recipient account. Claude's general artifact-sharing route requires a Claude account for new shares, while legacy and some Code or custom-artifact routes differ; v0 sharing and deployed-site access also have separate settings.

See exporting Claude artifacts, sharing a Claude design and sending HTML to a client.

Does GitHub Pages allow commercial use?

Only for pages that aren't mainly commercial. GitHub says Pages is “not intended for or allowed to be used as a free web-hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS).” Check the policy for your site; a business-related portfolio isn't the same as running a storefront or SaaS service on Pages.

Read the GitHub Pages limits and use policy.

Can I track who viewed a static HTML file?

Yes, with a host that records visits per link or with analytics you add yourself. HummingDeck records visits for each link on every plan and, from Starter, time on the page, return visits and supported clicks. A Personal Link associates activity with the recipient you sent it to; Verified Email or Restricted access adds inbox confirmation on Pro and Business. These signals establish link activity and inbox access, rather than proving who was at the keyboard.

What about React or JSX from Claude artifacts?

Export or build the source into ready HTML first. A .jsx file needs compilation before a browser can run it, and renaming it to .html doesn't make it a page. Host the exported HTML file, or upload the built folder as a ZIP to a host that serves folders. HummingDeck previews HTML ZIP bundles from Starter.

Sources

Checked October 30, 2026. These are the vendors' own pricing pages and instructions; account controls are documented workflows, rather than authenticated UI tests.


Related: