Docs / export

Export your source code

The code in your project is yours to take. You can push it to your own GitHub account as a new repository, or download the whole project as a ZIP — at any time, without asking anyone.

Two ways out

  • Export to GitHub creates a new repository on your account and pushes the project into it.
  • Download ZIP hands you a file in your browser, with no accounts involved.

Both are owner-only. A collaborator with editor access can prompt, preview, and publish, but cannot export the project or download the ZIP.

Connecting GitHub

Exporting needs its own connection, separate from how you sign in. Signing in with GitHub does not grant it, because creating repositories needs write access that signing in never asks for.

  1. Open Integrations.
  2. Click Connect GitHub.
  3. Authorize the app. It requests the repo scope — enough to create a repository and push to it.

The card then reads GitHub — Connected, shows the account it is connected as, and lists the granted scopes.

Disconnect on the same card removes the connection after a confirmation. Repositories you already exported are untouched — they are yours, on your account, and nothing on this platform can reach them afterwards. Revoking the app from GitHub's own settings works too; the next export attempt notices and asks you to reconnect.

Exporting to GitHub

  1. Click Export in the project header.
  2. Check the Repository name. It defaults to your URL slug. Letters, numbers, dashes, dots, and underscores are allowed, up to 100 characters, and it cannot start with a dot.
  3. Leave Make private ticked unless you mean to publish the code.
  4. Click Export. When it finishes, a notification appears with a link to the new repository.

If the name is already taken on your account, the dialog says so and offers a few alternatives under Try: — click one to fill the field, or type your own.

Each export creates a fresh repository with a single commit, dated the day you ran it. Nothing from the project's history comes along, and exporting twice gives you two independent repositories rather than a second commit on the first one. If a push fails halfway, the half-created repository is removed so your account is not left with an empty shell.

Downloading a ZIP

Open the avatar menu in the project header — Project actions — and choose Download ZIP. Your browser downloads a file named after the project and the commit it was taken from, for example my-shop-a1b2c3d.zip.

The ZIP is a snapshot of the files as committed, which makes it the quickest way to grab a backup or hand the code to someone who does not use this platform.

What is included

Everything the AI has committed: your application code, your database schema, configuration, and the mobile app if the project has one. Build output and caches are left out — node_modules, .next, dist, build, coverage reports, and the package caches that live inside the working directory.

Your .env is never exported. Real values never enter the repository in the first place, so there is nothing to leak through this path. To make that workable, a GitHub export adds a starter .env.example when the repository does not already ship one — it lists the settings the generated code reads — email, and, when the project has them, the file storage and AI variables. Treat it as a starting point rather than a complete list: your database connection string is not in it, and neither is anything else you added along the way.

Running it on your own machine

Unpack or clone the export, then:

pnpm install
cp .env.example .env
pnpm dev

Fill in .env before the first run. The app needs a database it can reach: point DATABASE_URL (or MYSQL_URL) at one you control, or reuse the connection string for this project's database — see your project database. Add any other keys your app expects, such as the email settings from .env.example.

Limits & notes

  • A single file larger than 5 MB fails the export. Move large assets out of the repository and try again.
  • A project with more than 2,000 files cannot be exported to GitHub.
  • 60 seconds between exports of the same project, and 10 exports per hour per account. The hourly count includes attempts that failed, so repeated retries eat into it.
  • 10 ZIP downloads per hour per account. No cooldown between them.
  • History is not preserved, on either path — an export is a snapshot, not a mirror.
  • An export is refused if the repository has no committed files to send.
  • Exporting to a public repository publishes whatever is in the code. If the AI ever wrote a key straight into a file, that key goes public with it. Keep Make private on, and read the repository before you flip it.
  • Limits may change during alpha.