1
Ingest
Your source arrives as a GitHub repository, a folder upload, or an archive
pushed to the API. Dependency and build directories (
node_modules,
.git, dist, .next, build) are excluded; you don’t need to clean
the project first.2
Analysis
Antideploy reads your manifests and source to determine:
- Runtime: Node, Python, Go, Ruby, Java, or a Dockerfile
- Framework: Next.js, Vite, Express, Flask, Django, Rails, or a static site
- Build and start commands: inferred from your scripts and conventions
- Port: what your app will listen on
- Database: whether your code uses Postgres, and through which ORM
Antideploy reads the names of environment variables your code expects, so
it can tell you what to supply. It never reads their values.
3
Provisioning
If your code uses Postgres, a database is created and its connection
string is injected as
DATABASE_URL.This is the only infrastructure Antideploy provisions. If your project
also needs object storage, Redis, a queue or a scheduler, analysis will
say so, as a warning or a hazard, and you supply it yourself.4
Build
Your project is built into a container image.Most projects go through buildpacks, which detect the runtime and produce
an image without a Dockerfile. If there is a Dockerfile at the root of
what is being built, that is used instead.Static sites skip the buildpack lifecycle entirely: there is nothing to
compile, so the files are layered onto a minimal server image. This takes
a static site from roughly three minutes to about seventy seconds.Build logs are captured and shown in the dashboard, including on failure.
The root, specifically. A Dockerfile at
services/api/Dockerfile is not
used: the build runs at the root, where that file is not. If yours lives
in a subdirectory, either set that directory as the one to build, or move
the Dockerfile up.5
Release
The image is deployed and your environment variables are injected. The
previous version keeps serving until the new one passes its health check.Your app is then reachable over HTTPS at a generated URL.
6
Running
Apps scale to zero when idle, so an app nobody is using costs nothing. The
first request after an idle period pays a cold start.Antideploy checks each app’s health every few minutes and emails you when
an app changes state: goes down, or recovers.
Warnings and hazards
Analysis produces two kinds of finding, and the difference matters.Warnings
Things that will work but may not be what you meant. A missing lockfile,
a page referencing files that weren’t uploaded, two deployable projects in
one repository.
Hazards
Things that will not work once deployed. Files written to local disk and
lost on restart. Background workers and scheduled jobs that will never
run.