Deployment site for 1hour.guide — Learn anything in 1 hour.
This repository is a thin deployment layer that combines:
- Framework: jiusanzhou/tutorial-kit (as
framework/submodule) - Content: jiusanzhou/1hour-guide-content (as
content/submodule)
1hour-guide/
├─ framework/ # tutorial-kit submodule (Next.js app)
├─ content/ # 1hour-guide-content submodule (MDX tutorials)
├─ build.sh # Cloudflare Pages build script
├─ package.json # Convenience scripts
└─ README.md
git clone --recurse-submodules https://github.com/jiusanzhou/1hour-guide.git
cd 1hour-guide
cd framework && pnpm installIf you forgot --recurse-submodules:
git submodule update --init --recursive./build.shOr step by step:
cd framework
CONTENT_DIR=../../content pnpm buildpnpm preview
# Open http://localhost:8000cd framework
CONTENT_DIR=../../content pnpm devpnpm update:content
git pushpnpm update:framework
git push- Go to Cloudflare Dashboard → Pages
- Create a new project → Connect to Git
- Select this repository
- Build settings:
| Field | Value |
|---|---|
| Production branch | main |
| Framework preset | None |
| Build command | ./build.sh |
| Build output directory | out |
| Root directory | / |
-
Environment variables (optional):
NODE_VERSION:22
-
Important: Enable Include submodules in the Git settings.
When content is updated in 1hour-guide-content:
- Update this repo's submodule:
pnpm update:content - Push to
main - Cloudflare rebuilds automatically
Or set up a GitHub Action to auto-bump submodules on content pushes (see .github/workflows/bump-content.yml — TODO).
- Cloudflare Pages → Your project → Custom domains → Set up a custom domain
- Add
1hour.guide(andwww.1hour.guideif desired) - If your domain uses Cloudflare DNS: auto-configured
- Otherwise: add CNAME
1hour-guide.pages.dev
Content: CC BY-SA 4.0 Framework: MIT