1. Authoring Challenges
  2. Planning your challenge

1. Evaluate challenge ideas

We recommend evaluating challenge ideas based on (a) how interesting they’d be to an experienced programmer, and (b) how well they fit into the “build your own x” format.

  1. Write high-level descriptions of your challenge

Try to come up with descriptions of your challenge in this format:

Check our existing challenges for examples. The goal here is to give a user a quick overview of what they’ll build and what they’ll learn.

  1. Build a challenge outline

Time to flesh things out a bit more and plan what each stage will cover.

Each stage should have:

  1. a heading
  2. a description, and
  3. one of these difficulty levels, from the perspective of a proficient programmer: a. Very Easy (< 5 minutes) b. Easy (5-10 minutes) c. Medium (30m-1h) d. sHard (> 1h)

Here are some things to keep in mind when doing this exercise:

  • Try to keep the first 2-3 stages at a relatively easy difficulty, they shouldn’t take more than 5-10 minutes for a proficient programmer. At this point learners might be new to the CodeCrafters platform, so we don’t want to overwhelm them.
  • Break down stages wherever possible. If you can split a “Medium” stage into 3 “Easy” stages, do it.
  • Ensure there’s a reliable way to “test” the stage. How would you invoke the user’s program, and how would you verify that their implementation is correct?

It’s okay if you don’t have 100% clarity on stages at the moment - you can always add/edit/remove stages later once you start building the tester program.


Once you’ve done the steps above, you’re ready to start building & testing your challenge, one stage at a time! Contact paul@codecrafters.io for help with setting this up.