Documentation

Deploy a site
Browse documentation

Website hosting

How Dplooy serves your files, how to prepare a folder or ZIP so every page and image works, and how React, Vite and other framework apps are hosted.

Single-page or multi-file

Single-page siteOne HTML file, with its CSS and JavaScript inside it or loaded from a CDNThe .html file
Multi-file sitePages, stylesheets, scripts, images and fonts in foldersA folder or a ZIP

A site keeps its kind. When you update it with Replace files, a single-page site takes one HTML file and a multi-file site takes a folder or ZIP. To switch kinds, publish a new site.

Prepare a folder or ZIP

A multi-file site, ready to upload
my-site/  index.html        ← the homepage, at the top  about.html  robots.txt        ← optional, at the top  css/    style.css  js/    main.js  images/    logo.png
  • The homepage must be named exactly index.html (or index.htm), in lower case, at the top — or inside one folder at the top, which Dplooy looks into.
  • Link pages and files with relative paths such as about.html or images/logo.png. Paths like C:\Users\… or file:///… only work on your own computer.
  • File names are case-sensitive online: Logo.png and logo.png are two different files.
  • Put robots.txt and sitemap.xml at the top, beside index.html — they only work there.
  • Every file in a folder or ZIP can be up to your plan's file size — 5 MB on Free, 50 MB on Plus, 100 MB on Pro — and the whole upload up to 50 MB on Free and 500 MB on Plus and Pro. See Limits.

Step by step with pictures: Turn a ZIP file into a website.

How addresses map to files

Every file keeps its folder and name, so images/logo.png in your upload is your-site.dplooy.com/images/logo.png online. Pages also answer without their extension:

/index.html
/aboutabout.html, or about/index.html if there is no about.html
/blog/blog/index.html
/css/style.csscss/style.css, exactly

Addresses are case-sensitive, like file names. Hidden files such as .env are never served.

Which files are kept

  • Folders keep web files: HTML, CSS, JavaScript, JSON, XML, CSV, text and Markdown; images (PNG, JPG, GIF, SVG, WebP, AVIF, ICO, BMP, TIFF); fonts (WOFF, WOFF2, TTF, OTF, EOT); audio and video (MP3, OGG, WAV, MP4, WebM, OGV); PDFs, web manifests, source maps and Lottie files. Anything else is left out.
  • ZIPs keep every file except program files such as .exe, .bat or .sh, which stop the upload.
  • Both leave out hidden files and clutter: .git, .env, node_modules, .DS_Store, Thumbs.db and __MACOSX.
  • SVG images that carry scripts are refused.

React, Vite and other framework projects

A framework project isn't a website until it is built. Uploading the project folder gives a blank page, so Dplooy recognises the source code and refuses it with the commands to run. Build on your computer, then upload the folder the build creates:

Next.jsIn next.config.js add: output: 'export', then npm install, then npm run buildout
Vitenpm install, then npm run builddist
Reactnpm install, then npm run builddist (Vite) or build (Create React App)
Vuenpm install, then npm run builddist
Sveltenpm install, then npm run builddist
Nuxtnpm install, then npm run generatedist
SvelteKitnpm install -D @sveltejs/adapter-static, then In svelte.config.js use adapter-static, then npm run buildbuild
Astronpm install, then npm run builddist
Angularnpm install, then ng builddist/<project>/browser
RemixRemix needs a server to run and has no static export. It cannot be hosted as static files.
  • Next.js hosts as static files only: API routes, middleware and server-side data fetching don't run.
  • Environment variables are read when you build, so set them before running the build.
  • Rather not build by hand? Connect the repository with GitHub deploys and GitHub builds it on every push.

Step by step with pictures: Deploy a Vite or React app.

Missing pages

On a multi-file site that isn't an app, an address with no page behind it shows your homepage, sent with a 404 status. You can show one of your own pages instead — including your own 404.html, which isn't used until you choose it — or design an error page. See Page Not Found.

What runs and what doesn't

  • Anything that runs in the visitor's browser works: HTML, CSS and JavaScript, with the images, fonts, audio, video and data files they load.
  • Server-side code doesn't run: PHP, Python, Node.js servers and databases need a server. Use Forms, Bookings and Data for the jobs a static site usually needs a server for.
  • Every address is served over https, with no traffic or bandwidth cap. Each site answers up to 300 requests a minute to keep bot floods out; normal sites never reach it.
  • Browsers may keep a copy of a page for up to 5 minutes, images for 30 minutes and scripts and styles for an hour. After an update, hard-refresh to see it at once.

Before you upload: checklist