Framework

Static HTML

Plain HTML, CSS, and JavaScript served by Nginx.

Container port80

Requirements

index.html in the repo root

Nginx serves index.html as the entry point. All other assets (CSS, JS, images) can be in subdirectories.

No build step

Files are copied directly into the Nginx image. No npm install or compilation happens.

Demo app

A minimal app that is ready to push and deploy. Copy the files below into a new repository, commit, and deploy — it should go live without any changes.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>My App</title>
  <style>
    body {
      font-family: system-ui, sans-serif;
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      margin: 0;
      background: #0f172a;
      color: #f1f5f9;
    }
    .card {
      text-align: center;
      padding: 2rem 3rem;
      border: 1px solid #1e293b;
      border-radius: 12px;
    }
    h1 { color: #3b82f6; margin: 0 0 0.5rem; }
    p  { color: #94a3b8; margin: 0; }
  </style>
</head>
<body>
  <div class="card">
    <h1>Hello from DropDeploy!</h1>
    <p>Your static site is live.</p>
  </div>
</body>
</html>
That is the entire project — just push this one file and deploy.

Build & start commands

DropDeploy runs these steps inside the container when you click Deploy.

# No build step — files are served directly by Nginx

Common issues

SPA client-side routing

The default config does not redirect unknown paths to index.html. Single-page apps that use client-side routing need a custom nginx config. Use the React or Vue framework type instead.

All files are public

Everything in your repo is copied into the image. Never commit secrets or private files.