Сперва описывай проект, который собираешься делать, все его задачи и функционал. И всегда исходи от того, для кого ты делаешь - от пользователя твоего решения.
Далее смотришь, если большая часть "важного и очень-очень нужного" уже реализована в какой-либо CMS - берешь и используешь CMS, все остальное допишешь по мере необходимости. Если наоборот получается что в CMS много лишнего для твоего проекта и почти или совсем нет того что жизненно необходимо для проекта - берешь фреймворк.
Любой проект на чем-то основывается - система биллинга для работы с данными в виде цифр и важны математические функции. Википедии важны тексты и взаимодействие авторов с контентом, важна история изменения страниц и так далее.