🌐 Português (Brasil) | Español
VS Code & GitHub Copilot CLI Workshop — Build a GitHub Contribution Battle Arena
A workshop template for building a retro arcade-themed website with Astro that compares GitHub contribution graphs of two users. This is the starting point — you'll build the app step by step using GitHub Copilot.
What you'll build by the end of the workshop
The workshop supports two tracks — follow the one that matches your preferred workflow:
- VS Code track — Chat, Plan Mode, Agent Mode, background agents, and editor-native review loops
- CLI track —
copilot,@filecontext,/plan, autonomous edits,/fleet,/delegate, and/review
| Part | Title | Copilot Focus |
|---|---|---|
| 00 | Overview | Track selection and learning goals |
| 01 | Setup & Context Engineering | Instructions, permissions, and environment setup |
| 02 | Plan & Scaffold | Planning the API and page architecture |
| 03 | Build the Game | Agentic implementation and iteration |
| 04 | Design-First Theming | Visual design planning and implementation |
| 05 | Polish & Parallel Work | Parallelism, reviews, and quality passes |
| 06 | Bonus & Extensions | Open-ended feature ideas and extra Copilot experiments |
- Create your own repo first by either:
- clicking Use this template to create a new repo, or
- forking this repository.
- Choose your workshop path:
- VS Code: clone your repo and open it in VS Code.
- GitHub Copilot CLI: clone your repo locally, install
copilot, and work from your terminal.
- Follow the workshop guide
- GitHub Copilot (Pro, Business, or Enterprise)
- Git
- Node.js
- VS Code v1.107+
- GitHub Copilot extension signed in
- GitHub Copilot CLI (
copilot) - Node.js 22+ if you plan to install the CLI via
npm install -g @github/copilot - Or Homebrew / WinGet if you prefer a native package manager install
- Framework: Astro v6
- Runtime: Node.js with @astrojs/node adapter
- Font: Press Start 2P (retro gaming font)
- API: GitHub's contribution graph API
The workflow in .github/workflows/deploy.yml currently deploys static workshop/docs content from docs/ and workshop/ to GitHub Pages. It does not build or deploy the Astro app from src/.
GitHub Pages is static hosting, so the Astro app should use static output.
- Change
outputinastro.config.mjsfromservertostatic. - Remove the Node adapter (
@astrojs/node) fromastro.config.mjsandpackage.json. - Update the GitHub Actions workflow to run
npm ciandnpm run build, then uploaddist/as the Pages artifact. - If deploying to a project page (
https://<user>.github.io/<repo>/), setsiteandbaseinastro.config.mjs.
If you plan to keep API routes running in production, use a server platform instead of GitHub Pages (for example, Vercel, Netlify, or a Node host).
MIT