Best free hosting for an HTML portfolio in 2026
ship.page is the fastest free way to put an HTML portfolio online today with no signup or credit card, while GitHub Pages and Cloudflare Pages are better for a long-term portfolio on your own custom domain. Drag in an .html file up to 10 MB, a folder, or a .zip up to 25 MB (100 MB unpacked, 100 files per upload) and get a live HTTPS link in seconds, free forever with unlimited uploads.
A file. A folder. A fresh start.
Your static site, one link away.
Uploading publishes your file. The link is public but unlisted, not password-protected, so leave out secrets and confidential content.
- Free ZIP upload limit on ship.page (100 MB unpacked)
- 25 MB
- Files per free upload on ship.page, 10 MB per single HTML
- 100 files
- Site storage on GitHub Pages and Neocities free plans
- 1 GB
- Max files per site on Cloudflare Pages free plan
- 20,000 files
How to publish your HTML portfolio in under a minute
Check your homepage file name
Put your main portfolio page at index.html inside your project folder alongside your CSS, JavaScript, and image files. Keep file paths matching exact uppercase and lowercase letters because paths on ship.page are case-sensitive.
Zip folders larger than 7 MB
You can drag a folder directly into the browser if the encoded request stays under 10 MB (roughly 7 MB of files). If your portfolio has high-resolution work samples, compress the folder into a .zip file up to 25 MB (100 MB unpacked) with up to 100 files on the free plan.
Drop the folder or ZIP onto ship.page
Open ship.page and drag in your .html file, folder, or .zip, or paste your HTML directly. If your ZIP has a single top folder, ship.page unwraps it automatically so index.html loads at the root.
Share the link or claim the page
Your portfolio goes live in seconds on its own subdomain over HTTPS, and the success screen gives you a downloadable PNG QR code for printed resumes. Publish without an account, or claim the page with a free account (no card) to manage it from a dashboard.
Your options
ship.page
- Best for
- Getting a live portfolio link in seconds to send to a recruiter today without creating an account.
- Free
- Free forever with no signup, 10 MB single HTML files, 25 MB ZIPs (100 MB unpacked), 100 files per upload, and no bandwidth limits.
- Catch
- No custom domains on any plan; free pages cannot be updated in place, and Pro ($4/mo) gives up to 5 yourname.ship.place subdomains.
GitHub Pages
- Best for
- Developers who already keep their portfolio code in Git and want a free custom domain.
- Free
- Free for public repositories on GitHub Free with sites up to 1 GB at owner.github.io, custom domains, and a 100 GB monthly soft bandwidth limit.
- Catch
- Requires a GitHub account and a public repository, allows 10 builds an hour, and is not allowed for commercial, e-commerce or SaaS businesses.
Cloudflare Pages
- Best for
- Image-heavy portfolios that need a free custom domain and zero bandwidth limits.
- Free
- Up to 20,000 files at 25 MiB each, 500 builds a month, 100 custom domains per project, a name.pages.dev address, and no bandwidth quota.
- Catch
- Requires a Cloudflare account, dashboard drag-and-drop caps at 1,000 files, and Cloudflare docs now suggest starting new projects on Workers.
Netlify
- Best for
- Testing portfolio deploy previews before paying for a monthly plan.
- Free
- Gives a name.netlify.app address, free deploy previews, and 300 monthly credits.
- Catch
- The 300-credit limit is a hard cap (15 credits per production deploy, 20 per GB of bandwidth), and when credits run out every project is paused.
Neocities
- Best for
- Hand-coded personal sites that want an indie web community and a browser editor.
- Free
- 1 GB storage, 200 GB monthly bandwidth, a free name.neocities.org HTTPS address, and no ads.
- Catch
- Requires a free account, restricts uploaded file types on free plans, and custom domains require the $5 a month Supporter plan.
Free HTML portfolio hosting comparison in 2026
| Host | Account | Custom domain | Catch |
|---|---|---|---|
| ship.page | No account needed | No (yourname.ship.place on $4/mo Pro) | 100 files and 25 MB ZIP on free; no custom domains |
| GitHub Pages | GitHub account + public repo | Yes, free | 1 GB site limit; no commercial, e-commerce or SaaS sites |
| Cloudflare Pages | Cloudflare account | Yes, up to 100 free | 1,000-file drag-and-drop limit; docs point new projects to Workers |
| Netlify | Netlify account | Not stated | Hard 300-credit monthly limit pauses all sites when spent |
| Neocities | Neocities account | On $5/mo Supporter plan | Free plan restricts uploaded file types |
When should I pick ship.page vs GitHub Pages or Cloudflare Pages?
Pick ship.page when a job application closes tonight and you want a working link right now without setting up Git or signing up for a cloud account. You can drop in a free portfolio website or a single-page free resume website, grab the HTTPS URL and QR code, and send it out in seconds.
If you want your portfolio on yourname.com for the next five years, use GitHub Pages or Cloudflare Pages instead. ship.page does not offer custom domains on any plan. Both GitHub Pages and Cloudflare Pages give you free custom domain support once you create an account, and Cloudflare Pages Direct Upload lets you drag and drop up to 1,000 files of 25 MiB each from its dashboard.
Tip: If you do not own a domain but still want a clean address on ship.page, the $4 a month Pro plan includes up to 5 custom subdomains like yourname.ship.place.
What if I need to update my portfolio later?
On the ship.page free plan, a page cannot be updated in place; uploading a revised folder gives you a new link. You can claim your upload with a free account (signing in with Google or an email link, with no credit card) to see and manage your links in a dashboard.
Upgrading to ship.page Pro for $4 a month lets you re-upload or edit your portfolio and keep the exact same link. Pro pages don't expire while you're on Pro, remove the closable Hosted on ship.page badge, allow password protection for NDA work, and raise upload limits to 100 MB ZIPs (400 MB unpacked) and 10,000 files.
Which portfolio files and routes work on static hosts?
An HTML portfolio made of static files works out of the box on ship.page, including HTML, CSS, JavaScript, images, fonts, audio, video, WebAssembly, and JSON. That covers a design portfolio website with custom web fonts or a photography portfolio website with image galleries. Server code like PHP, Node.js, Python, databases, and WordPress will not run, so contact forms need a third-party form service.
- A lone PDF, image, or video file is not accepted by itself; put your resume PDF inside a folder or ZIP with an index.html.
- A page saved as about.html opens at /about.html; the clean /about path works when the file is saved at about/index.html.
- There is no single-page-app fallback and no custom 404 page, so React or Vue portfolios with client-side routing should use hash routes like #/projects.
- Every ship.page upload sends a noindex header and is never listed publicly, so only people you give the link to will find it.
Why you should watch bandwidth and credit limits on free hosts
A portfolio link shared on social media or a job board can draw sudden traffic, especially if it includes project videos or large mockups. Netlify's free plan gives you 300 credits a month with a hard limit and no top-ups: each production deploy costs 15 credits, each GB of bandwidth costs 20 credits, and when the credits run out every project is paused and shows Site not available.
If you want predictable free traffic, ship.page and Cloudflare Pages do not meter bandwidth on their free plans. Neocities includes 200 GB of monthly bandwidth on its free 1 GB plan, and GitHub Pages has a 100 GB monthly soft bandwidth limit.
Questions
What is the easiest way to host an HTML portfolio for free without an account?
Drag your HTML file, folder, or ZIP onto ship.page in your browser. It is free forever with no signup and no credit card, and your portfolio goes live on an HTTPS link in seconds.
Can I use my own custom domain for free on my HTML portfolio?
Not on ship.page, which does not support custom domains on any plan (Pro at $4 a month offers up to 5 yourname.ship.place subdomains). For a free custom domain, use GitHub Pages or Cloudflare Pages, both of which require a free account.
How big can my portfolio be on the ship.page free plan?
You can upload a single HTML file up to 10 MB, or a ZIP file up to 25 MB that unpacks to up to 100 MB across at most 100 files. Uncompressed folder uploads must fit in a single 10 MB request (roughly 7 MB of files), so zip larger folders first.
Will search engines index my portfolio on ship.page?
No. Every page uploaded to ship.page is served with a noindex header and is not listed anywhere public, so search engines leave it out while anyone with the link can open it.
Can I password-protect a portfolio that has client NDA work?
Yes, on the ship.page Pro plan for $4 a month. Pro adds password protection, lets you update your portfolio without changing the URL, removes the Hosted on ship.page badge, and ensures your pages don't expire while you're on Pro.
Why did my Netlify portfolio stop loading and show Site not available?
Netlify's free plan has a hard cap of 300 credits per month, charging 15 credits per production deploy and 20 credits per GB of bandwidth. Once all 300 credits are used, Netlify pauses every project on the account until the next month or until you upgrade to Personal ($9 a month) or Pro ($20 a month).
Keep reading
- Free portfolio website hosting
- Host a design portfolio website
- Host a photography portfolio website
- Free resume website hosting
Put your HTML portfolio online now
Drop your portfolio folder, ZIP, or index.html into the browser and get a live HTTPS link and QR code in seconds with no signup.