todo-апп != CMS. Да, вам нужна админка.
Общая схема: в админке есть данные о проектах, клиент их грузит через API и рендерит (можно и SSR). Делаете роут для админки, в которой нужно авторизоваться и там же редактировать контент, который (также, как и с получением, хотя в этом случае SSR кажется более лаконичным, на мой взгляд) изменяется в бд.
Лучше всего забить да взять и сверстать статический ленд (можно и на React, но все та же статика) и разместить да хоть на том же github.io.