github-pages
GitHub Pages static site hosting - setup, configuration, custom domains, Jekyll, and deployment
11 stars
byenuno
Best use case
github-pages is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
GitHub Pages static site hosting - setup, configuration, custom domains, Jekyll, and deployment
Teams using github-pages should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
$curl -o ~/.claude/skills/github-pages/SKILL.md --create-dirs "https://raw.githubusercontent.com/enuno/claude-command-and-control/main/skills/github-pages/SKILL.md"
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/github-pages/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How github-pages Compares
| Feature / Agent | github-pages | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
GitHub Pages static site hosting - setup, configuration, custom domains, Jekyll, and deployment
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# GitHub Pages Skill
Use when working with GitHub Pages static site hosting, generated from official GitHub documentation.
## When to Use This Skill
This skill should be triggered when:
- Creating or configuring a GitHub Pages site
- Setting up custom domains for GitHub Pages
- Configuring publishing sources (branch, folder, or GitHub Actions)
- Working with Jekyll themes and plugins
- Troubleshooting GitHub Pages deployment issues
- Setting up HTTPS for GitHub Pages sites
- Understanding GitHub Pages limitations and features
## Quick Reference
### Site Types
| Type | Repository Name | URL |
|------|-----------------|-----|
| User site | `<username>.github.io` | `https://<username>.github.io` |
| Organization site | `<org>.github.io` | `https://<org>.github.io` |
| Project site | Any name | `https://<username>.github.io/<repo>` |
### Publishing Sources
1. **Branch publishing** - Deploy from a specific branch (e.g., `main`, `gh-pages`)
2. **Folder publishing** - Deploy from `/` (root) or `/docs` folder
3. **GitHub Actions** - Custom workflow for building and deploying
### Common Patterns
#### Create a GitHub Pages site
```bash
# Create repository named <username>.github.io for user site
# Or any name for project site
# Add index.html or index.md
echo "# Hello World" > index.md
git add index.md
git commit -m "Initial GitHub Pages site"
git push
```
#### Configure publishing source
1. Go to repository Settings > Pages
2. Under "Build and deployment", select source:
- "Deploy from a branch" for static files
- "GitHub Actions" for custom builds
3. Select branch and folder if using branch deployment
#### Set up custom domain
```bash
# Add CNAME file to repository root
echo "example.com" > CNAME
git add CNAME && git commit -m "Add custom domain" && git push
```
DNS Configuration:
- **Apex domain** (example.com): Add A records pointing to GitHub IPs
- **Subdomain** (www.example.com): Add CNAME record pointing to `<username>.github.io`
GitHub IP addresses for A records:
```
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
```
#### Jekyll configuration
```yaml
# _config.yml
title: My Site
description: A GitHub Pages site
theme: minima
plugins:
- jekyll-feed
- jekyll-seo-tag
```
#### Custom GitHub Actions workflow
```yaml
# .github/workflows/pages.yml
name: Deploy to GitHub Pages
on:
push:
branches: ["main"]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: |
# Your build commands here
npm run build
- uses: actions/upload-pages-artifact@v3
with:
path: ./dist
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/deploy-pages@v4
id: deployment
```
#### Disable Jekyll processing
```bash
# Add .nojekyll file for non-Jekyll static sites
touch .nojekyll
git add .nojekyll && git commit -m "Disable Jekyll" && git push
```
### Supported Static Site Generators
GitHub provides workflow templates for:
- Jekyll (default)
- Next.js
- Nuxt.js
- Gatsby
- Hugo
- Astro
- Eleventy (11ty)
- And more...
### Limitations
- No server-side languages (PHP, Ruby, Python)
- Repository size limits apply
- Bandwidth and build time limits for free tier
- Private repos require GitHub Pro/Team/Enterprise
## Reference Files
This skill includes comprehensive documentation in `references/`:
- **getting_started.md** - Site creation, publishing sources, workflows, HTTPS (5 articles)
- **custom_domains.md** - Domain setup, DNS configuration (2 articles)
- **jekyll.md** - Jekyll integration, themes, plugins (2 articles)
- **troubleshooting.md** - 404 errors and common issues (1 article)
Use `view` to read specific reference files when detailed information is needed.
## Working with This Skill
### For Beginners
Start with `references/getting_started.md` for foundational concepts on creating your first GitHub Pages site.
### For Custom Domains
See `references/custom_domains.md` for DNS configuration and HTTPS setup.
### For Jekyll Users
Check `references/jekyll.md` for theme customization and Jekyll-specific features.
### For Debugging
Review `references/troubleshooting.md` for common issues like 404 errors.
## Common Issues
### 404 Error
- Check repository visibility (must be public for free accounts)
- Verify publishing source is configured correctly
- Ensure index.html or index.md exists
- Wait up to 10 minutes for changes to propagate
### Build Failures
- Check Jekyll syntax in _config.yml
- Verify Gemfile dependencies are compatible
- Review GitHub Actions logs for errors
### Custom Domain Not Working
- Verify DNS records are correct
- Check CNAME file is in repository root
- Ensure HTTPS is enforced in repository settings
- DNS propagation can take up to 24 hours
## Notes
- This skill was generated from official GitHub documentation
- Reference files preserve the structure and examples from source docs
- Content fetched via GitHub's Article API for accuracy
- Last updated: January 2026
## Updating
To refresh this skill with updated documentation:
1. Re-run the scraper using GitHub's Article API
2. The skill will be rebuilt with the latest information
## Resources
- [GitHub Pages Documentation](https://docs.github.com/en/pages)
- [Jekyll Documentation](https://jekyllrb.com/docs/)
- [GitHub Actions for Pages](https://docs.github.com/en/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages)Related Skills
We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.