> ## Documentation Index
> Fetch the complete documentation index at: https://antideploy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy by Uploading a Folder

> Pick a folder in the dashboard and deploy it: no Git repository, no CLI, nothing to install.

Upload deploy ships an application straight from your machine. You choose a
folder in the dashboard, Antideploy reads it, works out what it is, builds it,
and puts it live.

## When to use it

* **No Git repository**: the project lives only on disk, or came out of a tool
  that never made one.
* **A quick test**: you want to see it running somewhere real before wiring up
  anything permanent.
* **An AI-generated project**: Claude Code, Cursor, Bolt and the like leave you
  a folder, and a folder is exactly what this takes.

<Note>
  Uploading does not watch for changes. To update the app, upload again, or
  connect [GitHub](/docs/deploying/github) so every push redeploys, or push over the
  [API](/docs/api/deploy).
</Note>

## Upload your app

<Steps>
  <Step title="Start a new application">
    Click **New application** in the dashboard and choose the upload option.
  </Step>

  <Step title="Pick the folder">
    Your browser opens a folder picker. Select the **project root**, the
    directory holding `package.json`, `requirements.txt`, or `index.html`.

    Dependency and build directories are filtered out as it reads, so there is
    nothing to clean up first.
  </Step>

  <Step title="Review what was detected">
    Antideploy shows the runtime, framework, install and start commands, the
    port, and any database it found, each with the evidence behind it.

    Read the warnings and hazards here. This is the moment to catch a project
    that will build fine and then not do what you meant.
  </Step>

  <Step title="Deploy">
    Click deploy and watch the steps. When it finishes you get an HTTPS URL.
  </Step>
</Steps>

<Warning>
  Upload the whole project, not just the file you think matters. A folder
  containing only `index.html` uploads, deploys, and then serves a page whose
  scripts, styles and images all 404.
</Warning>

## What is excluded automatically

`node_modules` · `.git` · `.next` · `dist` · `build`

These are dependencies and build output. Antideploy installs and builds on its
side, so sending them wastes your upload budget and changes nothing.

## Limits

|               |                                                        |
| ------------- | ------------------------------------------------------ |
| Total size    | 28 MB, after exclusions                                |
| File count    | 4,000 files                                            |
| Per-file size | 5 MB; larger files are skipped                         |
| Format        | A folder. ZIP and other archives are not accepted here |

<Note>
  These are the limits for browser upload. If your project is bigger, connect
  [GitHub](/docs/deploying/github), or push a tar over the [API](/docs/api/deploy), which
  takes the project as a single archive.
</Note>

## Compared to GitHub deploy

| Feature                         | Upload | GitHub |
| ------------------------------- | ------ | ------ |
| Works without a Git repository  | ✅      | ❌      |
| Redeploys automatically on push | ❌      | ✅      |
| Deploy from the dashboard       | ✅      | ✅      |
| Roll back to a previous release | ✅      | ✅      |
| Records the commit that built   | ❌      | ✅      |

Preview environments, per-branch deploys and pull-request builds do not exist on
either path; see [what is not provisioned](/docs/infrastructure/overview).

<Card title="Environment variables" icon="key" href="/docs/configuration/environment-variables">
  Supplying the values your app expects before the first deploy.
</Card>
