Б
План получился примерно такой
1) на простом примере показываю зачем нужны фреймворки/шаблонизаторы вроде реакта
2) сначала пишу маппинг шаблонов на dom а потом virtual-dom/diff в ~30 строчек
3) потом в отдельном бранче показываю простую версию файберов (меняем рекурсию на цикл и разбиваем на задачи)
4) потом добавляю diff по ключам (а перед этим показываю баг связанный с отсутствием ключей или если например в ключах будет индекс)
5) потом добавляю компоненты и показываю как работает состояние/лайвциклы сначала через классы а потом через хуки
6) потом уже тема стейт-менедежров - показываю подход с иммутабельностью на примере redux а потом мутабельный подход и объяснение как работает mobx через написание его простой версии
Правда эти уроки у меня тогда заняли > 10 часов потому что лайвкодинг но теперь у меня уже есть набранный код и демки и можно просто пройтись по коммитам