# What your coding agent forgets before you deploy.

URL: https://antideploy.com/blog/what-your-coding-agent-forgets-before-you-deploy

Coding agents write code that works on your machine. These are the things they most often leave out, each with a quick check.

## At a glance

- **Ten checks**: Each takes a minute
- **Most are small**: One line, one file
- **Linked fixes**: Each links to a full page
- **Ask your agent**: It can run most checks itself

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

## The short answer

Before you deploy, ask your coding agent to go through this list. Most failures on a first deploy come from a handful of things that work on your machine and not on a server. The usual ones: an out-of-date lock file, no start script, a hardcoded port, `localhost` addresses, missing variables, tables that were never created, files saved to disk and timers inside the app.

> **Say this to your coding agent**
>
> Check this project against the deploy checklist: lock file, start script, PORT, localhost URLs, environment variables, migrations, uploads, SQLite and timers. Fix anything that fails.

## The checklist

### 1. The lock file matches package.json

Run `npm install` and commit `package-lock.json`. See [the lock file error](https://antideploy.com/blog/npm-ci-can-only-install-packages-when-package-json-and-package-lock-json-are-in-sync).

### 2. There is a start script, and the build passes

`npm run build` should pass on your machine, and `package.json` needs a `start` script for a server app. See [Express](https://antideploy.com/blog/how-to-deploy-an-express-api-with-a-database) and [Next.js](https://antideploy.com/blog/how-to-deploy-a-nextjs-app-with-a-backend-and-database).

### 3. The app reads PORT and listens on 0.0.0.0

Never a fixed port, never `127.0.0.1`. See [never started listening](https://antideploy.com/blog/your-app-built-successfully-but-never-started-listening-on-its-port).

### 4. There is no localhost in the code

Search for `localhost` and `127.0.0.1`. Use relative paths or an environment variable for the API address.

### 5. Every variable the code reads is set

Names in your `.env` must exist online too. See [environment variables](https://antideploy.com/blog/how-to-set-environment-variables-and-secrets).

### 6. The database comes from DATABASE_URL

Not a local address and not SQLite. See [add a database](https://antideploy.com/blog/how-to-add-a-postgres-database-to-your-app) and [SQLite resets](https://antideploy.com/blog/sqlite-database-resets-after-a-deploy).

### 7. Migrations create the tables

Use a tool Antideploy detects, or run your migration before the app listens. See [relation does not exist](https://antideploy.com/blog/relation-does-not-exist-database-tables-missing).

### 8. Uploads go to a bucket

Nothing important is saved to the app's disk. See [file uploads](https://antideploy.com/blog/how-to-add-file-uploads-to-your-app).

### 9. Timers are scheduled jobs

Replace `node-cron` and `setInterval` with a route and a scheduled job. See [scheduled jobs](https://antideploy.com/blog/how-to-run-a-scheduled-job-on-your-app).

### 10. Secrets are not in the code

No keys in files you commit, and none in `NEXT_PUBLIC_` or `VITE_` variables. Keep `.env` out of Git.

## For Python projects

- Every import is in `requirements.txt`, including the server: `gunicorn` for Flask and Django, `uvicorn` for FastAPI
- The Python version is pinned in `.python-version` if your packages need a specific one
- Django lists your address in `ALLOWED_HOSTS`

## Checklist questions, answered.

Anything else? Write to us and a person answers.

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

### Can my agent run these checks?

Yes. Ask it to check each item and fix what fails. The checks are plain: searching files, running the build and reading `package.json`.

### Does Antideploy check any of this for me?

Before it builds, Antideploy reads your project and flags code that would deploy and then lose data: SQLite, uploads on disk, a job queue that needs a worker, and a scheduler inside the process.

### What if a deploy still fails?

Read the failure reason, then the logs. Antideploy states the cause in one sentence for the causes it recognises, and the Fix an error section of this blog has a page for each common one.

## 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).

- [Why does my app work on localhost but not online?](https://antideploy.com/blog/why-does-my-app-work-on-localhost-but-not-online): Nine common reasons, how to check each one, and how to fix it.
- [Your app built successfully but never started listening on its port](https://antideploy.com/blog/your-app-built-successfully-but-never-started-listening-on-its-port): The app built but never answered on its port. Read PORT, listen on 0.0.0.0 and check the logs.
- [How to let your agent read logs and fix a failed deploy](https://antideploy.com/blog/how-to-let-your-coding-agent-read-logs-and-fix-a-failed-deploy): The loop: read the reason, read the logs, fix the code, deploy again. And what Antideploy repairs for you.

- [Deployments](https://antideploy.com/platform/deployments)
- [Environment variables](https://antideploy.com/platform/environment-variables)
- [Database](https://antideploy.com/platform/database)
- [File storage](https://antideploy.com/platform/file-storage)

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.
```
