Skip to main content
Type Challenges welcomes contributions from the community! Whether you’re sharing solutions, proposing new challenges, or helping others, there are many ways to get involved.

Ways to Contribute

There are several ways you can contribute to this project:

Share Your Solutions

Solved a challenge? Share your solution with the community! Your approach might help others understand different ways to solve type-level problems. Learn more about sharing solutions →

Propose New Challenges

Have an interesting type problem from a real-world project? Turn it into a challenge! The community would love to tackle it. Learn how to create a challenge →

Add Test Cases

Help make existing challenges more robust by adding additional test cases that cover edge cases or alternative scenarios.

Provide Learning Resources

Share articles, videos, or explanations of how to solve challenges. Help others learn type-level programming concepts.

Share Real-World Problems

Encountered a tricky type problem at work? Share it with the community - even if you don’t have a solution yet. The community can help you solve it, and it might become a new challenge.

Help Others

Participate in discussions, answer questions, and help fellow developers understand TypeScript’s type system better.

Contribute to Infrastructure

Interested in improving the project’s tooling and infrastructure? Check out the TODOs.md for current needs.

Getting Started

To contribute, simply open an issue on GitHub and choose the corresponding template:
  • New Challenge - Propose a new challenge
  • Answer - Share your solution to a challenge
  • Help - Ask for help or guidance
  • Discussion - Start a discussion about type-level programming
  • Bug - Report a bug or issue

Community Guidelines

  • Be respectful and constructive - We’re all here to learn
  • Search before posting - Someone might have already shared a similar solution
  • Provide context - When sharing problems, include enough detail for others to understand
  • Share your thinking - Explain your approach, not just the code
  • Engage with feedback - Be open to suggestions and alternative approaches

Join the Community

Connect with other type challenge enthusiasts:
All challenges work in TypeScript’s strict mode. Make sure your solutions and test cases account for strict type checking.
Ready to contribute? Pick a way to get involved and help make Type Challenges even better!

Build docs developers (and LLMs) love