What is Advent of TypeScript?
Advent of TypeScript is TypeHero’s flagship month-long event running from December 1st through December 25th. Inspired by the advent calendar tradition, this event releases a brand new TypeScript challenge every day, creating an exciting countdown to Christmas while helping you level up your TypeScript skills.Event Format
Each day from December 1-25, a new challenge is unlocked at midnight. These challenges:- Start simple on Day 1 and progressively increase in difficulty
- Focus on TypeScript’s type system, covering topics from basic unions to advanced conditional types
- Feature fun, holiday-themed scenarios (Santa’s cookies, reindeer logistics, gift wrapping, and more)
- Include comprehensive test cases to guide your solution
- Can be solved at your own pace - challenges remain available after their unlock date
Challenge Themes
Advent of TypeScript challenges are built around festive scenarios that make learning TypeScript more engaging. For example:- Day 1: Help Santa define types for his favorite cookie flavors
- Day 25: A culminating challenge that brings together concepts from the entire month
Features
Daily Challenges
New challenges unlock each day at midnight during December. The challenge page displays:- A countdown timer to the next day’s challenge
- Visual calendar showing which days you’ve completed (marked with special indicators)
- Access to all previously unlocked challenges
Leaderboards
Compete with the TypeScript community through two types of leaderboards: Daily Leaderboards: The first 100 participants to solve each day’s challenge earn points:- 1st place: 100 points
- 2nd place: 99 points
- 3rd place: 98 points
- And so on, decreasing by one point per rank
Achievements & Badges
Earn exclusive Advent of TypeScript badges to display on your TypeHero profile:Bronze Badge
Attempt at least 1 challenge
Silver Badge
Complete 5 or more challenges
Gold Badge
Complete 15 or more challenges
Platinum Badge
Complete all 25 challenges
Community Solutions
Once you solve a challenge, you can:- View and share your solution with the community
- Browse other participants’ creative approaches
- Discuss different strategies in the comments
- Learn from the collective wisdom of the TypeScript community
Submission History
Track your progress with detailed submission history showing:- All your attempts for each challenge
- Which submissions passed or failed
- Your journey to finding the optimal solution
Past Events
Advent of TypeScript has been running since 2023, with each year bringing new challenges and improvements:2024 Event
The 2024 event featured:- A brand-new dedicated platform at adventofts.com
- Enhanced leaderboard system with prizes
- Improved challenge interface with better TypeScript support
- Community features for sharing and discussing solutions
2023 Event
The inaugural Advent of TypeScript 2023 introduced the community to this unique learning experience and featured 25 progressively challenging TypeScript problems.Event Philosophy
Advent of TypeScript is designed to be fun, educational, and inclusive. Challenges range from beginner-friendly to expert-level, ensuring there’s something for everyone regardless of TypeScript experience.
- Learning Over Competition: While leaderboards add excitement, the primary goal is skill development
- Community Engagement: Collaborate and learn from fellow TypeScript enthusiasts
- Real-World Relevance: Challenges mirror patterns you’ll encounter in production code
- Accessibility: All challenges are free and open to anyone with a TypeHero account
Tips for Success
Use the TypeScript Playground
Use the TypeScript Playground
Many participants find the TypeScript Playground helpful for experimenting with solutions. You can copy test cases there, work through the logic, then bring your solution back to the TypeHero editor.
Read Test Cases Carefully
Read Test Cases Carefully
The test cases are your guide! They show exactly what the challenge is asking for. As challenges get trickier, the tests become invaluable hints.
Join the Discord Community
Join the Discord Community
The #advent-of-typescript channel in the TypeHero Discord is the perfect place to discuss challenges, share insights, and get unstuck when you’re puzzled.
Don't Rush
Don't Rush
Challenges remain accessible even after their unlock date. There’s no pressure to solve them immediately. Take your time and enjoy the learning process!
Embrace the Difficulty
Embrace the Difficulty
Challenges ramp up quickly, and that’s by design. If a challenge feels tough, you’re not alone! Use it as an opportunity to stretch your TypeScript muscles.
Get Involved
Ready to participate? See our Participating in Events guide to get started. Have questions or want to stay updated on announcements? Join our community:Discord Community
Chat with participants and get help
GitHub
Star the project and contribute