---
topic: bring
connector: "deploy_app, once you have the code"
api: "POST https://ship.embarko.ai/apps, once you have the code"
needs_human: "Where the code is, the values of any secrets, and the decision to switch the domain."
---

[← Guide home](https://embarko.ai/docs)

# Bring an existing app to Embarko

**On this page:** Steps, Limits, What to tell the person

> Plain words unless the person is a developer. Never invent a link, name or code. [Rules](https://embarko.ai/docs/prerequisites)

You bring an existing app by deploying its code to Embarko as a new app, beside the old one. The old site keeps running. The new Embarko link is the preview: the person compares the two and decides when to point their domain. Never switch anything off or change a domain yourself.

**Connector:** deploy_app, once you have the code

**Done when:** The app opens at its new https://{app-name}.embarko.app link, you have told the person what matches the old site and what does not, and you have left the old site and the domain alone.

**Steps**

1. Find the code. Look in this conversation, the open folder, or a repository the person names. If you have none, ask: "Where is the app's code: a folder, a repository, or an export?"
2. From an AI app builder (Lovable, Bolt, v0): ask the person to export or download the project, then use that. Send the project with its package.json, not a built dist folder.
3. Only a website address: you can rebuild public pages you can read (text, images, layout). You cannot recover server code, accounts or saved data. Say so before you start, and ask the person to confirm the site is theirs.
4. Check that it fits before you deploy (see prerequisites, Does the app fit). If it needs more than 256 MB of memory, WebSockets, a background worker, several processes or its own Dockerfile, stop and tell the person what would have to change.
5. List the settings the app reads (names only, such as STRIPE_KEY). Ask the person for each value. Do not copy secrets out of the old host, a .env file or your memory without asking.
6. Say what happens to saved data. It does not move by itself. If the person gives you an export, load it when the app first starts (see data). A managed database on the old host stays where it is: the app can keep using it through its connection setting, or the person moves the data. Embarko does not back data up.
7. Deploy it as a new app (see quickstart). Pick a new name. Do not reuse the name of another Embarko app.
8. Open the new link and the old site side by side. Check the main pages and the main action. Tell the person what matches and what differs.
9. Stop. Tell the person the new link is ready to review. Point the domain only when they ask (see custom-domain). Do not delete or pause anything on the old host.

**Limits**

- One upload is one app with one process. A frontend and a backend on the old host become two Embarko apps (see two-apps).
- Not supported: Dockerfiles, WebSockets, background workers, managed databases. 256 MB of memory per app.
- A custom domain can point at one place. Until the person switches it, visitors still reach the old site. That is the intended review period.
- Changing the website record does not change email for the domain. Leave MX records as they are.
- An anonymous first deploy lasts 24 hours. Claim it before the person switches their domain (see claim).

**What to tell the person**

- ask_code: "Where is the app's code: a folder on your computer, a repository, or an export from the tool you built it in?"
- address_only: "From the address I can rebuild the pages people can see. I can't bring across sign-in, saved data or anything that runs on the server. Do you want me to rebuild the pages?"
- ask_secrets: "The app needs these settings: {names}. Please give me a value for each. I won't copy them from your old host."
- does_not_fit: "This app needs {feature}, which Embarko doesn't support. To move it we would have to {change}. Do you want me to do that?"
- done: "Your app is on Embarko: {link}. Your old site is still live and unchanged. Compare the two. When you're happy, tell me and I'll point your domain here."

**Next:** Find the code, check it fits, deploy it as a new app, compare, then stop and let the person decide.

**Related:** [quickstart](https://embarko.ai/docs/quickstart) · [prerequisites](https://embarko.ai/docs/prerequisites) · [env-vars](https://embarko.ai/docs/env-vars) · [data](https://embarko.ai/docs/data) · [custom-domain](https://embarko.ai/docs/custom-domain) · [claim](https://embarko.ai/docs/claim)

---

[Guide home](https://embarko.ai/docs) · JSON: add .json