Cofounder Docs

GitHub

Understand how managed GitHub repositories are created during onboarding.

GitHub

Use GitHub in Cofounder to connect product context and to ship the marketing website or other technical business surfaces. Keep the core product in the repository and engineering workflow you control.

Do not ask Cofounder to rebuild or take ownership of the main product codebase. For product changes, ask for an implementation brief or handoff prompt for your coding agent or engineering team. See What Cofounder Does.

In workspaces that already use Cofounder's managed app stack, onboarding created two managed GitHub repositories:

  • an app repository
  • a marketing repository

These repositories are private and auto-initialized during provisioning.

Role

GitHub is where the code lives.

  • the app repository is available in workspaces that already use Cofounder's managed app stack
  • the marketing repository holds the site, launch pages, and growth surface

What Cofounder Sets Up

After the repositories are created, Cofounder also seeds:

  • baseline repository config
  • initial folder structure
  • .github/workflows CI files

How GitHub Connects To The Rest Of The Stack

The managed GitHub repositories are what the managed Vercel projects get linked to during onboarding.

The marketing repository is the normal implementation target when the Engineer opens branches, makes website changes, and puts up pull requests. A connected product repository provides context and a handoff surface; it is not an invitation for Cofounder to take over the core product build.

Repository Access And Invites

If you cannot open the managed repositories in GitHub, make sure your Cofounder account is signed in with GitHub or linked to the GitHub account that should receive access.

Agents work through Cofounder's connected repository context. If GitHub is not connected, do not use an agent as a workaround by asking it to clone a private repo manually. Connect GitHub through the in-app sign-in or account-linking flow, then use the supported repository access flow instead.

Organization admins can invite a GitHub user to the managed app and marketing repositories from Settings > Advanced under Get access to managed repos. Enter the user's GitHub username and Cofounder will send repository collaborator invites for the managed repositories. The user should then accept the GitHub invites from GitHub.

Import Your Own Repo

Some workspaces also let you replace the managed app repo or marketing repo with a repo you already own.

That flow lives in Settings > Advanced.

It covers:

  • choosing whether the repo is for the app or marketing site
  • selecting the GitHub repo
  • making sure the Cofounder GitHub app is installed
  • accepting access to the managed Vercel projects
  • manually connecting the managed Vercel project to that repo
  • setting the root directory
  • syncing env vars

For app repos, it can also keep managed Supabase env wiring, migrations, and the prod branch setup aligned.

Why the Vercel step is separate

Installing the Cofounder GitHub App gives Cofounder access to inspect and work in the repository. It does not give Vercel's GitHub integration access to that repository, and it does not change which repository the managed Vercel project is connected to.

For a private repository, the guided import therefore asks you to:

  1. Accept the invitation to the managed Vercel projects.
  2. Make sure Vercel's GitHub integration has access to the repository.
  3. Open the managed project's Git settings in Vercel.
  4. Connect the exact repository selected in Cofounder.
  5. Return to Cofounder and choose Verify and finish.

Cofounder checks the live Vercel project before completing the import. The repository is not treated as imported while the project is unconnected or connected to a different repository.

You can close the guided import and resume later. Use Cancel setup when you want Cofounder to restore the previous managed repository configuration. To switch from one imported repository to another, disconnect the current imported repository first.

Next Steps