How it works
What happens in the few minutes between the command and the link.
Detect
The command reads the files in the folder and infers the whole plan without asking a question: the package manager from the lockfile, the framework from its config file, the database from the ORM schema or the driver in package.json, the settings the code reads from the environment, scheduled jobs, file uploads, and whether the app already has its own login (which the platform can replace).
Every inference is recorded with the evidence behind it, so your AI can see why and correct a wrong guess by editing deploy.json.
Build
The source is packed (respecting .gitignore, and leaving out every .env file except examples such as .env.example) and uploaded. A build service turns it into a container image using a shared cache, so the second build of any Next.js app is fast.
Migrate
If the app has a database, its own migration command runs against a Postgres database that belongs only to this app. Before any migration a copy of the database is taken.
Provision
Whatever the plan needs is created: the function that runs the app, its database and role, a storage prefix, scheduled jobs, and an address.
Route and go live
The new version is checked with a real request. Only when it answers does the address switch to it. The previous version stays around; going back to it takes about half a minute.
Links that carry tracking tags
Links from adverts, newsletters and social posts arrive with tags on the end: ?utm_source=…, ?fbclid=… and their relatives. They describe the visit, not the page, so a page is served from the copy nearest the visitor whether or not a link carries them — the tags are still in the browser's address bar, where anything you use to measure visits reads them.
Your app never sees those particular tags on a page request. It does see everything else: a search (?q=…), a page number, a filter. And a form or an API call your app makes to itself keeps them, so attribution you send yourself still works.
Private from the first second
The address is never public. Requests without the right cookie are rejected at the edge, before the app runs, so a stranger who guesses the address gets nothing and costs you nothing. Opening the link on your device sets that cookie. Keeping the app turns "this device" into "these people".
What it costs to keep an idle app alive
A few cents a month, for keeping its recent versions ready to go back to. The app itself costs nothing while nobody uses it. That is why a real free tier exists, and why your apps can sleep without you paying for the sleep.