# Move from Vercel

Most apps move in three steps and keep running on Vercel until the domain switches, so there is no downtime. Plan for about ten minutes.

## 1. Import the repository

On **New project**, choose **Connect GitHub** and pick the repository. HostEdge detects the framework and deploys it to a `hostedge.app` URL; your Vercel deployment is untouched. See [GitHub](https://hostedge.app/docs/github) for what the app can access.

Next.js needs no `vercel.json` and no extra setup: the build adds the edge adapter when the project has none. Astro, SvelteKit, Nuxt and React Router need their edge adapter for server rendering; [Frameworks](https://hostedge.app/docs/frameworks) lists exactly which one.

## 2. Copy the environment variables

In Vercel, open **Settings › Environment Variables** and copy the values. In HostEdge, open **Project › Environment variables** and paste the whole `.env` block; quotes, `export` prefixes and comments are understood. Deployments keep the values they were built with, so redeploy once after pasting. See [Environment variables](https://hostedge.app/docs/environment-variables).

## 3. Switch the domain

Add your domain in **Project › Domains** and create the DNS record HostEdge shows (a CNAME to `cname.hostedge.app`). When verification turns green and the certificate is issued, remove the domain from Vercel. See [Custom domains](https://hostedge.app/docs/domains).

## What maps to what

| On Vercel                      | On HostEdge                                                                  |
| ------------------------------ | ---------------------------------------------------------------------------- |
| Preview deployments            | Every non-production branch and pull request gets a preview link             |
| Vercel Postgres, KV, Blob      | Databases, key-value stores and file storage in [Storage](https://hostedge.app/docs/storage)     |
| Cron jobs in `vercel.json`     | [Cron jobs](https://hostedge.app/docs/cron-jobs), set in the project                             |
| Vercel Analytics               | [Web analytics](https://hostedge.app/docs/analytics), with an optional cookieless mode           |
| Deployment protection          | [Protection and redirects](https://hostedge.app/docs/protection)                                 |
| `vercel` CLI                   | `npx hostedge deploy` ([CLI](https://hostedge.app/docs/cli))                                     |

## What to check before you cut over

- **Server-only packages.** Native modules and child processes are not available at the edge; the build log tells you if one is imported.
- **Bundle size.** The server bundle must stay under 10 MB gzipped.
- **Image optimization and edge config.** Anything that uses a Vercel-only service needs a replacement; test on the `hostedge.app` URL first.
- **Bindings.** Resources from your own Vercel config or bindings are not used; create them in **Project › Storage** and they are bound by name.

## What it costs

Plans have fixed monthly prices, with request and bandwidth allowances listed in [Limits](https://hostedge.app/docs/limits). Past the allowance, paid plans can optionally bill usage at $0.50 per million requests and $0.10 per GB of bandwidth, with a monthly cap you choose; without it, sites pause instead of billing you.

## Let your assistant do it

With HostEdge [connected to your assistant](https://hostedge.app/docs/ai-assistants), this prompt covers steps 1 and 2:

```text
Import my GitHub repository REPO into HostEdge, copy the environment variables from the .env file I
paste below, deploy it, and tell me what failed or needs changing before I move my domain.
```
