67miles.com
A static site with a serverless admin panel
A live multi-page site — photo wall, day counter, task tracker and a jigsaw puzzle generator — with a password-gated admin panel that commits content edits through the GitHub REST API from a Cloudflare Pages Function.
- 4 live features
- 1 Pages Function
- 0 tokens on the client
01
Problem
I wanted a personal site I could update from my phone without touching source files — and without running a server or exposing a write token to the browser.
02
What I built
- A multi-page static site with a photo wall, live day counter, task tracker and a jigsaw puzzle generator built from user-supplied images.
- A password-gated admin panel backed by a Cloudflare Pages Function that authenticates server-side and commits edits through the GitHub REST API.
03
Technical decisions
- The write token lives only in the Pages Function environment; the client never sees it.
- Content edits are Git commits, so every change is versioned and triggers a rebuild.
04
Results
Live on a custom domain with continuous deployment from GitHub to Cloudflare Pages.
05
What I'd do next
Add image optimisation to the upload path.
Built with
- JavaScript
- Cloudflare Pages Functions
- GitHub REST API