What moves, and what it becomes
The setup pull request contains the Dockerfile, the Kubernetes manifests, the CronJobs, the deploy options (
.ankra/ankra.yaml) and the build pipeline (.ankra/pipeline.yaml). Ankra’s AI writes it when you add the repository. You review and merge it.
Vercel storage in the Launch Plan
Ankra reads which Vercel storage the code uses and puts one card per service in the project’s Launch Plan. Each card shows how locked in the service is and which choice applies by default. You can change the choice.
A portability pull request is opt-in. It adds the open-protocol path beside Vercel’s, and the app keeps using Vercel until you set the new variables. Data is copied only when you start a data migration.
Portability pull requests
A portability pull request is a small change to your code that Ankra opens on your repository only when you ask for it. Ankra opens two kinds:- A service’s portability pull request. It adds the open-protocol path for a Vercel storage service from the table above, beside Vercel’s.
- The next.config pull request. It moves your
vercel.jsonrouting intonext.config.
Asking for one
Each portability pull request is an action of the project’s Launch Plan, and a plan-level approval covers it like any other action:- For a storage service, choose the portability pull request on its card. A Vercel project always offers the next.config pull request.
- Select the pull request among the actions you approve. It is never selected for you.
- Open it under the approval with Open an approved portability pull request in the API reference. It needs
applications.write. Only you, the approver, can open it, and each approved pull request opens once.
When a person has to make the change
Ankra changes only what it can change with confidence. If it cannot, it opens nothing. The operation fails with the reason, starting withneeds a person:, for example when next.config already defines redirects(). Make that change yourself.
The next.config pull request
The next.config pull request moves the redirects, rewrites and headers fromvercel.json into next.config, and sets output: 'standalone' so the image carries only the standalone server. Your existing configuration is kept as it is: the pull request only adds to it. While Vercel builds the app, the moved rules return nothing, so vercel.json keeps serving your routing on Vercel until you move traffic.
After it opens
The PR shepherd follows every portability pull request and drives it to ready. Ankra never merges a portability pull request, whatever your merge settings, because it changes your code. You review and merge it.Moving your data (Closed Beta)
When you choose to move a service into your cluster, the Launch Plan carries a data migration for it. The migration plans the move in steps, and one plan-level approval covers all of them. Every service moves before one cutover:- Ankra copies the data in while your app keeps running on Vercel.
- It makes each vendor source read-only.
- It copies what changed since the first copy and checks counts and checksums.
- It switches your app’s variables to the services in your cluster in one change.
Compared with your Vercel preview
Before you merge the setup pull request, Ankra’s proof run deploys it to an ankra.cc preview and requests its health routes and its home page. For a Vercel project, the proof then requests the same routes on the preview Vercel deployed of the same commit, and compares the two answers. The comparison looks at the shape of each answer, not its exact bytes:- the status code
- the content type
- for JSON, the keys two levels deep
- for an HTML page, its title and which of
header,nav,mainandfooterit has - the size, which counts as different only when one answer is more than twice the other
An unknown route is never counted as a match.
A difference is a warning. It does not fail the proof and does not block the pull request. A Vercel preview can differ for good reasons, such as variables set only for previews. Check each difference before you move your domain.
Ankra finds the Vercel preview from the deployment status Vercel’s GitHub integration posts on the commit, so the GitHub App Ankra uses must be able to read the repository’s deployments. Ankra sends no credential to the Vercel preview. If the preview is protected by Vercel Authentication, its routes show as unknown.
Start from the Vercel project page
The Ankra — Chat & Deploy extension for Chrome puts an Ask Ankra button on your Vercel project page, and also on Lovable, Claude Design and GitHub repository pages. See install the extension.1
See where the project stands
The button carries a status pill for the project’s repository: Not connected, Analysing, N decisions, Ready to approve, Proving, Proof failed or Live. The same pill appears on the repository’s GitHub pages.
2
Review the Launch Plan
Open Deploy project. The extension fills in the GitHub repository the Vercel project builds and its branch. The Launch Plan panel lists:
- the decisions only you can make, with their defaults
- per external service, what stays at Vercel and what Ankra runs open source
- the result of the proof run of the setup pull request
3
Bring your variables
Under Bring variables from Vercel, paste a Vercel access token for the project’s team and choose Read variables. The token is used from your browser only and is not stored or sent to Ankra.By default you get the names of the project’s production variables, marked by whether Ankra already has each one. Tick the box to copy the values into the application’s encrypted secrets. Values Ankra already holds are never overwritten. Variables marked sensitive on Vercel cannot be read back, so enter those in Ankra.Values can be copied once Ankra has registered the application, which happens on the first deploy.
4
Approve
Click Approve and deploy. Ankra registers the application, opens the setup pull request, builds and scans the image, and deploys it with the plan’s choices. If the setup pull request or the first build is still pending, the request waits and is sent when Ankra is ready.The approval covers exactly the actions the panel lists, for one hour. When Ankra AI works on the launch in your chat or in an agent run that carries the approval, it runs those actions without asking you again. Anything outside the list still asks first. If the plan changes after you approve, nothing runs under the old approval: read the new plan and approve it.
Test on the Ankra address before you move your domain. Check every route the proof card shows as differing or unknown, the cron routes, the rewrites you moved into
next.config, and every variable your app reads.