julianobarbosa/claude-code-skills/github-pages
Claude Code and agent skill by julianobarbosa/claude-code-skills
- community
Checking that the SKILL.md file is still in the repository.
Complete GitHub Pages deployment and management system. Static site hosting with Jekyll, custom domains, and GitHub Actions. USE WHEN user mentions 'github pages', 'deploy static site', 'host website on github', 'jekyll site', 'custom domain for github', OR wants to publish a website from a repository.
Install
npx vskill@latest install julianobarbosa/claude-code-skills/github-pagesSKILL.md
GitHub Pages Skill
Complete guide for deploying, configuring, and managing GitHub Pages sites.
Quick Reference
| Site Type | Repository Name | URL Pattern | |
|---|---|---|---|
| User/Org Site | <username>.github.io | https://<username>.github.io | |
| Project Site | Any repository name | https://<username>.github.io/<repo> |
Availability:
- Public repos: GitHub Free (all plans)
- Private repos: GitHub Pro, Team, Enterprise
Workflow Routing
When executing a workflow, output this notification directly:
| Workflow | Trigger | File | |
|---|---|---|---|
| QuickStart | "setup github pages", "create pages site" | workflows/QuickStart.md | |
| CustomDomain | "add custom domain", "configure domain" | workflows/CustomDomain.md | |
| JekyllSetup | "setup jekyll", "add jekyll theme" | workflows/JekyllSetup.md | |
| ActionsWorkflow | "custom build", "github actions for pages" | workflows/ActionsWorkflow.md | |
| Troubleshoot | "pages not working", "fix github pages" | workflows/Troubleshoot.md | |
| Deploy | "deploy to github pages", "publish site" | workflows/Deploy.md |
Examples
Example 1: Create a new GitHub Pages site
Example 2: Add custom domain
Example 3: Setup Jekyll theme
Example 4: Deploy with custom build
Site Types
User/Organization Site
Requirements:
- Repository name MUST be
<username>.github.io - Only ONE per account
- Publishes from default branch
Setup:
Project Site
Requirements:
- Can use any repository
- Multiple project sites allowed
- URL includes repository name
Setup:
Publishing Sources
Option 1: Deploy from Branch
Best for: Jekyll sites, simple static sites
Configuration:
- Go to Settings > Pages
- Select "Deploy from a branch"
- Choose branch (main, gh-pages, etc.)
- Choose folder:
/(root) or/docs
Behavior:
- Pushes to branch trigger automatic builds
- Jekyll processes Markdown by default
- CNAME file auto-created for custom domains
Option 2: GitHub Actions Workflow
Best for: Custom builds, non-Jekyll generators
Configuration:
- Go to Settings > Pages
- Select "GitHub Actions"
- Create workflow file in
.github/workflows/
Behavior:
- Full control over build process
- Works with Hugo, Gatsby, Next.js, etc.
- Artifacts uploaded and deployed
Jekyll Integration
Auto-Enabled Plugins
These plugins work automatically on GitHub Pages:
| Plugin | Purpose | |
|---|---|---|
| jekyll-coffeescript | CoffeeScript support | |
| jekyll-default-layout | Automatic layouts | |
| jekyll-gist | GitHub Gist embedding | |
| jekyll-github-metadata | Repository metadata | |
| jekyll-optional-front-matter | Optional YAML front matter | |
| jekyll-paginate | Pagination | |
| jekyll-readme-index | README as index | |
| jekyll-titles-from-headings | Auto-generate titles | |
| jekyll-relative-links | Convert relative links |
Supported Themes
Available without additional configuration:
- Architect
- Cayman
- Dinky
- Hacker
- Leap day
- Merlot
- Midnight
- Minima
- Minimal
- Modernist
- Slate
- Tactile
- Time machine
Usage in `_config.yml`:
Remote Themes
Use any Jekyll theme from GitHub:
Custom Domains
Domain Types
| Type | Example | DNS Record | |
|---|---|---|---|
| Apex | example.com | A or ALIAS | |
| WWW Subdomain | www.example.com | CNAME | |
| Custom Subdomain | blog.example.com | CNAME |
DNS Configuration
For Apex Domains (A Records):
For Apex Domains (AAAA Records - IPv6):
For Subdomains (CNAME Record):
Verification Commands
Usage Limits
| Resource | Limit | |
|---|---|---|
| Repository size | 1 GB (recommended) | |
| Published site size | 1 GB (maximum) | |
| Bandwidth | 100 GB/month (soft) | |
| Builds | 10/hour (soft, branch only) | |
| Deployment timeout | 10 minutes |
Restrictions:
- No server-side languages (PHP, Python, Ruby)
- No commercial transactions or e-commerce
- Must comply with GitHub Terms of Service
Security Best Practices
- Verify custom domains - Prevents domain takeover attacks
- Avoid wildcard DNS -
*.example.comcreates security risks - Enable HTTPS - Always enforce HTTPS after certificate provisioning
- Don't expose secrets - Public sites accessible even from private repos
- Update DNS promptly - If disabling site, update/remove DNS records
Common Issues & Solutions
| Issue | Solution | |
|---|---|---|
| Site not publishing | Check branch/folder settings, verify entry file exists | |
| 404 errors | Ensure index.html, index.md, or README.md at root | |
| Custom domain not working | Wait 24h for DNS propagation, verify records with dig | |
| HTTPS not available | Wait up to 1 hour after DNS verification | |
| Mixed content warnings | Change http:// to https:// in all assets | |
| Build failures | Check Actions tab for error logs |
File References
| Topic | Reference File | |
|---|---|---|
| DNS Configuration | references/DnsConfiguration.md | |
| Jekyll Configuration | references/JekyllConfiguration.md | |
| Actions Workflows | references/ActionsWorkflows.md | |
| Troubleshooting Guide | references/Troubleshooting.md | |
| Best Practices | references/BestPractices.md |
Scripts
| Script | Purpose | |
|---|---|---|
scripts/verify-dns.sh | Verify DNS configuration for custom domains | |
scripts/check-site-status.sh | Check if GitHub Pages site is live |
External Documentation
Gotchas
- GitHub Pages caches at the CDN level for ~10 minutes — recently-pushed changes may not appear immediately; check via
?nocache=$(date +%s)query param. - Custom domain requires CNAME record AND a `CNAME` file in the repo — missing either breaks HTTPS cert generation, often silently.
- Jekyll plugins must be on GitHub's whitelist —
Gemfile-only plugins fail build silently in some old configs. - Branch-vs-folder source:
gh-pagesbranch vs/docsfolder on main vs/on main — switching sources requires an explicit redeploy to take effect. - HTTPS enforcement is per-Page-property — switching from Settings UI doesn't revoke HTTP-only access immediately; old caches serve HTTP until they expire.
- Build error logs are in Actions UI, NOT in Pages settings — first-time users debug for hours in the wrong place.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/github-pages/SKILL.md
Popularity
- Repository stars
- 84
- Repository forks
- 18
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/julianobarbosa/claude-code-skills/github-pages)