Anticode Open builder

Anticode's AI website builder GitHub integration: one commit, nothing deleted

Anticode can push the Next.js version of a project straight into a GitHub repository you choose. Connecting GitHub is its own permission, separate from signing in with GitHub, and each push lands as a single commit on the repository's default branch. Files already in the repository are kept: a push adds and updates, and never removes anything.

Updated · By the Anticode team

Two GitHub permissions, kept apart

Signing in to Anticode with GitHub only proves who you are. It never asks for access to your code. Pushing needs more, so it's a second, deliberate step: Connect GitHub sends you to GitHub to approve an OAuth grant with the repo scope. GitHub's scope reference describes repo as full access to public and private repositories, including reading and writing code. That's broader than a single repository, which is why Anticode keeps it out of sign-in and asks only when you want to push.

When GitHub sends you back, Anticode checks that the repo scope was actually granted (a grant without it is treated as declined), looks up your GitHub login, and stores the access token encrypted, bound to your Anticode account. It is used only for pushes you start.

Pushing a project

  1. Open the project in the builder and go to the Settings section of its console. The GitHub card appears there once Anticode's GitHub connection is configured.
  2. Choose Connect GitHub and approve the request on GitHub.
  3. Back in Settings, the card says which GitHub account is connected. Pick A new private repository or An existing repository.
  4. Type the repository: a name such as harbour-bakery (created under your own account), or owner/name for an existing repository you can push to, including one in an organisation.
  5. Press Push to GitHub. The card then shows where the project last went and when.

What gets pushed is the project's Next.js export: the page as React components, route handlers for each form, the Prisma schema and migrations, the admin area and the README. It's the same set of files as the Next.js download, sent to GitHub instead of saved as a zip.

What the commit looks like

Anticode writes the files through GitHub's Git data API in one go: it reads the tip of the default branch, builds a new tree on top of the existing one with your files inline, creates one commit whose parent is that tip, and moves the branch forward without force. The default message is "Update <project name> from Anticode".

  • Nothing is removed. Because the new tree is layered on the old one, files Anticode didn't send stay put. Your own docs/ folder or CI config survives every push.
  • Empty repositories work. If the repository has no branch yet, Anticode first commits a one-line README to start it.
  • New repositories are private and created under the connected account, with the description "<project>, built with Anticode".
  • Races are caught. If someone pushes to the branch at the same moment, the branch update is refused and you're asked to push again, rather than overwriting their commit.

Working with a team

In a Team workspace, any member who can open a project can push it, but the push always uses that member's own connected GitHub account. Anticode never shares one person's GitHub token with colleagues. If a member's account can see the repository but not push to it, the push stops with a message saying so.

Disconnecting

Disconnect GitHub on the same card deletes the stored token and asks GitHub to revoke the grant, so the access ends on GitHub's side too. Code you already pushed stays in your repositories. You can reconnect at any time; if GitHub access expires or is revoked from GitHub's own settings, the next push asks you to connect again.

Limits

  • One-way. Anticode pushes to GitHub; it doesn't read commits back. Edits made in the repository don't change the project in the builder.
  • Stale files stay too. Since nothing is deleted, a section you remove in Anticode leaves its old component file in the repository until you delete it yourself.
  • Default branch only. There's no branch picker; open a pull request from your own branch if you want review.
  • Size. A push holds up to 800 files and about 6 MB of text.
  • New repositories go under your own account. To push into an organisation, create the repository there first and push to owner/name.

Troubleshooting

"You already have a repository with that name"
Switch to An existing repository and push to it, or choose a new name.
"That repository doesn't exist, or your GitHub account can't see it"
Check the spelling of owner/name, and that the organisation has approved access for OAuth apps if it restricts them.
"Your GitHub account can't push to that repository"
You have read access only. Ask an owner for write access.
"GitHub access has expired or was revoked"
Choose Connect GitHub again.

For a gentler walk-through aimed at first-time GitHub users, see how to push a website project to GitHub. What the exported project contains is covered on the Next.js export page, and handing it to a developer in the developer handoff workflow.

Questions people ask

Does signing in with GitHub let Anticode see my code?

No. Sign-in asks for no repository access. Only Connect GitHub requests the repo scope, and only when you choose it.

Will a push overwrite changes my developer made?

It updates the files Anticode generates, so edits to those files are replaced in the new commit (they stay in history). Files Anticode doesn't generate are left alone.

Can I push to a branch other than main?

Not from Anticode. Each push goes to the repository's default branch, whatever it is called. Work on other branches in Git as usual.

Is the token stored in plain text?

No. It's encrypted at rest, bound to your account, and deleted when you disconnect.

Sources

  1. GitHub Docs: Scopes for OAuth apps, checked