Rubber Duck Thursdays - Let's build our way into 2026!
By GitHub
Rubber Duck Thursdays: New Year Countdown App - Stream Summary
Key Concepts:
- Rubber Duck Debugging: A method of problem-solving by explaining code to an inanimate object (the "rubber duck").
- Visual Studio Code (VS Code) Insiders: The nightly build of VS Code, offering access to the latest features.
- GitHub Copilot: An AI pair programmer that assists with code completion and generation.
- Custom Agents (GitHub Copilot): Specialized AI assistants within VS Code Copilot, tailored for specific tasks.
- Vite: A build tool for modern web development, focusing on speed and efficiency.
- TypeScript: A superset of JavaScript that adds static typing.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Time Zones & Localization: Adapting applications to different geographical regions and their time standards.
- Performance Optimization: Techniques to improve the speed and responsiveness of web applications.
- Test-Driven Development (TDD): A development approach where tests are written before the code itself.
1. Introduction & Stream Overview
The stream, a "Rubber Duck Thursday," focused on building a New Year countdown application as a festive project to conclude the year's streams. The host encouraged viewers to build alongside, work on personal projects, or simply listen as a virtual co-worker. The goal was to create a fun and visually engaging countdown experience, potentially incorporating time zone features.
2. Open Source Contribution Question & Initial Setup
A viewer asked about starting open-source contributions. The host advised starting small – contributing to documentation, fixing bugs, or triaging issues – emphasizing that contributions aren't limited to code. They recommended searching GitHub for "good first issue" labels and finding projects aligned with personal passions, and engaging with project maintainers.
The project was initialized using Vite, TypeScript, and Tailwind CSS (version 4) with a dark theme and a centered layout. The initial prompt specified a countdown timer with a customizable target date (defaulting to January 1st, 2026), large digits, bold labels, and subtle animations.
3. Git Initialization & Workspace Configuration
The project was initialized with Git, utilizing a .gitignore file to exclude unnecessary files (like node_modules). The host used GitHub Copilot to create a new workspace, which automatically generated a project structure and initial files.
4. Time Zone Integration & Planning
Recognizing the global audience, the host decided to enhance the countdown app with time zone support. A new chat session was started to clear context for Copilot. A prompt was created to add an interactive time zone selector and a "time travel" theme, potentially involving a world map.
The host leveraged Copilot's "Plan" agent to brainstorm and refine the requirements, prompting questions about UI design choices (dial vs. map), mobile responsiveness, and celebration displays. The agent asked clarifying questions, such as whether to prioritize a circular dial or a world map for time zone selection.
5. Custom Agent Implementation & Workflow
The host introduced a custom agent, "UI Performance Specialist," designed to provide guidance on optimizing the app's performance. They explained the concept of custom agents as specialized helpers within Copilot, and demonstrated how to configure them with specific roles, boundaries, and workflows. The agent's configuration file was reviewed, highlighting sections for overview, role boundaries, and implementation details. The host also mentioned the ability to define the tools available to the agent (e.g., web fetch, MCP server).
6. Implementation & Testing – Countdown Logic & Time Zones
Copilot began implementing the time zone functionality, creating utility files, tests, and components. The initial tests failed, revealing a logic error related to handling time zones that had already passed midnight. The host addressed this issue, emphasizing the importance of considering edge cases.
The tests were updated and passed, and the app was run. The basic countdown functionality was working, but the world map implementation was incomplete.
7. Fireworks Theme & Query Parameter Override
The host introduced a new feature: a fireworks theme that intensifies as midnight approaches. They used the fireworks.js library and prompted Copilot to add a dynamic fireworks display based on the time remaining. A query parameter override was added to allow manual setting of the countdown time for testing purposes.
Copilot generated code to implement the fireworks theme, including starfield backgrounds, city skylines, and dynamic particle effects. Tests were written to verify the functionality, and the host addressed a bug where the query parameter override was not correctly updating the countdown.
8. Performance Considerations & Final Touches
The host discussed performance optimization, particularly regarding particle counts and animation effects. They used the "UI Performance Specialist" agent to identify potential bottlenecks and suggest improvements.
The final touches included adding a toggle for the starfield, integrating the fireworks theme, and addressing minor bugs.
9. Showcase of Another Project & Stream Conclusion
The host briefly showcased another countdown timer project they had built earlier, featuring a contribution graph-inspired visual style. They thanked viewers for participating and announced that this was the last "Rubber Duck Thursday" stream of the year, with streams resuming in January 2026.
Data & Statistics:
- Tailwind CSS version 4 was used.
- The initial countdown target was set to January 1st, 2026.
- The host mentioned a previous project built using MCP (Monaco Editor Component Platform).
Notable Quotes:
- “The important thing is to just start, you know, whether that's contributing to a doc, whether that is contributing a bug fix…” – Regarding open-source contributions.
- “It’s all about passion and kind of giving back to the community, right?” – Emphasizing the motivation behind open-source contributions.
- “Context is king.” – Highlighting the importance of managing context when working with AI tools like Copilot.
- “Find the thing that you enjoy, find the thing that brings you that joy, and then the languages just kind of fall into place.” – Advice on choosing a programming language.
Synthesis:
The stream demonstrated a practical application of AI-assisted development using GitHub Copilot and custom agents. The host successfully built a functional New Year countdown app, incorporating time zone support and a visually appealing fireworks theme. The process highlighted the benefits of iterative development, test-driven development, and leveraging AI tools to accelerate the coding process. The stream also emphasized the importance of community engagement and continuous learning.
Chat with this Video
AI-PoweredHi! I can answer questions about this video "Rubber Duck Thursdays - Let's build our way into 2026!". What would you like to know?