From hugo
Sets up Hugo static sites with Tailwind v4, Sveltia/Tina headless CMS, Cloudflare deployment. Fixes theme installs, frontmatter, baseURL, version errors for blogs/docs sites.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hugo:hugoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Status**: Production Ready | **Last Updated**: 2025-11-21
references/advanced-topics.mdreferences/cms-integration.mdreferences/common-patterns.mdreferences/error-catalog.mdreferences/setup-guide.mdreferences/tailwind-integration.mdtemplates/hugo-blog/README.mdtemplates/hugo-blog/archetypes/default.mdtemplates/hugo-blog/content/posts/first-post.mdtemplates/hugo-blog/hugo.yamltemplates/hugo-blog/static/admin/config.ymltemplates/hugo-blog/static/admin/index.htmltemplates/hugo-blog/themes/PaperMod/LICENSEtemplates/hugo-blog/themes/PaperMod/README.mdtemplates/hugo-blog/themes/PaperMod/assets/css/common/404.csstemplates/hugo-blog/themes/PaperMod/assets/css/common/archive.csstemplates/hugo-blog/themes/PaperMod/assets/css/common/footer.csstemplates/hugo-blog/themes/PaperMod/assets/css/common/header.csstemplates/hugo-blog/themes/PaperMod/assets/css/common/main.csstemplates/hugo-blog/themes/PaperMod/assets/css/common/post-entry.cssStatus: Production Ready | Last Updated: 2025-11-21 Latest Version: [email protected]+extended | Build Speed: <100ms
CRITICAL: Always install Hugo Extended edition (not Standard) unless you're certain you don't need SCSS/Sass support. Most themes require Extended.
# macOS
brew install hugo
# Linux (Ubuntu/Debian)
wget https://github.com/gohugoio/hugo/releases/download/v0.152.2/hugo_extended_0.152.2_linux-amd64.deb
sudo dpkg -i hugo_extended_0.152.2_linux-amd64.deb
# Verify Extended edition
hugo version # Should show "+extended"
Why this matters:
# Use YAML format (not TOML) for better CMS compatibility
hugo new site my-blog --format yaml
# Initialize Git
cd my-blog
git init
# Add PaperMod theme (recommended for blogs)
git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
CRITICAL:
--format yaml to create hugo.yaml (not hugo.toml)--recursive flag when cloning later# hugo.yaml - Minimal working configuration
baseURL: "https://example.com/"
title: "My Hugo Blog"
theme: "PaperMod"
languageCode: "en-us"
enableRobotsTXT: true
params:
ShowReadingTime: true
ShowShareButtons: true
defaultTheme: auto # Supports dark/light/auto
# Create first post
hugo new content posts/first-post.md
# Run development server (with live reload)
hugo server
# Build for production
hugo --minify
# Output is in public/ directory
✅ Install Hugo Extended (not Standard) - required for SCSS/Sass support in themes
✅ Use YAML configuration (--format yaml) - better CMS compatibility than TOML
✅ Add themes as Git submodules - easier updates and version control
✅ Set correct baseURL - prevents broken asset links on deployment
✅ Pin Hugo version in CI/CD - prevents version mismatch errors between local and deployment
✅ Add public/ to .gitignore - build output should not be committed
✅ Use draft: false - drafts don't appear in production builds
✅ Clone with --recursive flag - ensures theme submodules are fetched
✅ Use relative paths for images - /images/photo.jpg not ../images/photo.jpg
✅ Test build before deploying - catch errors locally with hugo --minify
❌ Don't install Hugo Standard - most themes require Extended edition
❌ Don't use TOML config with Sveltia CMS - has known bugs, use YAML instead
❌ Don't commit public/ directory - it's generated output, not source code
❌ Don't use different Hugo versions - local vs CI/CD version mismatch causes errors
❌ Don't forget submodules: recursive - themes won't load in CI/CD
❌ Don't hardcode production URLs - use -b $CF_PAGES_URL or environment configs
❌ Don't push resources/_gen/ - generated assets, should be in .gitignore
❌ Don't use future dates carelessly - posts won't publish until date passes
❌ Don't skip .hugo_build.lock - add to .gitignore
❌ Don't mix YAML and TOML - stick to one format throughout project
This skill prevents 15 documented errors. Here are the top 5:
Error: Error: SCSS support not enabled
Prevention: Always install Hugo Extended edition. Verify with hugo version | grep extended
See: references/error-catalog.md for full error list
Error: Broken CSS/JS/image links, 404s on all assets
Prevention: Use environment-specific configs or build flag: hugo -b $CF_PAGES_URL
See: references/error-catalog.md #2
Error: Error: module "PaperMod" not found, blank site
Prevention: Set theme: "PaperMod" in hugo.yaml and run git submodule update --init --recursive
See: references/error-catalog.md #6
Error: Features work locally but fail in CI/CD, or vice versa
Prevention: Pin Hugo version everywhere (CI/CD, local docs, package.json if using npm)
See: references/error-catalog.md #4
Error: Theme works locally but not in CI/CD, blank site on deployment
Prevention: Add submodules: recursive to checkout action in GitHub Actions
See: references/error-catalog.md #11
For complete error catalog (all 15 errors): See references/error-catalog.md
References (references/):
setup-guide.md - Complete Hugo setup walkthrough (installation, themes, deployment)error-catalog.md - All 15 common Hugo errors with solutions and preventioncommon-patterns.md - Best practices and patterns (taxonomies, content organization, multilingual)cms-integration.md - Sveltia CMS integration guide with configurationtailwind-integration.md - Tailwind CSS integration with Hugo Pipesadvanced-topics.md - Advanced Hugo features (modules, data files, internationalization)Complete, production-ready Hugo projects ready to copy:
templates/hugo-blog/ - Blog with PaperMod theme
templates/hugo-docs/ - Documentation site with Hugo Book theme
templates/hugo-landing/ - Landing page with custom layouts
templates/minimal-starter/ - Bare-bones starter
Quick start with template:
cp -r templates/hugo-blog/ my-new-blog/
cd my-new-blog
git submodule update --init --recursive
hugo server
Detailed guides loaded when needed:
references/setup-guide.md - Complete 7-step setup process
references/cms-integration.md - Headless CMS integration
references/tailwind-integration.md - Tailwind CSS v4 integration
references/common-patterns.md - 7 common project patterns
references/advanced-topics.md - Advanced Hugo features
references/error-catalog.md - All 15 documented errors
Template: templates/hugo-blog/
Theme: PaperMod
Time to deploy: 10 minutes
Features: Search, tags, dark mode, RSS, Sveltia CMS
cp -r templates/hugo-blog/ my-blog/
cd my-blog
git submodule update --init --recursive
hugo new content posts/first-post.md
hugo server
See references/common-patterns.md → Pattern 1
Template: templates/hugo-docs/
Theme: Hugo Book
Time to deploy: 10 minutes
Features: Nested navigation, search, breadcrumbs, multi-language
cp -r templates/hugo-docs/ docs-site/
cd docs-site
git submodule update --init --recursive
hugo new content docs/getting-started/installation.md
hugo server
See references/common-patterns.md → Pattern 2
Template: templates/hugo-landing/
Theme: None (custom layouts)
Time to deploy: 15 minutes
Features: Hero, features, testimonials, CTA, contact form
cp -r templates/hugo-landing/ landing/
cd landing
hugo server
See references/common-patterns.md → Pattern 3
Template: Start with templates/minimal-starter/
Integration: Follow references/tailwind-integration.md
Time to setup: 30 minutes
Features: Custom design, utility-first CSS, dark mode
cp -r templates/minimal-starter/ tailwind-blog/
cd tailwind-blog
# Follow references/tailwind-integration.md for setup
See references/tailwind-integration.md → Quick Start
Template: templates/hugo-docs/
Pattern: Multilingual
Time to setup: 20 minutes
Features: Language switcher, translated content, per-language menus
See references/common-patterns.md → Pattern 4
1. Create wrangler.jsonc:
{
"name": "my-hugo-site",
"compatibility_date": "2025-01-29",
"assets": {
"directory": "./public",
"html_handling": "auto-trailing-slash",
"not_found_handling": "404-page"
}
}
2. Deploy:
hugo --minify
bunx wrangler deploy
For complete deployment guide: See references/setup-guide.md → Step 7
Load references/setup-guide.md when:
Load references/cms-integration.md when:
Load references/tailwind-integration.md when:
Load references/common-patterns.md when:
Load references/advanced-topics.md when:
Load references/error-catalog.md when:
Required:
Optional (for deployment):
Optional (for CMS):
Hugo: v0.152.2+extended (October 24, 2025) PaperMod: Latest (via Git submodule) Sveltia CMS: Latest (via CDN) Wrangler: v4.37.1+ (v4.45.3 available)
This skill is based on live testing:
Use this checklist to verify your setup:
hugo version shows "+extended")--format yaml (hugo.yaml exists)baseURL configured correctly in hugo.yaml.gitignore includes public/ and resources/_gen/hugo server)hugo --minify)Questions? Issues?
references/error-catalog.md for all 15 documented errors and solutionstemplates/ directoryThis skill provides production-ready Hugo setup with zero errors. All 15 common issues are documented and prevented.
npx claudepluginhub secondsky/claude-skills --plugin hugoIntegrates Sveltia CMS, lightweight Git-backed headless CMS for static sites (Hugo, Jekyll, 11ty, Gatsby, Astro, Next.js). Use for blogs, docs, i18n, OAuth/TOML/CORS errors.
Scaffolds, customizes, and deploys static sites with SiteKit, an AI-first Swift static site generator. Use when creating a new site, picking a blueprint, writing content, or extending the pipeline.
Generates customized Docusaurus documentation websites by analyzing project content, creating intelligent structure, and iteratively building until successful. Creates git branches with clear commits.