# Deploy from an upload

Not everything lives in a repository. The Upload tile deploys a project from an archive of your local folder - same detection, same build, same live URL, no Git required.

## Three ways to upload

- **The Create page.** Pick the Upload tile, drop a `.zip` of the project, and confirm the detected settings like any other app.
- **Claude.** Open Claude in the project directory and ask it to deploy - the [MCP server](/deploy-with-ai/mcp-server#from-a-local-project) packages the folder, uploads it, and deploys.
- **VS Code.** Run `/deploy` in Copilot Chat with the [Light Cloud extension](/deploy-with-ai/vscode-copilot) installed.

When you deploy from Claude or VS Code, variables in your local `.env` file are read and [set on the app](/platform/environment-variables#from-a-env-file-automatically) for you.

## What's different from a repository app

An uploaded app is a normal application - environments, logs, metrics, domains, variables all work - with one difference: there is no repository, so nothing deploys by itself.

- **No webhooks.** [Git automation](/create/git-automation) doesn't apply; there is no branch to watch.
- **Ship by uploading again.** Each new upload builds and deploys like a push would. From Claude or VS Code that is one command, because the [project config file](/deploy-with-ai/mcp-server#follow-up-commands) remembers which app the folder belongs to.
- **No preview-per-branch.** You can still create extra [environments](/platform/preview-environments) and deploy uploads to them - it's just not automatic.

> [!TIP]
> Uploads are the fastest way to put a prototype online, but once a project is real, connect a repository - you get deploy-on-push, previews per branch, and a commit trail on every deploy for free. See [Deployments](/platform/deployments).

## What gets uploaded

The project folder, minus what clearly isn't source: dependency directories like `node_modules` are ignored and restored by the [install command](/create/build-settings#install-command) during the build. Secrets should travel as [environment variables](/platform/environment-variables), not files in the archive.

## Related

- [Deploy with AI](/deploy-with-ai/overview): Claude and Copilot deploys, end to end.
- [Build settings](/create/build-settings): The settings detection fills for an uploaded project.
- [Deployments](/platform/deployments): What connecting a repository adds on top.
