Bring an existing Expo app

Upload the source of an app you already have, keep its own configuration, and build it from the Studio.

Bring an existing Expo app

A project that already exists does not have to be rewritten to be run from here. Settings → Import code takes a zip of an Expo project — the one you get from Download ZIP on GitHub works as it is — and makes it this app's project: its files, its assets, its dependencies, its own app.json and its own Expo SDK. Nothing is regenerated; the import is a single version you can roll back from like any other.

  • What is kept: every source file, plus images, fonts, audio and other binary assets. Your app.json stays in charge of the icon, splash, plugins and bundle id — the Studio only adds what EAS needs to build and submit, and the Settings tab then shows the bundle id as read-only, because app.json is where it now comes from.
  • What is left out: node_modules, ios, android, .git, .expo and build output. They are regenerated by the build, and leaving them in is how a 7MB project becomes a 400MB upload. The limits are 25MB for the zip, 400KB for a text file and 4MB for a binary one.
  • Dependencies must come from npm. A version range is fine — ^1.2.0, ~1.2, an exact pin. A git+, file:, link: or URL specifier is refused by name. The build machine installs what package.json says with scripts disabled; a specifier pointing anywhere but the registry is either unreproducible or a way to run code we did not fetch, so it is not accepted.
  • The instant preview needs an SDK Snack has shipped. The web player currently runs up to Expo SDK 54. A newer project — SDK 57, say — still chats, edits, builds and submits, and Run in browser exports it for the web so it still appears in the phone frame; it takes a few minutes instead of a few seconds, and anything native is inert until you build it.

An import replaces, it does not merge

Uploading a zip swaps the whole project for its contents: files not in the zip are removed. That is what makes it predictable — what you see in the Code tab afterwards is exactly what was in the zip, minus what the list above leaves out.