What you get
When you pick "Let NookDocs host the repo for you" during project creation, we provision a private GitHub repo on your behalf and connect it to your project in a single click. No Git, no SSH keys, no GitHub App install dance.
Zero Git knowledge
The editor commits feel like a CMS. You never see a branch, a merge, or a rebase unless you want to.
Pre-installed app
Our GitHub App is already on the hosting org, so sync works the instant the repo exists — no OAuth page, no permission review.
Seeded starter
The new repo ships with nookdocs.config.json, a working navigation, and a welcome page — all flat at the base. You're viewing rendered docs within 10 seconds of project creation.
How it works
On project create, we provision a private repo at
github.com/nookdocs-projects/<your-slug>.We seed it with (a flat layout — content sits at the base, no
docs/subfolder):nookdocs.config.json— starter config that matches the project name + theme you picked.introduction.mdx— a welcome page.quickstart.mdx— a starter quickstart.logo/light.svg+logo/dark.svg— placeholder logos.
We install our GitHub App (it's already on the
nookdocs-projectsorg, so this is a no-op under the hood).A webhook fires, the sync pipeline runs, and
<your-slug>.nookdocs.sitegoes live.
New project → managed repo → webhook → sync pipeline → live site
What you can still do
Managed doesn't mean locked. You have the same Git superpowers a self-hosted repo gives you — you just don't need them.
Clone locally —
git clone git@github.com:nookdocs-projects/<your-slug>.git. Edit, commit, push. The sync pipeline runs the same way.Open pull requests — commit to a branch, open a PR, merge when ready. The editor's branch selector stays single-branch by default, but local Git works fully.
Add collaborators — we mirror your NookDocs org members to the managed repo automatically. Adding a teammate in Settings → Members grants them repo access.
Limitations
You don't own the repo — we do. If that's a blocker, use a self-hosted repo instead.
Repo ownership: the repo lives under
nookdocs-projects, not your GitHub org. For most customers this is invisible, but if your company requires docs repos under your own org, self-host.No third-party GitHub Apps — we don't let other apps install on the managed org. If you rely on a CI check or Linear/Slack integration that runs via GitHub App, you'll need self-hosted.
Deletion is permanent — when you delete a project, we delete the repo and its history. Export first if you want a copy.
Migrating off
You're not locked in. In Settings → Git, the managed repository card has a Migrate to your GitHub button that moves the project to a repo you own — instantly, no support ticket and no waiting.
Pick the destination account
The modal lists every GitHub account/org you've connected the NookDocs App to. Don't see the right one? Connect another account installs the App on a new org or personal account without leaving the modal.
Choose or create the repo
Either select an existing empty repo or create a new one (name + private/public). Non-empty existing repos are rejected so we never overwrite your code.
We copy your content over
Your docs (every file on main) are copied into the destination repo in a single commit. The project flips to self-hosted mode and starts syncing from your repo. Your site stays live the whole time.
The managed repo is archived
We archive (not delete) the old managed repo, so it stops cluttering the hosting org but stays recoverable if something looks off. Nothing breaks mid-flight.
Changed your mind later? You can come back the other way — Host on NookDocs on a self-hosted project's Git settings brings it back onto managed hosting. See self-hosted repo → Switch to managed hosting.
Branch creation
The editor's branch selector is hidden for managed repos — we enforce single-branch (main) operation to keep the Zero-Git promise honest. If you need branches, either:
Use Git locally (
git checkout -b feature/xyz; git push), then open a PR.Migrate to your own repo, where the editor exposes full branch support.
Deletion
Deleting a project deletes its managed repo. We prompt you twice — once to confirm the project delete, once to confirm the repo delete — and require you to type the project slug to proceed. There's no undo.