Sites 07 / 17
GitHub
Keep your site in a repository you own. Every change lands as a commit, and connecting GitHub unlocks a free Premium build.
Your site is real source — Blade pages, components, a stylesheet, your
images. Connect it to GitHub and it stays in a repository you own: every
change you or the AI make becomes a commit on your branch, git log tells
the story, and nothing is locked inside DevDojo.
Connect
Open your site's settings (/sites/{slug}) and find the GitHub card.
- Connect GitHub. You'll authorize the DevDojo GitHub App and choose which accounts and repositories it may reach. You only do this once.
- Link a repository. Either create a new private repository (named after your site, under any account the App is installed on) or pick one you already have.
- Pick a branch.
mainby default. Prefer to review changes before they reachmain? Use a branch such asdevdojoand open pull requests from it on GitHub.
The first sync pushes every file of the site. From then on the card shows the repository, the branch, whether the last sync landed, and the latest commit.
What becomes a commit
Every burst of changes becomes one commit about twenty seconds after the last save:
- An AI edit in the builder — the commit's first line is your prompt
(
AI: make the hero darker and add a testimonials row). - A save in the code editor —
Update resources/views/pages/index.blade.php, orUpdate 4 fileswith the paths listed in the body. - A push from the CLI or a source import.
Only the files that changed are uploaded, so a one-line edit is a one-blob commit. Files you add on GitHub that the site doesn't manage (a README, a workflow) are left alone.
What the repository looks like
The first commit lays out the repository like a project you'd start by hand:
README.md— what the site is, its pages and their URLs, how to pull and push it with the CLI, how to deploy it. Yours to edit from then on.netlify.tomlandvercel.json— a static deploy ofdist/with no build step. Point Netlify or Vercel at the repository and it's live..github/workflows/pages.yml— publishesdist/to GitHub Pages on every push (turn Pages on once: Settings → Pages → Source: GitHub Actions)..gitignore— editor droppings.
dist/ is the published site as static HTML — the same export the ZIP
download is made of — refreshed on every sync while the site is published.
So the repository is not only your source: it is a deployable copy of the
live site, anywhere that serves a folder. Unpublish and dist/ is removed on
the next sync; the source stays.
Commits are authored as you — your GitHub name and your account's no-reply address — so they carry your avatar in the history.
The builder
Beside Publish in the builder you'll see the GitHub mark: muted ("Connect") when the site isn't linked, the repository name with a dot when it is — green in sync, amber while a commit is on its way, red if the last sync failed. Click it: a popover shows the newest commits on your branch (message, when, who), Sync now, and the links to the repository and the card. From the card you can also open the repository in a GitHub Codespace.
A free Premium build
Developers who connect GitHub unlock one free Premium build — the full agent-built site, no credits spent — the moment the account connects. It appears on the Quick/Premium chooser as 1 free Premium build, and a card in the bottom-right corner of the dashboard carries the offer (Connect GitHub) until it's earned. After your first quick build, the editor also shows you what a Premium build adds and offers the same door. The offer is for established GitHub accounts (at least a month old, with a public repository or a follower), and it is granted once. No site or repository is needed first — linking comes whenever you're ready.
Unlinking
Unlink repository on the card stops the syncing. The repository, and every commit in it, stays on GitHub.
App Mode sites are not synced yet — their source lives in the app workspace. Use Export source to keep a copy.