---
title: "Migrate from Render over MCP, without a rewrite"
url: https://while.sh/en/guides/migrate-from-render/
author: "Aloïs Oddon, co-founder of Nextmap"
updated: 2026-11-05
---

# Leave Render without rewriting your app, from your AI agent

Your customers want their data in France, or you want an agent that deploys for you? Connected to while over MCP, it takes over your Render app as is, copies the database and deploys it.

## Prerequisites

- An app on Render, in Node.js, Python or Go, or with its Dockerfile.
- Access to your Render account, to export the database.
- An AI agent that works in a terminal: Claude Code, Codex, Cursor or Gemini CLI.

## Step 1: Give your agent these instructions

Open your agent in your app's folder and paste these instructions into it:

```text titre="Instructions"
Connect to while with my account (while.sh/agents), then deploy my app.
```

With your account, your agent adds while's MCP server itself. On the first call to while, a page opens in your browser: choose "A new app", then click Authorize.

## Step 2: Open your app

Your agent gives you your app's address, for example `https://mon-appli.while.cloud`, over HTTPS.

## What your agent does

It reads your render.yaml, if there is one, and carries each service over to while.yaml (source 1):

| In render.yaml | In while.yaml |
|---|---|
| `type: web` | a web service |
| `type: web` and `runtime: static` | a `type: static` service |
| `type: worker` | a `type: worker` service |
| `type: pserv` | a `public: false` service, which only your other apps call |
| `type: cron` and its `schedule` | a scheduled job, in `crons` |
| `type: keyvalue` | a cache, in `caches` |
| `databases` | a PostgreSQL database, in `databases` |

```yaml titre="while.yaml"
apiVersion: while/v1
project: mon-appli
services:
  - name: web
    health:
      path: /
  - name: worker
    type: worker
    command: [node, worker.js]
databases:
  - name: main
crons:
  - name: menage
    schedule: "0 3 * * *"
    command: [node, menage.js]
```

## Copy your Render Postgres database

> You, to your agent: Copy our Render database to while.

Your agent exports the database with `pg_dump`, at the external address Render gives the database, then loads it into while (source 2).

## Carry over your variables

> You, to your agent: Carry over our Render variables.

Your agent carries over the variables from render.yaml and from your environment groups. The secret values, which render.yaml leaves as `sync: false` (source 1), you enter yourself in while: your agent never sees them.

## Move to your own domain

> You, to your agent: Put the app on www.acme.com.

Your agent declares the domain, you add the DNS records it gives you, and the HTTPS certificate follows.

## Go back to the previous version

> You, to your agent: Go back to the previous version.

In the 30 minutes after a deployment, the previous version comes back in a second. After that, it takes a few seconds.

## Next steps

- [Compare Render and while](/en/comparisons/while-vs-render/)
- [Render pricing](/en/comparisons/render-pricing/)
- [Restore a PostgreSQL database](/en/guides/restore-postgresql/)

## Sources

1. [Render, the Blueprint specification (render.yaml)](https://render.com/docs/blueprint-spec), 2026-11-05
2. [Render, backups and exporting a Postgres database](https://render.com/docs/postgresql-backups), 2026-11-05

## Questions

### What about my Render disk?

while has no persistent disks: keep your files in an S3 bucket, which your agent declares in one line.

### Do I need to write a Dockerfile?

No, a Node.js, Python or Go app is detected automatically. If your app already has its own, while uses it.

### Can I keep Render while I check?

Yes, your app runs on while at its own address before you switch your domain.
