Blog
Publishing a Post Through the CMS
The blog runs on a small, code-free editor at /admin. No developer needed for a
routine post; you’ll only need one to change the fields the editor exposes.
One-time setup (a developer does this once)
- Create a GitHub OAuth App under the repository owner’s GitHub account
(Settings → Developer settings → OAuth Apps → New OAuth App), with its
callback URL set to
https://<your-domain>/api/auth/callback. - Set
GITHUB_OAUTH_CLIENT_IDandGITHUB_OAUTH_CLIENT_SECRETas environment variables in the Cloudflare Pages project settings. - Each content editor needs write access to this GitHub repository — add them
as a collaborator (or to the relevant team) there. Logging in at
/adminauthenticates through GitHub directly, so there’s no separate invite step.
Publishing a post
- Go to
yoursite.com/adminand log in. - Click New Blog Posts.
- Fill in the fields:
- Title — shows as the page heading and in the browser tab.
- Description — used as both the search-engine snippet and the excerpt on the blog listing page, so write it as a real sentence, not a keyword list.
- Publish Date / Updated Date — control sort order and the “last updated” signal search engines use for freshness.
- Author, Tags — shown on the post and used for light grouping.
- Hero Image — optional; used as the social-share preview image if set.
- Draft — leave checked while you’re still writing. A checked draft is simply left out of the next deploy; unchecking it and publishing is what makes a post go live.
- Body — the actual post, written in the same rich-text/markdown editor.
- Click Publish (or Save to keep working on it as a draft).
Every save is a real commit to the repository, so the full history of every post is just normal git history — nothing CMS-specific to back up separately.