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

# Quickstart

> Create your first migration project in minutes

export const ProductName = "The Morph Platform";

export const productName = "the Morph Platform";

This guide walks you through creating a migration project and getting to your first milestone.

## Prerequisites

* A GitHub account
* One or more repositories you want to modernize

## Step 1: Sign In

Go to [modelcode.ai](https://modelcode.ai) and sign in with your **GitHub** account.

## Step 2: Connect GitHub

After signing in, connect your GitHub account to access your repositories:

1. Click **Connect GitHub**
2. Authorize {productName} to access your repositories
3. Select which repositories {productName} can access

<Tip>
  You can grant access to specific repositories only. You can always add more later.
</Tip>

## Step 3: Create a Project

1. Click **Create Project** on the Projects page
2. Enter a project name (auto-filled from your first repository name)
3. Select one or more repositories from the dropdown
4. For each repository, confirm or change the **origin branch**
5. Set a **feature branch** name (prefixed with `morph-`)
6. Click **Create Project**

{ProductName} clones your repositories and prepares them for analysis. This takes a few moments.

<Tip>
  You can add multiple repositories to a single project. This is useful when your modernization spans several repos — for example, migrating a backend and a shared library together.
</Tip>

## Step 4: Set Up the Build Environment

Once your project is created, the onboarding flow guides you through configuration. The first steps set up how your project builds and runs:

1. **Setup Build Environment** — Choose between the cloud environment or a [Self-hosted Daemon](/setup/build-environment/self-hosted-daemon) for projects that depend on private services
2. **Review Lifecycle Setup** — {ProductName} automatically discovers your lifecycle configuration (scripts, environment variables, lifecycle document) by analyzing the codebase — for both cloud projects and projects connected to a [V2 self-hosted daemon](/setup/build-environment/self-hosted-daemon). Review the discovered setup on the [Lifecycle Setup](/setup/build-environment/lifecycle-setup) page and make corrections if needed.
3. **Validate Setup** — Run an end-to-end validation that executes each script in sequence to confirm the application installs, builds, starts, and passes a health check

<Note>
  If your project builds and runs with standard, publicly accessible dependencies, the cloud environment works out of the box — {productName} will discover the lifecycle setup automatically. Use a Self-hosted Daemon only when your project requires access to private registries, internal APIs, or on-premise infrastructure.
</Note>

## Step 5: Define Your Modernization Goals

This is where you tell {productName} what you want to achieve. Describe your goal in plain language:

**Examples:**

* "Translate the source code from Ada to C++"
* "Upgrade Python 2.7 to Python 3.12"
* "Migrate from AngularJS to React with TypeScript"
* "Upgrade Java Spring framework to the latest version"

<Note>
  Be specific about your target. Instead of "modernize the code," say "migrate from Express.js to FastAPI" or "upgrade to React 18 with hooks."
</Note>

### Project Overview

As part of defining your goals, you'll configure the **Project Overview** — a summary of the repositories involved and their roles in the migration:

* **Repos at start** — The repositories you're beginning with and their current state
* **Repos at end** — The target repositories after migration, including any new repos and each repo's modernization role (Modified, New, Reference Only, One-to-One Migration)

## Step 6: Review and Approve the Project Spec

{ProductName} generates your **Project Spec** — the full migration plan for your project. The first time it is ready, [**Project Knowledge**](/customization/project-knowledge) opens automatically on the Roadmap. Select **Project Spec** in the tree if needed, and review it carefully:

* Does it capture your intent?
* Are the target technologies correct?
* Is anything missing?

You can:

* Use **Knowledge chat** in Project Knowledge to ask questions and request updates to the Project Spec
* Run **Auto-review** to have {productName} check the spec against the codebase and your goals
* **Approve** from the Project Knowledge drawer when you're satisfied

<Warning>
  Once approved, the Project Spec cannot be edited. Take time to review before approving.
</Warning>

## Step 7: Generate Roadmap

After approval, {productName} generates a **Roadmap** — a sequence of milestones that progressively execute your migration. Each milestone represents a logical chunk of work, ordered so each builds on the previous one.

## Step 8: Execute Your First Milestone

1. Open the first milestone
2. Review what it will accomplish
3. Click **Generate Tasks** to create the specific work items
4. Click **Execute Tasks** to run the migration

When complete, a Pull Request appears in your GitHub repository. Review it, and when satisfied, merge it to complete the milestone.

## What's Next

* [GitHub Integration](/setup/github-integration) — Manage repository access
* [Lifecycle Setup](/setup/build-environment/lifecycle-setup) — Configure how your project builds and runs
* [Build Environment](/setup/build-environment/self-hosted-daemon) — Set up a Self-hosted Daemon for private dependencies
* [Define Modernization Goals](/setup/modernization-goals) — Learn how to write effective goals
* [Reviewing the Project Spec](/setup/reviewing-project-spec) — Approve your migration plan using the Project Knowledge drawer
* [Roadmap](/migration/roadmap) — How your migration is organized and tracked
