Create from GitHub

Create a Netlify Create cloud project from existing GitHub repositories.

Netlify Create supports the ability to create new cloud projects from an existing GitHub repository, or by duplicating a public repository.

To learn more about how Netlify Create creates a project and provisions the appropriate services, see How Netlify Create Works.

Project Preparation

Cloud projects are typically created when teams are ready to begin collaborating on visually editing a site.

If you don't think you're ready to create a cloud project, see the new project guide for suggestions on how to get started.

Prerequisites

Cloud projects can only be created from valid Netlify Create projects. A valid Netlify Create project contains the following:

  • Content: Content that is separated from code and structured.
  • Configuration: A valid configuration file file.
  • Framework/Runtime: A Node.js-based site framework using Node v14 or newer.
  • Content Source: Proper API CMS configuration (if necessary). This depends on your content source and create mode.

Create Modes

When creating a new project, you can choose to connect to an existing GitHub repository, or Netlify Create can duplicate an existing repository. This is done by clicking the Create from GitHub button on the new project screen.

Click create from GitHub button
Click create from GitHub button

Mode: Use My Repository

When using an existing repository, the Netlify Create project will use the specified repository directly. This means that any changes made to the branch that content editors are using (preview by default) will be reflected in the Netlify Create project.

Configuring a Headless CMS

If your site is using a headless CMS as a content source (as defined in the Netlify Create configuration file), you will be prompted to connect Netlify Create to the relevant CMS and select an existing space/dataset/environment (the terminology depends on the CMS).

Mode: Duplicate a Repository

You also have the option to create a new project from any GitHub repository for which your GitHub user has read access. Netlify Create duplicates that repository and creates a new cloud project based on the duplicated code.

Transferring Repository Ownership

When duplicating a repository, Netlify Create pushes the duplicated code to a Netlify Create-owned repository.

After the project is created, you can transfer the repository to a GitHub account or organization that you own. This will allow you to clone its contents to your local machine, push changes, modify branches, and so on.

You can later rename or move the repository as you wish and Netlify Create will update automatically.

Importing Content into a Headless CMS

The repository you used to create a new project may be configured to use a headless CMS (via the import configuration option).

For the creation process to work properly, your CMS account needs to be bootstrapped with the proper content model and initial content. After you connect Netlify Create to your CMS account (when prompted), Netlify Create creates creates and initializes a new space/dataset (to avoid content conflicts), then imports the data models and content.

Needed Permissions

To operate correctly with your repository, Netlify Create needs the ability to commit and merge code, create branches and add a webhook. Because Netlify Create operates on behalf of a GitHub user, your GitHub user must have admin-level permissions on the repository.

Setting-up a GitHub app is a two-step process, both of which should be completed when the install window pops up:

  1. Installation: This adds Netlify Create application to your GitHub account, but doesn't configure the necessary permissions.
  2. Configuration: Provide the access mentioned above to the repository being used.

Advanced Options

There are a number of advanced customizations you can make while creating a new cloud project.

Custom Git Branches

When creating a new project, Netlify Create either infers or has sensible defaults for the Git branches it uses:

  • Target Branch (production): Matches the repository's primary branch (usually main or master).
  • Working Branch (development/editing): Defaults to preview, and is automatically created for new projects when it doesn't exist.

You can make adjustments to these defaults as needed during the project creation process, or any time through the project settings. Learn more about Git branches in Netlify Create.

Monorepo Support

Netlify Create supports monorepo configurations — repositories that contain multiple Netlify Create configuration files — through the site root directory option, which you can adjust after choosing a repository

Netlify Create automatically validates repositories in Use my Repository mode. In this case, the first attempt at validation for monorepos typically fails because Netlify Create validates against the root directory.

After you change the site root directory, you can click Revalidate to run the validation again. You won't be able to proceed without a valid site.

Revalidate after changing site root
Revalidate after changing site root

If you have a more complex monorepo layout and are unsure how to bring it into Netlify Create, talk to us!

Managed Hosting

When duplicating a repository, your new project will come with managed hosting enabled by default. This makes it easy to evaluate starters and examples by being able to see the production publishing flow in action. You can disable managed hosting in the project settings.

In Use my Repository mode, managed hosting is disabled by default. Users choosing this option typically want more control over their deployment and hosting providers. You can however enable managed hosting at any time from the project settings.

Organizations

Customers using a paid Netlify Create plan have an organization entity in Netlify Create, through which permissions and projects are centrally managed. Organization admins have the option to place new projects within a specific organization.

Otherwise, new projects are automatically added to your personal account.