Source Code
Web Deploy GitHub Pages
Overview
This skill enables autonomous creation and deployment of static websites to GitHub Pages. It follows a complete workflow from project structure initialization through automatic deployment via GitHub Actions, optimized for single-page applications, portfolios, and landing pages.
Core Workflow
1. Project Initialization
Create the project structure:
bash scripts/init_project.sh <project-name>
This creates:
project-name/
โโโ index.html
โโโ styles.css
โโโ script.js
โโโ README.md
โโโ .github/
โโโ workflows/
โโโ deploy.yml
2. Development
Build the website following these principles:
- Single-page first: Optimize for one-page layouts unless multiple pages explicitly required
- Autonomous generation: Generate complete, production-ready code without placeholders
- Modern design: Use modern CSS (flexbox, grid), responsive design, clean aesthetics
- No dependencies: Pure HTML/CSS/JS when possible, CDN links if frameworks needed
Use templates from assets/templates/ as starting points:
base-html/- Minimal HTML5 boilerplateportfolio/- Portfolio/CV template with sectionslanding/- Landing page with hero and CTA
3. GitHub Repository Setup
bash scripts/deploy_github_pages.sh <project-name> <github-username>
This script:
- Initializes git repository
- Creates GitHub repository via GitHub CLI
- Configures GitHub Pages settings
- Pushes initial commit
- Triggers first deployment
4. Deployment
GitHub Actions automatically deploys on push to main branch. The workflow:
- Checks out code
- Deploys to
gh-pagesbranch - Makes site live at
https://<username>.github.io/<project-name>/
Architecture Guidelines
HTML Structure
- Semantic HTML5 elements
- Meta tags for SEO and social sharing
- Responsive viewport configuration
- Favicon and icons
CSS Design
- Mobile-first responsive design
- CSS variables for theming
- Flexbox/Grid for layouts
- Smooth transitions and animations
- Dark mode support when appropriate
JavaScript
- Vanilla JS preferred
- Progressive enhancement
- Event delegation
- No console errors
Performance
- Optimized images
- Minified assets for production
- Lazy loading where appropriate
- Fast initial load time
Quick Examples
Example 1: Portfolio CV Site
User request: "Crรฉe-moi un site portfolio CV"
Action:
- Run
init_project.sh portfolio-cv - Use
assets/templates/portfolio/as base - Generate complete HTML with sections: Hero, About, Skills, Projects, Contact
- Deploy with
deploy_github_pages.sh portfolio-cv username
Example 2: Landing Page
User request: "Fais-moi une landing page pour mon app"
Action:
- Run
init_project.sh app-landing - Use
assets/templates/landing/as base - Generate with Hero, Features, Pricing, CTA
- Deploy with
deploy_github_pages.sh app-landing username
Troubleshooting
GitHub Pages Not Deploying
- Check repository Settings โ Pages โ Source is set to
gh-pagesbranch - Verify GitHub Actions workflow ran successfully
- Check DNS propagation (can take 5-10 minutes)
Permission Errors
- Ensure
ghCLI is authenticated:gh auth status - Check repository permissions on GitHub
Build Failures
- Review Actions logs in repository
- Verify
.github/workflows/deploy.ymlsyntax - Check file paths and references
Resources
scripts/
init_project.sh- Initialize project structuredeploy_github_pages.sh- Deploy to GitHub Pages
references/
workflow.md- Detailed workflow documentationdesign-patterns.md- Design best practices
assets/
templates/base-html/- Minimal HTML5 boilerplatetemplates/portfolio/- Portfolio/CV templatetemplates/landing/- Landing page template.github/workflows/deploy.yml- GitHub Actions workflow template