Skip to content

๐ŸŽ‰ Bonus & Extensions

Youโ€™ve built a fully functional GitHub Battle app โ€” and set up custom agents, skills, and MCP servers along the way. Now itโ€™s time to push further with open-ended challenges. Lean on everything from Parts 6โ€“8 as you go.

Use Copilot CLI for all of these โ€” mix @file context, /plan, /agent, /skills, /mcp, normal mode, and /review as needed.


After both contribution graphs load, compare the totals and display a dynamic winner announcement.

What to build:

  • Compare total contributions for both users
  • Show โ€๐Ÿ† {username} WINS! ๐Ÿ†โ€ with a celebratory style if thereโ€™s a clear winner
  • Show โ€๐Ÿค ITโ€™S A TIE! ๐Ÿคโ€ if contributions are equal
  • Add animation or confetti for extra flair

Prompt suggestion:

After both usersโ€™ contribution data loads, compare total contributions and display a winner banner. Show โ€๐Ÿ† {username} WINS! ๐Ÿ†โ€ if one user has more contributions, or โ€๐Ÿค ITโ€™S A TIE! ๐Ÿคโ€ if equal. Make it visually exciting with CSS animations.


Calculate and display each userโ€™s longest consecutive contribution streak.

What to build:

  • Analyze the contribution data day by day
  • Find the longest run of consecutive days with at least one contribution
  • Display the streak count prominently for each user
  • Highlight who has the longer streak

Prompt suggestion:

Add a streak counter feature that analyzes each userโ€™s contribution data to find their longest consecutive contribution streak. Display โ€๐Ÿ”ฅ Longest Streak: X daysโ€ for each user below their contribution graph.


Persist battle results so users can see their previous matchups.

What to build:

  • Save each battle result to localStorage (usernames, totals, winner, timestamp)
  • Add a โ€œRecent Battlesโ€ section below the main battle area
  • Show the last 5โ€“10 battles with results
  • Add a โ€œClear Historyโ€ button

Prompt suggestion:

Save battle results to localStorage after each comparison. Add a โ€œRecent Battlesโ€ section that displays the last 10 battles with usernames, contribution totals, the winner, and when the battle happened. Include a โ€œClear Historyโ€ button.


Add retro arcade sound effects using the Web Audio API โ€” no external files needed.

What to build:

  • Coin insert sound when the โ€œBattle!โ€ button is clicked
  • Power up sound when results load successfully
  • Explosion sound when an error occurs (user not found, API failure)
  • A mute/unmute toggle button

Prompt suggestion:

Add retro arcade sound effects using the Web Audio API (no audio files). Play a coin insert sound on battle start, a power-up sound when results load, and an explosion sound on errors. Generate the sounds programmatically with oscillators and gain nodes. Include a mute toggle.


Build suspense with a dramatic countdown before revealing results.

What to build:

  • When โ€œBattle!โ€ is clicked, show a full-screen overlay
  • Animate: โ€œ3โ€ฆโ€ โ†’ โ€œ2โ€ฆโ€ โ†’ โ€œ1โ€ฆโ€ โ†’ โ€โšก FIGHT! โšกโ€
  • Then reveal the contribution graphs with a dramatic entrance
  • Use CSS animations or JavaScript timing

Prompt suggestion:

Add an animated battle sequence when the user clicks โ€œBattle!โ€. Show a countdown overlay: โ€œ3โ€ฆโ€ then โ€œ2โ€ฆโ€ then โ€œ1โ€ฆโ€ then โ€โšก FIGHT! โšกโ€ with each step lasting about 1 second. After the countdown, reveal the results with a slide-in animation.


Add a color scale legend that matches the contribution graphโ€™s color palette.

What to build:

  • A horizontal legend showing contribution intensity levels
  • Labels from โ€œLessโ€ to โ€œMoreโ€
  • Use the actual color palette from the GitHub contribution API response
  • Position it near the contribution graphs

Prompt suggestion:

Add a contribution legend below the graphs showing the color scale from the APIโ€™s color palette. Display a row of colored squares ranging from โ€œLessโ€ (lightest) to โ€œMoreโ€ (darkest), matching the actual contribution level colors returned by the API.


Let users share their battle results with a single click.

What to build:

  • A โ€๐Ÿ“‹ Share Resultsโ€ button that appears after a battle
  • Copies a formatted text summary to the clipboard
  • Include usernames, contribution totals, and the winner
  • Show a brief โ€œCopied!โ€ confirmation message

Prompt suggestion:

Add a โ€๐Ÿ“‹ Share Resultsโ€ button that copies a formatted battle summary to the clipboard. The summary should include both usernames, their contribution totals, and who won. Use the Clipboard API and show a brief โ€œCopied to clipboard!โ€ confirmation.


If you want to explore more of Copilot CLIโ€™s feature set after the core workshop:

  • Use copilot -p "Write a conventional commit message for the current git diff" to generate a one-shot, response-only answer you can paste into Git.
  • Run /share file to save your session as Markdown for later reference.
  • Use /session and /session plan to inspect how the CLI is tracking your current work.
  • Try /refine to turn a rough, stream-of-consciousness prompt into a clear one before you send it.
  • Explore /chronicle for session history and insights across your work.

Youโ€™ve completed the Mona Mayhem: GitHub Battle workshop! Hereโ€™s what you accomplished:

  • โœ… A complete multi-page web application from a design specification
  • โœ… A landing page with retro arcade theming and responsive layout
  • โœ… A battle arena that fetches and compares real GitHub contribution data
  • โœ… Interactive contribution graphs with color-coded activity levels
  • โœ… Error handling, loading states, and accessibility improvements
  • โœ… Responsive design that works across devices
SkillWhat You Practiced
Context EngineeringGiving Copilot the right files, instructions, and constraints
PlanningGenerating and refining implementation plans before coding
Agentic CodingDelegating multi-file, multi-step work to Copilot
Design IterationStarting from a visual direction and refining toward a polished result
Review DisciplineInspecting AI-generated changes before you commit them
Custom Agents & InstructionsBuilding specialized personas and always-on, path-scoped project rules
SkillsPackaging reusable expertise Copilot loads automatically
MCP ServersConnecting Copilot to GitHub, a real browser, and live documentation

Thanks for joining this workshop! Youโ€™ve experienced how GitHub Copilot can accelerate every phase of development โ€” from planning and design to implementation and polish. The techniques you practiced here apply to any project, any framework, and any scale. Now go build something amazing! ๐Ÿš€

Reset all workshop progress?

This clears completed lessons and checked task items stored in this browser. This action cannot be undone.