Bringing things in

Bring your code

A zip in: what goes to the repo, what goes to the Vault, what gets built.

Updated 26 Sept 2026

Code you already have, a Lovable export, an old site, any codebase, comes in as a zip: Import a zip on the new-project page, or later in Settings › Code. Your files go into the repo in one commit, as they are.

Before anything is uploaded

The page reads the zip in your browser and shows What goes where:

  1. Website folder: the folder with the website in it, put online. It becomes the folder Vercel builds. No website found means the code goes into the repo and nothing goes online from it.
  2. Keys to the Vault: a .env is never committed. Its keys go into the Vault under the names they had, and a service's known key names turn its row in Connections on by themselves. A keystore, a service account or another key file is kept whole in the Vault, as a file.
  3. Left out: installed packages, git history, build output, and the resource forks a Mac adds when it zips a folder. A .env.example is meant to be committed, and is.

Right-click, Compress on the whole folder is fine: the page sorts it out from the zip's index before a byte is uploaded.

After

  • Nothing reads or rewrites the code on the way in. Flexi meets it in the repo like any other file: ask him about it in a chat, or pin a file in Context.
  • The first build starts by itself. If it fails, Preview shows why, and the holding page stays live.
  • Your GITHUB_TOKEN, VERCEL_TOKEN and VERCEL_TEAM_ID, if the .env had them, are kept as PROJECT_… keys, so FlexOS keeps building with its own.

A zip with no website in it puts nothing online. A website zip with a folder named app/ is refused while a phone app lives there; move the app's folder first in Settings › Code.

Where next

  • Code: the repository and what lives where.
  • The phone app: a FlutterFlow export is a zip too, with its own door.

Still stuck? Ask Flexi in your project, or ask a flexpert.