Upcoming change: Stages overhaul

Hey everyone!

Just wanted to pre-announce a major change to the platform that’ll ship in the coming weeks.


There are multiple cases where we’ve wanted to either (a) split up an existing stage into multiple stages, or (b) add new stages in the middle of existing ones. We’ve been unable to make these changes so far because the platform doesn’t support it.

One prime example is the last stage of Git (clone a repository) - it’s unnecessarily hard and we know how we want to split it down, but we haven’t been able to ship that change because of these limitations.

There were a bunch of questions to figure out here, such as:

  • What happens to code examples when a stage is split?
  • What happens to profile pages when a stage is split? Does a user lose progress?
  • What happens if a user’s code no longer passes stages after they’re split?

We’ve found reasonable answers to all of these questions, but they’ll require significant changes to the way stages work.


Roughly, the changes are:

  • We’ll replace numbered stages (replication-1, replication-2) etc. with stages that have random identifiers, like AX3, VC4 etc.
    • This change allows us to split stages & add new ones in the future without worrying about references going stale (especially here in the forum).
  • We’ll allow “skipping” stages
    • This change allows us to add stages which we think some people will want to do but others might not. You’re no longer “forced” to go through a strict linear order.
  • We’ll allow completing multiple stages at once
    • This allows us to make byte-sized stages without ruining the experience for users who prefer to implement multiple things at once and not follow strictly defined order.

The most disruptive of these changes is going to be the stage naming change, so we’ll get started with that first. Will post another update once we’re close to shipping the name changes!