> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polymet.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Import from GitHub or a ZIP

> Start a Polymet project from code you already have, and keep designing on top of it.

Import brings an existing React app into Polymet as a project. Pick a GitHub repository or upload a ZIP of the project folder, and the agent can start working on it right away.

Every plan can import. A repository imported from GitHub stays in sync both ways on every plan.

![The import menu under the generation input on the projects page, with Import from GitHub, Upload a ZIP and Import from Figma](https://mintcdn.com/polymet/TfIzLh80_L4bW9xQ/images/docs/canvas/import-menu.png?fit=max\&auto=format\&n=TfIzLh80_L4bW9xQ\&q=85\&s=959da7df8f110780bf999ed3d4a3a45f)

## What can be imported

Polymet shows the supported stack before every import.

| Supported | Not supported yet |
| - | - |
| Vite | Next.js |
| React 18 or newer | Remix |
| Tailwind 3 or 4 | Monorepos |
| One package, one root `package.json` | Bundlers other than Vite |

Importing a project that is not supported may fail or render incorrectly.

## Import from GitHub

1. On the projects page, click the import icon in the generation input.
2. Choose **Import from GitHub**, then **Continue**.
3. If GitHub is not connected yet, click **Connect to GitHub** and approve access. If the dialog still shows "Connect GitHub first" afterwards, click **Refresh**.
4. Pick a **Repository** and a **Branch**.
5. Pick the **Organization** the project belongs to, and a **Project name** if you want a different one.
6. Click **Import**.

When it finishes, Polymet opens the new project. If you imported that repository before, it opens the existing project instead.

## Choose the branch carefully

Polymet pushes every change straight to the branch you import. If you want to review its changes in a pull request, work on a separate branch:

1. Open the **Branch** list and choose **new branch** at the top.
2. Pick a **Base branch**, such as `main`.
3. Name it, for example `polymet/pricing-redesign`.

Polymet creates the branch on GitHub, then imports it.

## Upload a ZIP

1. On the projects page, click the import icon in the generation input.
2. Choose **Upload a ZIP**, then **Continue**.
3. Drop the zipped project folder on the upload area, or click it to choose the file. The limit is 300 MB.
4. Pick the **Organization** and a **Project name**.
5. Click **Import**.

If the ZIP has no git history, Polymet tells you so, and the project starts with a fresh first version.

## After the import

The project opens on the canvas like any other. Ask the agent for a change, or open the code editor to look around first.

For a GitHub import, changes you push to the branch come into Polymet, and Polymet's changes go to GitHub. See [Sync a project with a repository](https://docs.polymet.ai/github/sync.md).

## Related

* [Connect GitHub](https://docs.polymet.ai/github/connect.md) — what Polymet can and cannot touch in your account
* [Sync a project with a repository](https://docs.polymet.ai/github/sync.md) — how two-way sync works
* [Edit code](https://docs.polymet.ai/canvas/code-editor.md) — browse and change the imported files
* [Import from Figma](https://docs.polymet.ai/canvas/import-figma.md) — start from designs instead of code


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.