KaavOps Internal Docs — Infrastructure
GitHub + Cloudflare Pages · 20-minute setup · Everything live at docs.kaavops.com
What you're building
A private internal documentation site at docs.kaavops.com where all your KaavOps working documents live — ICP, positioning, outreach scripts, content calendar, and anything else Claude generates for you. Every page shares the same design system. Editing is done by dropping files into a local folder that syncs to GitHub automatically via GitHub Desktop.
Phase 1 — Create the GitHub repository · 5 min
Go to github.com and sign up. Use your KaavOps email address. The free plan is all you need.
kaavops-internalFrom your GitHub dashboard, click the green "New" button. Fill in the form:
kaavops-internalDownload GitHub Desktop from desktop.github.com. Sign in with your GitHub account, then clone kaavops-internal to a folder on your PC — for example Documents/kaavops-internal/. This is now your local working folder.
How the local folder works
Any file you drop into that folder on your PC becomes a commit when you open GitHub Desktop and click "Commit to main" → "Push origin." Cloudflare Pages picks it up within 30 seconds. No browser drag-and-drop required.
Drop index.html, kaavops-icp-v2.html, and this file into the local kaavops-internal/ folder on your PC.
Naming convention
Keep filenames lowercase with hyphens, no spaces: outreach-scripts.html, content-calendar.html. The filename becomes the URL path — clean names matter.
Open GitHub Desktop. You'll see the new files listed as changes. Add a short commit message (e.g. "Add initial HTML pages"), click "Commit to main," then click "Push origin." Your files are now on GitHub.
Phase 2 — Connect Cloudflare Pages · 10 min
Log into your Cloudflare account (the same one managing kaavops.com). In the left sidebar, click "Workers & Pages" → "Pages" → "Create a project".
Choose "Connect to Git" → authorize Cloudflare to access your GitHub account → select the kaavops-internal repository.
/ (root)What just happened
Cloudflare Pages deployed your site to a temporary URL like kaavops-internal.pages.dev. Every push from GitHub Desktop now triggers a new deployment automatically within 30 seconds.
docs.kaavops.comIn your Pages project, go to "Custom domains" → "Set up a custom domain". Enter docs.kaavops.com.
Prefer a different subdomain?
You can use internal.kaavops.com or ops.kaavops.com. Just enter a different value in the custom domain field — the setup steps are identical.
Phase 3 — Set your homepage · 5 min
index.html is loading as the dashboardThe file named index.html loads at docs.kaavops.com with no path. If you've already dropped it into the local folder and pushed, visit the domain and confirm the dashboard appears.
From the dashboard, click through to the ICP and this setup guide. Confirm both load correctly and nav links work in both directions.
Note on file paths
Cloudflare Pages strips the .html extension automatically. So kaavops-icp-v2.html is accessible at /kaavops-icp-v2. When linking between pages in your HTML, you can use either form — both work.
Daily workflows — once the system is live
Adding a new page
kaavops-internal/ folderindex.html to add the new linkEditing existing text
<!-- EDIT --> commentsUpdating a full page
Linking pages together
What Claude handles automatically
<!-- EDIT: section name --> comments before every editable text block so you can find them fastTo keep pages in sync
When you add a new page, tell Claude "update the nav bar to include [new page name] linking to [filename]" and ask for a re-export of the pages that need updating. Drop all files into the local folder at once and push in a single commit.
Common issues
Page not updating after I pushed a change
Cloudflare Pages usually deploys within 30 seconds but can take up to 2 minutes. Hard-refresh your browser (Cmd+Shift+R on Mac, Ctrl+Shift+R on Windows) to bypass cache. If it still hasn't updated after 5 minutes, check the deployments tab in your Cloudflare Pages project.
Custom domain showing "not secure" warning
SSL provisioning takes 2–5 minutes after adding the custom domain. If it persists after 10 minutes, go to Cloudflare Pages → Custom domains → click the domain → "Retry SSL certificate".
Links between pages are broken
Make sure filenames match exactly — including case. kaavops-icp-v2.html and KaavOps-ICP-v2.html are different files. Always use lowercase filenames with hyphens.
Build failed notification in Cloudflare
This happens if the build command field wasn't left empty. Go to Pages → your project → Settings → Builds & deployments → make sure "Build command" is blank and "Build output directory" is /.
GitHub Desktop not showing my file changes
Confirm the file was saved inside the correct local folder (the one GitHub Desktop is tracking). If the file appears under "Changes" but won't commit, check that you've entered a commit message in the summary field — it's required.