Skip to content

Which folder should you upload?

Build the site on your computer or ask your AI to do it. Drop serves the generated HTML, CSS, JavaScript and assets. It does not install packages, build your project or run a server. These recipes were checked on 31 October 2026 with Node.js 26.12.1.

Astro

Checked with Astro 7.4.4.

Use static output. Merge this setting into your existing configuration and build from the project directory.

astro.config.mjs

import { defineConfig } from 'astro/config'; export default defineConfig({ output: 'static' });

Build and check Astro

npm run build node -e "require('node:fs').accessSync('dist/index.html')"

Upload dist, with dist/index.html at its root.

Every route must be generated at build time. Request-time rendering, server islands, actions and sessions need a server and cannot run on Drop. A dist/server folder is not a static export.

Astro deployment documentation

Vite

Checked with Vite 8.3.5.

Build the static client from the project directory. The build script in package.json should run vite build. Use the normal root base path for a site hosted at its own address.

Build and check Vite

npm run build node -e "require('node:fs').accessSync('dist/index.html')"

Upload dist, with dist/index.html and its assets directory.

The source index.html can refer to uncompiled files. Upload the built folder even when the source has index.html. A Vite SSR server build is not suitable. History-based client routes need generated HTML pages; Drop does not configure an SPA fallback for you.

Vite static deployment documentation

Next.js

Checked with Next.js 16.4.3 and React 19.3.1, using the App Router.

Enable static export in your existing Next.js configuration, then build. trailingSlash emits a directory with index.html for each route. Disable the built-in server image optimizer if you use next/image, or configure a compatible custom image loader.

Merge into next.config.mjs

export default { output: 'export', trailingSlash: true, images: { unoptimized: true }, };

Build and check Next.js

npm run build node -e "require('node:fs').accessSync('out/index.html')"

Upload out, with out/index.html and the complete _next directory. Do not upload .next.

Only features supported by static export work here. Server Actions, request-time cookies or headers, ISR and other server-dependent features need changes or a server host. Dynamic routes must provide their static parameters. The old next export command is not used.

Next.js static export documentation

Before uploading

  • Open the output folder. index.html must be directly inside it, together with the generated assets. If your project changes the output directory, use that directory instead.
  • Upload the output folder or a ZIP of its contents. Keep the asset paths unchanged. Do not upload the whole repository, node_modules, .env files, package.json or a server build.
  • Preview the production build locally and check its links, images and any forms. A successful build alone does not prove that every feature works without a server.
  • Each directly visited URL needs a generated HTML page. Drop does not currently add a catch-all fallback for client-side routes. For example, /about can use about.html or about/index.html.
  • The uploaded files must still fit Drop's file and size limits. API and MCP publishing use the same static-site validation.