- HTML 57.7%
- Shell 24.2%
- CSS 7.2%
- PowerShell 6.1%
- Makefile 4.8%
| .cursor | ||
| config | ||
| content | ||
| data | ||
| layouts | ||
| static | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| Makefile | ||
| README.md | ||
GoClaw Website
Landing page and documentation site for GoClaw.
Built with Hugo. Documentation content is sourced from the main goclaw repository via sparse checkout.
Prerequisites
- Hugo — install via your package manager (
brew install hugo,apt install hugo,pacman -S hugo, etc.) or grab a binary from https://gohugo.io/installation/. Any recent Hugo release works. - Git with sparse checkout support
Quick Start
# Build the site
make build
# Development server with live reload
make serve
# Update docs from upstream goclaw repo
make update
How It Works
goclaw repo (git.goclaw.org)
├── README.md # Main getting started content
└── docs/
├── *.md # Documentation pages
└── sidebar.yaml # Navigation structure
│
│ sparse checkout (make build)
▼
goclaw.org/goclaw/
├── README.md
└── docs/
│
│ rsync + copy
▼
goclaw.org/content/docs/
├── readme.md # From README.md
└── *.md # From docs/
goclaw.org/data/sidebar.yaml
│
│ hugo --minify
▼
goclaw.org/public/ # Static output
Documentation lives in the main goclaw repository. This repo handles:
- Website templates and styling
- Hugo configuration
- Build orchestration
Directory Structure
goclaw.org/
├── Makefile # Build orchestration
├── hugo.toml # Hugo configuration
├── .gitignore
├── content/
│ ├── _index.md # Landing page marker
│ └── docs/ # (synced, gitignored)
├── data/
│ └── sidebar.yaml # (synced, gitignored)
├── layouts/
│ ├── _default/
│ │ └── baseof.html # Base template (Bootstrap 5.3)
│ ├── index.html # Landing page template
│ ├── docs/
│ │ ├── list.html # Docs index
│ │ └── single.html # Doc page with sidebar
│ └── partials/
│ └── docs-sidebar.html
├── static/
│ └── css/
│ └── style.css # Custom styles
├── goclaw/ # Sparse clone (gitignored)
└── public/ # Build output (gitignored)
Editing Documentation
Do not edit files in content/docs/ or data/sidebar.yaml — they are synced from the goclaw repo and will be overwritten.
To edit documentation:
- Edit
README.md(root) or files indocs/in the goclaw repository - Commit and push to goclaw repo
- Run
make updatehere to pull changes
The root README.md becomes /docs/readme/ on the website.
To edit navigation structure:
- Edit
docs/sidebar.yamlin the goclaw repo - Follow same commit/push/update flow
Editing Website
Templates, styles, and Hugo config live in this repo:
- Templates:
layouts/ - Styles:
static/css/style.css - Hugo config:
hugo.toml - Build process:
Makefile
Makefile Targets
| Target | Description |
|---|---|
make build |
Sparse checkout + sync + Hugo build |
make serve |
Dev server at http://localhost:1313 |
make sync |
Sync docs from local goclaw clone |
make update |
Pull latest from goclaw repo + sync |
make deploy |
Build and push to Cloudflare Pages |
make clean |
Remove build artifacts |
make distclean |
Remove everything including goclaw clone |
Deployment
Site is deployed manually via wrangler direct upload to Cloudflare Pages
project goclaw-org.
Prerequisites
wranglerinstalled globally:npm install -g wrangler@latest- A Cloudflare API token with Account → Cloudflare Pages → Edit and
User → User Details → Read permissions, exported as
CLOUDFLARE_API_TOKEN:
Create one at https://dash.cloudflare.com/profile/api-tokens.export CLOUDFLARE_API_TOKEN="<your-token>" - Your Cloudflare account ID (visible in the dashboard sidebar or in any
Workers & Pages URL), exported as
CLOUDFLARE_ACCOUNT_ID:
This is required so wrangler doesn't try to call theexport CLOUDFLARE_ACCOUNT_ID="<your-account-id>"/membershipsendpoint (which a least-privilege Pages token can't read).
Deploy
make deploy
This runs make build (sync + Hugo) and then
wrangler pages deploy public --project-name=goclaw-org --branch=master.
To deploy a preview without affecting production, change the branch:
wrangler pages deploy public --project-name=goclaw-org --branch=preview
Stack
- Hugo (static site generator)
- Bootstrap 5.3 (CDN)
- Bootstrap Icons (CDN)
- No npm, no Node.js, no Python