Skip to content
Free three.js hosting with no signup

Host a three.js project online for free

Drop your three.js project as an HTML file up to 10 MB or a ZIP up to 25 MB (100 files) on ship.page for a free HTTPS link in seconds, no signup. It stays online for 30 days without an account, or 90 days when you claim it with a free login.

Ready to ship

A file. A folder. A fresh start.

Your static site, one link away.

No account needed

Shipping…

Uploading publishes your file. The link is public but unlisted, not password-protected, so leave out secrets and confidential content.

Output folder from npx vite build ready to upload
dist/
Free ZIP limit (100 MB unpacked, up to 100 files)
25 MB
Online with no account (90 days if claimed)
30 days
Pro plan for 100 MB ZIPs and links that never expire
$4/mo

How to deploy a three.js project to a live link

  1. Put your models and textures inside the project

    Place every .glb, .gltf, and texture image so it ends up inside your final upload, next to index.html or in a subfolder. Load those files using relative paths in your JavaScript.

  2. Run npx vite build if you use Vite

    The official three.js installation guide sets up projects with npm and Vite. When your scene works in npx vite, run npx vite build to write the production files into the dist/ folder.

  3. Zip the build if it is over 7 MB

    Browser folder uploads go up as one encoded request capped at 10 MB, which fits roughly 7 MB of raw files. If your 3D models push dist/ past that size, compress the folder into a .zip first.

  4. Drag the folder, ZIP, or HTML file into ship.page

    Drop your dist/ folder, your .zip, or a single index.html file onto ship.page. You get a live HTTPS subdomain and a downloadable PNG QR code in seconds, with no account or credit card.

What to upload for each three.js setup

Project typeBuild stepUpload this
Vite projectRun npx vite buildThe dist/ folder (or a ZIP of dist/)
Import map from a CDN (no build)NoneYour project folder or ZIP with index.html, scripts, and assets
One self-contained HTML fileNoneThe single .html file (up to 10 MB)

Why three.js works with npx vite but fails when you double-click index.html

As the three.js manual explains, double-clicking the HTML file breaks important features for browser security reasons. Specifically, WebGL cannot load images or textures directly from your hard drive, so your scene needs a real web server to run.

With npm and Vite, as in the three.js installation guide, npx vite runs your project on a local web server during development, which is why it works there. For hosting, npx vite build writes the finished files to dist/, and uploading that Vite build output to ship.page serves them over HTTPS.

Where to put .glb models and textures when hosting three.js

Every .glb, .gltf, audio clip, and texture image must be inside the folder or ZIP you upload, sitting next to index.html or inside a subfolder. Reference them with relative paths in your loader code.

File paths on ship.page are case-sensitive. A model saved as Character.GLB will fail to load if your JavaScript asks for character.glb, even if that worked on your own computer.

  • Check that index.html sits at the top of your upload (a ZIP with one top folder is unwrapped automatically).
  • Use relative paths for every model and texture.
  • Match uppercase and lowercase letters in every file name and folder path.

Tip: ship.page serves files as they are with no Content-Encoding header, so turn off pre-compressed .br or .gz output in your build tool unless you decompress in JavaScript.

How large can my 3D models and textures be?

Every HTML, JavaScript, texture, and model file counts toward your upload total. On the free tier, you can host a ZIP file up to 25 MB compressed (100 MB unpacked) containing up to 100 files, and a single HTML file uploaded on its own can be up to 10 MB.

If your scene has heavy photogrammetry, high-resolution environment maps, or more than 100 separate assets, Pro is $4 a month and raises the limit to a 100 MB ZIP (400 MB unpacked) and 10,000 files per upload. Pro also lets you update your scene in place while keeping the same link, add a password, and keep pages online forever.

When to use another host

ship.page only hosts static files like HTML, CSS, JavaScript, images, audio, video, JSON, and WebAssembly. If you are building a multiplayer 3D world that needs a Node.js or Python server or a database, use a backend host for the server side.

Every page on ship.page is sent with a noindex header so search engines stay out, and no plan supports custom domains. When you just want to share a working WebGL demo, client preview, or Unity WebGL build with an unlisted link, drag it in and share the URL.

Questions

How do I deploy a three.js project built with Vite?

Run npx vite build in your project terminal to create the dist/ folder. Drag the dist/ folder (or a ZIP of it if your files exceed roughly 7 MB) into ship.page to get a live HTTPS link in seconds.

Why doesn't my three.js scene work when I open index.html directly?

The three.js manual notes that opening an HTML file directly from your hard drive breaks important features for security reasons, and WebGL cannot use local images without a web server. Uploading your files to ship.page serves them over HTTPS so textures and models load properly.

Where do I put .glb and .gltf files when hosting a three.js website?

Put your .glb, .gltf, and texture files inside the folder or ZIP you upload, either right next to index.html or in a subfolder. Load them with relative paths and make sure the file name casing in your code matches the actual files.

How big can my three.js project be on the free plan?

You can upload a single HTML file up to 10 MB, or a ZIP up to 25 MB (up to 100 MB unpacked) with up to 100 files. The Pro plan is $4 a month and takes ZIPs up to 100 MB (400 MB unpacked) with up to 10,000 files.

How long does a free three.js link stay online?

An anonymous upload stays live for 30 days. If you sign in with Google or an email link to claim it, the free page stays online for 90 days, and Pro pages at $4 a month never expire.

Can I update my three.js scene without changing the URL?

Free pages cannot be updated in place, so uploading a new build gives you a new link. On the $4 a month Pro plan, you can re-upload your build and keep the exact same URL.

Keep reading

Put your three.js scene online now

Drag your dist folder, ZIP, or HTML file onto ship.page and get a live link in seconds.