Rubber Duck Thursdays - It's time to build!

By GitHub

Share:

Key Concepts

  • Timestamp: An open-source countdown timer application built with TypeScript, designed for extensibility through themes.
  • Theme Architecture: A separation of concerns approach where themes are primarily renderers, handling visual presentation without core logic.
  • GitHub Copilot Integration: Extensive use of Copilot for code generation, documentation, and workflow automation, including custom instructions and agents.
  • GitHub Actions & Automation: Utilizing GitHub Actions for CI/CD, issue management, and automated tasks like theme preview generation.
  • Moscow Prioritization: Employing the Must, Should, Could method for defining requirements and guiding development with Copilot.
  • Playwright Testing: Leveraging Playwright for comprehensive unit and end-to-end testing, including visual regression testing for themes.
  • Accessibility: A core design principle, with efforts to ensure the application is accessible to a wide range of users.
  • Separation of Concerns: A key architectural principle applied throughout the project, particularly in the theme system and core application logic.

Rubber Duck Thursdays - January 4th, 2026 Summary

Introduction & Context (0:00 - 2:30)

The stream began with greetings for the new year (2026) and a reminder of the informal, community-focused nature of “Rubber Duck Thursdays.” The host, Chris Abdul, acknowledged the winter weather conditions reported by viewers globally (UK, Germany, Canada, Brazil, etc.) and encouraged respectful interaction adhering to GitHub’s code of conduct. He briefly touched on a new loading animation introduced recently. The primary focus of the session was to showcase a project built over the break and to continue development live.

Project Overview: Timestamp (2:30 - 7:30)

Chris introduced “Timestamp,” an open-source countdown timer application (https://gh.io/timestamp). The project was designed to be highly extensible through theming, offering light, dark, and system themes, as well as custom themes like a contribution graph and a fireworks celebration. Key features demonstrated included:

  • Multiple Themes: Switching between pre-built themes (contribution graph, fireworks).
  • Customizable Text: The countdown text is configurable (e.g., "Happy New Year," "Product Launch").
  • World Clock Functionality: Integration with a world map allowing users to set timers for different time zones.
  • Accessibility Focus: The application was built with accessibility in mind, though some regressions were encountered and addressed during development.

Technical Architecture & Implementation (7:30 - 22:00)

The application is built using vanilla TypeScript without a major framework, a deliberate choice to explore architectural principles. Key technical details included:

  • Tech Stack: TypeScript, Vite, Playwright, SunCalc, Octicons, Natural Earth data for the world map.
  • Theme System: Themes are designed as renderers, separating visual presentation from core logic.
  • Testing: Extensive testing with approximately 2500 unit tests and 300 end-to-end Playwright tests.
  • SunCalc Integration: Utilized for accurate sunrise/sunset calculations for the world clock feature.
  • Open Source Dependencies: Leveraging open-source projects like Octicons (GitHub’s icon set) and Fireworks.js.
  • GitHub Integration: The application’s footer displays the open-source dependencies used.

GitHub Copilot & Workflow (22:00 - 38:00)

A significant portion of the stream focused on the extensive use of GitHub Copilot throughout the development process. Chris detailed how he leveraged Copilot with:

  • Custom Instructions: Defining global standards for code style, documentation, and testing.
  • Custom Agents: Creating specialized agents (e.g., code quality, planning) with specific roles and responsibilities.
  • Prompt Files: Utilizing prompt files to guide Copilot’s behavior and ensure consistency.
  • Moscow Prioritization: Employing the Must, Should, Could method to clarify requirements for Copilot.
  • Workflow Automation: Using Copilot to automate tasks like updating GitHub Action workflows and ensuring adherence to best practices.
  • Documentation Standards: Implementing a single source of truth for documentation standards, enforced through Copilot instructions.

Contribution & Future Development (38:00 - 48:00)

Chris encouraged community contributions and outlined the process for creating new themes:

  • Theme Creation Script: A CLI script (npm run theme create <theme_name>) scaffolds a new theme with necessary files and configurations.
  • Theme Preview Generation: Playwright is used to automatically generate previews for new themes in light and dark modes.
  • Contribution Guide: A detailed contributing guide is available in the repository.
  • Future Focus: The next stream will focus on the GitHub Actions and automation aspects of the project, including issue management and CI/CD pipelines.
  • Performance Optimization: Acknowledged potential performance issues with the contribution graph theme and invited UI experts to contribute optimizations.

GitHub Actions & Infrastructure (48:00 - 55:00)

Chris highlighted the robust infrastructure built around the project using GitHub Actions:

  • CI/CD Pipeline: Automated build, test, and deployment processes.
  • Issue Management: Automated label assignment and form updates based on issue type and theme.
  • Security Features: Enabled advanced security features like Dependabot, secret scanning, and code scanning (OQL).
  • Dependabot: Weekly updates for dependencies.
  • Advanced Security: Enabled for vulnerability scanning and code analysis.

Conclusion & Next Steps (55:00 - 60:00)

The stream concluded with a recap of the project, a call for community contributions, and an announcement that the next stream would be on January 22nd, focusing on GitHub Actions and automation. Chris thanked the viewers for their engagement and encouraged them to continue building and learning. He emphasized the importance of a healthy and productive new year.

Notable Quotes:

  • “We build things, we break things, and we have fun along the way.” – Chris Abdul, describing the spirit of Rubber Duck Thursdays.
  • “It was surprisingly a lot of work… trying to bring it together is what took a lot of the time.” – Chris Abdul, reflecting on the challenges of unifying different theme implementations.
  • “The joy of open source is we start something, we kind of build and iterate and something together.” – Chris Abdul, emphasizing the collaborative nature of open-source development.

Data & Statistics:

  • Approximately 2500 unit tests and 300 end-to-end Playwright tests.
  • 18 themes currently registered in the application.
  • Numerous viewers from around the world (UK, Germany, Canada, Brazil, India, Spain, etc.).

Chat with this Video

AI-Powered

Hi! I can answer questions about this video "Rubber Duck Thursdays - It's time to build!". What would you like to know?

Chat is based on the transcript of this video and may not be 100% accurate.

Related Videos

Ready to summarize another video?

Summarize YouTube Video