October CMS. Подходит для любых сайтов любой сложности. И главное - если хотите развиваться и изучать реально хороший, качественный код - это опять же, Октобер. Пример крутого приложения на крутом фреймворке (Ларавел). Его спокойно можно изучать и быть уверенным - не прогадаешь, это просто кладезь мудрости для прогера :)
Если брать поверхностно - есть два основных способа:
1. Плагин Static Pages, плюс Blog как пример реализации разных фишек. Это для "разносторонних" страниц, то есть например, есть страница "Главная" где вообще никакой схемы данных нету, а есть набор виджетов "всего понемногу", есть страница "О нас", где надо текстик wysiwyg и список "Наши партнеры" - объекты вида <баннер + заголовок>, "Контакты" - где опять же текстик, три поля для телефона, адреса и e-mail, и пару координат lat/lng для карты, и т.д. - все это дело в реляционную схему БД заталкивать - мучение. Тогда юзаем static pages, там кстати очень похоже на MODx Revo, если кто знаком: layouts - аналог templates, syntax fields - аналог TV, сами страницы - соответственно ресурсы, partials - аналог чанков, компоненты - аналог сниппетов (не путаем со snippets самих static pages, это немного другие, очень кстати полезные, штуки)
2. Плагин Builder для быстрого создания своих кастомных плагинов с БД, моделями, отношениями, и контроллерами бэкенда чтобы этим делом управлять. Это если есть например API, где 200 стран, 100К городов, а в них 2млн мест. Всё это надо скачать и распарсить в базу, и чтобы на выходе получилось 2080200 страниц с 5 шаблонами - один для страны, один для города и допустим ещё 3 под разные типы мест в городе (отель, кафе, достопримечательность). Легко! Пилишь 3 таблицы в БД, создаёшь модельки со связями и роутинг (url'ы прям в таблицах можно хранить, не забывая про индексы) и БЭМ! 2 ляма страниц не тормозят и удобно управляются из бэкенда, для бэкенда куча виджетов - список, форма, менеджер отношений (управлять связанными объектами, умеет и один-ко-многим и много-ко-многим и т.д.). Виджеты можно и свои создавать - как обычные виджеты, так и поля формы. Накидать CRUD набор страниц для управления сущностью в бэкенде - дело 5 минут. Пример с городами и местами довольно примитивный, т.к. тупо дерево из 3х уровней, но и более сложные вещи так же пилятся и не тормозят, хоть там к каждому из 2млн мест надо прицепить ещё по 10 сущностей с полиморфизмом и прочее, и выводить десяток виджетов на их страницах - тут уж ограничение - только умение проектировать БД.
Да там расписывать можно бесконечно :)
PS: В сети встречаются вопросы и issue на гитхабе, читая которые может сложиться впечатление, что ЦМС сырая. Но! Смотрим на дату этих вопросов - меньше 2х летней давности найти сложно. Сейчас там всё "вылизано", Ларавел подтянут до 5.5 LTS, в общем красота! Да, и самое главное - нет такой задачи, которая потребовала бы куда-то там лезть в ядро и что-то править. О таких вещах можно забыть напрочь. Да там даже мультисайтовость и мультиязычность контента - запилены в виде плагинов! Я в шоке был когда посмотрел, какие вещи там делаются просто как модуль расширения.