4 min read

Uploading Your Site (Every Tech Stack)

Upload your site as a single .zip from the Deployments tab. BillionBiz hosts static files — the kind every modern framework produces — for any tech stack that can produce a static build.

You upload your website as a single .zip file from the Deployments tab. BillionBiz hosts static files — the kind every modern framework produces when you run its build command. It does not run server code (PHP, Node, Python, Ruby, Java); if your framework can produce a static build, it works here.

Screen: Go to your site → Deployments tab → Browse (or drag your zip onto the upload zone).

The universal rules

  • Your index.html must be at the top level of the zip. If your zip has exactly one top-level folder, BillionBiz unwraps it for you — but the reliable approach is to zip the contents of your build output, not the folder itself.
  • Include every asset your pages reference (CSS, JS, images, fonts), using relative paths (./style.css, not /style.css).
  • For framework apps, zip the contents of the build output folder — never your project source.
  • Static files only — no server-side code executes.

Limits

  • Up to 100 MB and 10,000 files per upload.

Build command & what to zip, by framework

FrameworkBuild commandZip the contents of…Notes
Vite (React/Vue/Svelte)npm run builddist/Set base: "./" in vite.config for relative assets
Create React Appnpm run buildbuild/Add "homepage": "." to package.json
Next.js (static export)next build with output: "export"out/Static export only — SSR / API routes do not run
Angularng build --configuration productiondist/<project>/browser/ (v17+)
Vue CLInpm run builddist/Set publicPath: "./" in vue.config.js
Nuxt (static)npx nuxi generate.output/public/ (Nuxt 3)Use generate, not the Node server build
Astronpm run builddist/Default static output (no SSR adapter)
SvelteKitnpm run build (with adapter-static)build/Install @sveltejs/adapter-static first
Gatsbygatsby buildpublic/Static output only
Hugo / Jekyll / Eleventyhugo · jekyll build · npx @11ty/eleventypublic/ · _site/ · _site/Pure static — ideal for this host
Plain HTML / CSS / JS(no build step)your files, with index.html at rootUse relative asset paths

Single-page apps (SPAs): if your site uses client-side routing (React Router, Vue Router, etc.), turn on SPA mode in the site's Settings tab. BillionBiz will then serve index.html for any path your app handles, so deep links and page refreshes work.

PHP / WordPress?

PHP cannot run on static hosting. Use a static-export plugin (for WordPress, e.g. Simply Static) to generate an HTML version of your site, then upload that output. The same applies to any database-backed or server-rendered app — Next.js SSR, Nuxt SSR, and SvelteKit with a Node adapter also need a server; only their static-export modes work here.

Why upload through BillionBiz (not directly to storage)

Your zip is sent to the BillionBiz backend, which validates it thoroughly before a single file is published. Your browser never writes to storage directly, and there is no public upload surface to abuse. On the server, every upload is checked for archive integrity, unsafe paths (directory-traversal and symlink attacks are rejected), file count, and size — protecting both you and the platform. Only after it passes is your site published.

Next steps