# How to deploy an app built with Claude Code.

URL: https://antideploy.com/blog/how-to-deploy-an-app-built-with-claude-code

Give Claude Code one sentence, click Approve once, and it puts your project online at a live link. No Dockerfile, no dashboard, no account to open first.

## At a glance

- **One sentence**: Paste it into Claude Code and press Enter
- **One approval**: Open one link and click Approve
- **No Dockerfile**: Antideploy reads your code and builds it
- **A live link**: Your app on its own HTTPS address

Published 7 October 2026. Facts checked 7 October 2026. 8 min read.

## The short answer

To deploy an app built with Claude Code, start Claude Code in your project folder and give it one sentence. It reads a short procedure written for agents and asks you to approve one link. Then it does every other step itself. It creates your app, and a Postgres database if your code needs one. It sends your project, watches the build and tells you where it went live.

> **Say this to Claude Code**
>
> Set this project up to deploy on Antideploy. Fetch https://antideploy.com/agent.md and follow it.

**You do three things.** Paste the sentence. Click Approve on one link. Open the live link at the end.

**Claude Code does the rest.** It creates the app, creates a Postgres database if your code needs one, deploys, reads the result and fixes what breaks.

## Before you start

You need three things, and none of them is an account.

- **A project on your machine.** Anything Claude Code built: Next.js, Vite, Express, FastAPI, Flask, Django, Rails, Streamlit or a plain static site, among others.
- **Claude Code, running in that folder.** It needs to be able to reach antideploy.com. If it runs in a sandbox that blocks outbound requests, it stops and tells you which domain to allow.
- **A browser, for one link.** That is where you approve the connection. Nothing else happens in the browser.

You do not need an Antideploy account first. If you have none, the approval link signs you in with Google or GitHub, creates the account and takes you straight back to Approve. You also do not need a Dockerfile, a GitHub repository or a card.

## Step by step

Six steps, and Claude Code does most of them.

### 1. Open your project in Claude Code

Start Claude Code in the folder that holds your project, the one with your `package.json`, `requirements.txt` or `index.html` at the top.

### 2. Paste the sentence

Paste the sentence from the top of this page and press Enter. Claude Code fetches [agent.md](https://antideploy.com/agent.md), a procedure written for agents, and starts following it. It may ask you to allow a web fetch and a few commands. Read each one and allow it if it matches what you asked for.

If you want a particular address, say so in the same message, for example "use the address mytool" for `mytool.antideploy.app`. If you do not, Claude Code names the app after your folder, and you can rename it whenever you like.

### 3. Approve one link

Claude Code starts a device login and shows you a link and a short code. Open the link and check that the code matches the one in Claude Code. If you are signed out or have no account yet, you sign in with Google or GitHub first and land straight back on the approval screen. Then click Approve.

**What Claude Code shows you**

```
Open  https://antideploy.com/activate?code=WDJB-MJHT
Confirm the code reads WDJB-MJHT, then click Approve.
```

The approval screen lists what you are granting, which is to create projects and their databases and deploy them. It also lists what Claude Code cannot do: read back the secrets you set, or delete anything. A code lasts fifteen minutes, and the token Claude Code receives is saved to `~/.antideploy/config.json` on your machine, never printed in the chat.

### 4. Let Claude Code set the project up

Before it builds anything, Claude Code creates the app on your account. If your code stores data, it also creates a Postgres database and writes the connection details into your `.env` file without printing them. That one database serves your local testing and the live app, so what you tested is what ships.

If the project takes uploads, has sign-in or sends email, it can switch those on the same way, with nothing else to sign up for. See [file storage](https://antideploy.com/platform/file-storage), [authentication](https://antideploy.com/platform/authentication) and [email](https://antideploy.com/platform/email).

### 5. Let it deploy

Claude Code sends your project folder, leaving out `node_modules` and `.git`, and follows the deploy until it finishes. Every deploy runs the same steps: package the code, build a container, set up the database if one is needed, run your migration command, start the app, check that it responds, and open it to the world. If a step fails, the deploy stops there and says which one.

### 6. Open your link

When the app answers its health check, Claude Code tells you where it is live and on which account. That is the whole job.

**An example of what Claude Code tells you**

```
my-app is live at https://my-app.antideploy.app
on the Antideploy account you@example.com
```

Right after, a security check of the live app runs. It looks for mistakes that leak data, such as keys shipped to the browser or a downloadable `.env` file, and it never holds the deploy up. If it finds something, Claude Code tells you and offers to fix it.

## What Antideploy works out from your code

You never describe your app to Antideploy. It reads your files, reports what it found and which file each conclusion came from, and only then builds.

- **The stack and how to start it.** Next.js, Vite, Express, FastAPI, Flask, Django, Rails, Go, Java and plain static sites, among others. A `Procfile` web line wins. Otherwise it uses the start script or the framework's usual command.
- **The port, the package manager and the version.** Including the Node.js or Python version your project asks for.
- **What your app needs.** A Postgres database, file storage, an AI provider, email, sign-in, and the environment variables your code reads. It reads the names your code expects, never the values.
- **Code that deploys and then loses data.** A SQLite file, uploads written to the app's own disk, a job queue that needs a worker, or a scheduler inside the process. Antideploy flags these before it builds, with the evidence.

That is why there is no Dockerfile to write: the build comes from what Antideploy found. If you already have a Dockerfile at the root of your project, Antideploy uses it. The account rule for that is in the questions below.

## What it costs

The Free plan needs no card and has no trial clock. It includes unlimited static sites, 1 live app with a server, 10 successful deploys a month and 1 Postgres database. Failed deploys are free on every plan.

Paid plans are charged in rupees, by UPI or card. Go is ₹399 a month for 3 live apps, Pro is ₹1,999 for 9 and Scale is ₹6,999 for 20. See the [pricing page](https://antideploy.com/pricing) for every limit.

## When a deploy fails

Claude Code reads the reason before it does anything else. A failed deploy records a one-sentence reason, the step it stopped at and the end of the build log, and Claude Code reads your app's logs beside it. Then it fixes the project and deploys again.

The most common cause on Antideploy is an app that builds correctly and never starts listening on its port. The platform passes the port in the `PORT` environment variable, so read it, and bind to `0.0.0.0` so the platform can reach the app:

**In your code**

```
// Node (Express)
const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0");

# Python (Flask)
import os
app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
```

Two more things help. A failed deploy never counts against your plan, so you can fix it and try again as often as you need. And when a deploy fails because of the platform and not your code, Antideploy builds the same version again after a few minutes, without counting it or emailing you.

Where a fix is certain from the log alone, such as a `package-lock.json` that is out of date, Antideploy repairs its own copy of the source and tells you. It never edits your repository.

## Shipping the next change

Ask Claude Code to deploy again. It already has a token and an app, so it skips the login and sends the new version.

If you would rather deploy on every push, connect a GitHub repository. Every push to your default branch then builds and deploys, and you can switch that off for an app and deploy only when you ask. See [deployments](https://antideploy.com/platform/deployments).

A changed environment variable reaches the running app through a redeploy, which builds the last version again with the current variables. See [environment variables](https://antideploy.com/platform/environment-variables). Your own domain is added in the console on a paid plan, because an agent cannot attach a domain for you. See [custom domains](https://antideploy.com/platform/custom-domains).

## Here's where it stops.

A platform that only tells you what it is good at is one you find the edges of in production. These are the ones to know before your first deploy.

### Apps sleep when idle

On every plan, an app nobody is using goes to sleep and the next visit wakes it. The first request took 2.9 to 13.9 seconds in our measurements, depending on the stack. There are no always-on workers, so use a cron job or a webhook for background work.

### One region

Everything runs in Singapore, with the database beside the app. Users far from Asia will see slower responses.

### One instance, no previews

Each app is one instance with 1 shared vCPU and 1 GB of memory, and a Java app gets 1 dedicated vCPU and 2 GB. There are no preview deployments and no per-branch URLs.

### The disk forgets

Anything written to local disk is gone on the next deploy. Apps that speak S3 get a bucket instead.

### 10 deploys a month on Free

Only successful deploys of apps with a server count. Static sites never do, and a failed deploy is free.

## Claude Code questions, answered.

Anything else? Write to us and a person answers.

[support@antideploy.com](mailto:support@antideploy.com)

### Do I need an Antideploy account before I start?

No. Paste the sentence into Claude Code first. When it needs you, it shows a link. If you have no account, signing in with Google or GitHub creates one and takes you straight back to Approve.

### Do I need a Dockerfile?

No. Antideploy reads your project and builds it for you. If there is a Dockerfile at the root, it is used: from the first deploy for accounts signed in with GitHub or Google and on any paid plan, and after 7 days for an account made with only an email address.

### Do I need to put my code on GitHub?

No. Claude Code sends the project folder straight from your machine. You can connect a GitHub repository later so that every push deploys.

### Can Claude Code read my secrets or delete my app?

No. Variables you set are write-only, so nobody can read a value back. Claude Code cannot delete an app, drop a database, attach a domain or add money to your AI wallet. Those stay in the console, on purpose.

### How do I take Claude Code's access away?

Open [antideploy.com/tokens](https://antideploy.com/tokens) and revoke it. A revoked token stops working immediately. The token itself is kept in `~/.antideploy/config.json` on your machine, readable only by you, and never in your project folder.

### How much does it cost?

Nothing to start. The Free plan needs no card and has no trial clock. It includes unlimited static sites, 1 live app with a server, 10 successful deploys a month and 1 Postgres database. Failed deploys are free on every plan. Go is ₹399 a month for 3 live apps, Pro is ₹1,999 for 9 and Scale is ₹6,999 for 20. Paid plans are paid in rupees by UPI or card. See the [pricing page](https://antideploy.com/pricing).

### Does the same sentence work in Codex, Cursor or Antigravity?

Yes. It works in Claude Code, Codex, Cursor, Antigravity and Windsurf, and in any agent that can read a web page and make requests.

### Why did my deploy fail when the app runs on my laptop?

Read the reason first: it is in the deploy history and in the email you receive. The most common cause is an app that builds correctly and never listens on its port. Read the port from the `PORT` environment variable, bind to `0.0.0.0`, then deploy again.

### What if Claude Code runs in a sandbox that blocks the network?

Then it cannot reach antideploy.com, and it should say so. agent.md gives it the exact sentence to tell you: allow `antideploy.com` in the environment's network settings, run Claude Code on your own machine, or upload the folder in the console.

## More guides, and the platform.

Each platform page covers one part of Antideploy: what it does, where it stops and the questions people ask. [See the whole platform](https://antideploy.com/platform), or [all the guides](https://antideploy.com/blog).

- [Agent API](https://antideploy.com/platform/agent-api)
- [Deployments](https://antideploy.com/platform/deployments)
- [Hosting](https://antideploy.com/platform/hosting)
- [Database](https://antideploy.com/platform/database)
- [Environment variables](https://antideploy.com/platform/environment-variables)
- [Custom domains](https://antideploy.com/platform/custom-domains)
- [Logs and monitoring](https://antideploy.com/platform/logs-and-monitoring)
- [Security checks](https://antideploy.com/platform/security-checks)

Facts on this page were checked against the live platform on 7 October 2026.

## Deploy something. Start with one sentence.

Paste one sentence into your coding agent, click Approve once, and get a live link. No card, no trial clock.

To set this up, give your coding agent this sentence:

```text
Set this project up to deploy on Antideploy. Fetch https://antideploy.com/agent.md and follow it.
```
