Skip to content



A detour is a branch that allows the user to dive deeper into a topic,  provide remedial learning on a topic, or explore an alternate learning style without disrupting the normal flow of the course.

Detours must be triggered by an explicit user action — that is, clicking a button. The button does not need to be present on screen by default. In fact, the primary use case has the button appearing in the incorrect feedback of a question — so only the users who do not know the content that’s being evaluated take the detour.

Detours are isolated topic blocks. They are styled slightly differently. There is no tracking of any kind and a user cannot complete a detour, only pass through them. The user cannot bookmark a page in a detour nor return to a detour once exited. There is no module title or context to the detour. Detours also have their own progress bar that has no bearing on module completion.

A course can only have a small number of detours — five is a decent maximum –and they should be less than 10 pages in length.

The idea is not to present a module’s worth of information, but to provide just enough information to allow a user who needs help to continue with the main course content; a.k.a Scaffolding.

Detours must also be exited by an explicit user action (another button click; Next will not work).

Rewarding the User

Awarding a badge for completing an advanced topic in a detour is a fun way to encourage exploration.

Detours are not Branching

Detours should never be used for old-school CPM style branching, “sequential non-linear branching” or hub pages. Using detours like this punish the user: The user cannot bookmark a detour and the system will not save their place within a detour. The progress bar and navigation is specific to the detour, not the module, so it’s not possible to show the user where they are in module context.

CPM Style Branching

CPM Style branching is possible. However, rather than breaking up a module into pieces or trying to use detours, courses should create a hub module and use modules as branches. This will allow the user to move around in the course and maintain their position, while allowing the designer to provide non-linear progression.