Стартап на CMS-движке или с нуля?

Перед тем, как приступать к разработке проекта нужно четко понимать на какой платформе и каких технологиях будет реализован ваш проект. Это важный момент, который неопытные и не владеющие технологиями стартаперы часто упускают. Неправильный выбор платформы и неправильный подход к программированию могут стать большой проблемой в будущем, поскольку это повышает проектные риски. 
Основатели многих успешных проектов не раз заявляли, что полностью переписывали код через какое-то время и даже делали это не раз. Но если вы изначально пошли по неправильному пути, вы можете не дойти до запуска даже первой версии вашего продукта.

Итак, что же выбрать, CMS или код с нуля? Рассмотрим плюсы и минусы этих подходов.

CMS (content managment system) - система управления контентом, в народе ЦМСка или движок.

Разработка с нуля - подход, когда весь код пишется самим программистом, а не берется готовое ршение. Часто проекты пишутся не с нуля, а с использованием библиотек или фреймворков. Это такие полуфабрикаты, которые, тем не менее, требуют изрядно повозиться с кодом.

Часто используемые функции

Мы настолько привыкаем к обыденным вещам, что даже не задумываемся о том, какими они должны быть. Нужна возможность вести блог? Ну естественно. У статей должны быть теги? Это же есть у всех. 
В CMS это все уже встроено и протестировано, а при разработке с нуля вам придется прописывать и продумывать все до мелочей. А когда вы что-то забудете, разработчик возьмет с вас дополнительную плату, т.к. "этого не было в ТЗ".

Готовые модули

Ваш проект конечно уникальный, но многие его части уже кому-то были нужны и для этих возможностей в CMS написаны тысячи модулей. Нужно прикрутить оплату? Хотите присваивать вознаграждения пользователям за действия? Просто поищите модуль на сайте CMS-сообщества, наверняка он там есть.
При разработке с нуля вам нужно будет снова продумывать, прописывать, заказывать, тестировать. Ну и конечно оплачивать.

Админка

CMS по определению "система управления" поэтому все, чем можно управлять находится в админке, вам достаточно лишь нажимать кнопки и менять нужные значения без необходимости править код.
При разработке с нуля вам нужно будет заранее продумать чем и как вы будете управлять. Это требует дополнительного времени и денег.

Сообщество специалистов

При разработке на CMS если у вас возникла проблема в настройке какой-то возможности, поищите на профильных сайтах, если не найдете ответа, задайте вопрос и вам ответят или укажут в каком направлении искать. Этим можете занятьс и вы и разработчик. 
При разработке с нуля ответы сможет искать только разработчик, поскольку только он разбирается в языках программирования и в собственном коде.

Взаимозаменяемость специалистов

У каждой CMS есть общепринятые подходы к программированию и в случае ухода программиста с проекта, новый человек сможет продолжить работу. Главное - сразу применять правильные подходы.
При разработке с нуля тоже есть подходы, но разработчик не должен отходить от них, а так же не забывать комментировать код. А программисты зачастую - любители изобретать велосипеды и вновь пришедшему программисту потребуется много времени на то, чтобы разобраться с кодом и продолжить работу.

Зависимость от дизайна

У CMS помимо тысяч модулей есть тысячи готовых шаблонов дизайна, вам не нужно прорисовывать все состояния кнопок, ссылок. Если появился новый функуионал, он будет выглядеть так же как все остальное на вашем сайте. 
При разработке проекта с нуля вам понадобится нарисовать и сверстать абсолютно все элементы дизайна, иначе им просто будет неоткуда взяться.

Требовательность к ресурсам хостинга

CMS зачастую менее производительны, чем проекты, написанные с нуля. Но эта проблема решаема, сущейтвуют тысячи высоконагруженных проектов, отлично работающих на CMS.
Все же если функционал проекта по большому счету нестандартный и обещает быть высокопосщаемым, подход разработки с нуля более желателен.

Необходимость встраиваться в идеологию

Не всем может быть близка философия выбранного вами CMS-движка, поэтому для работы над проектом придется поискать специалиста, имеющего оответствующий опыт.
При разработке с нуля потребуется подстраиваться не только к выбранной программистом идеологии и технологии, но и к его стилю программировния.

Возможность внесения изменений

При разработке на CMS если вам больше не нужен функционал, вы просто снимаете соответствующую галочку.
Если проект пишется с нуля, скорее всего потребуется залезть во множество файлов, не бабыть про базу данных и все-равно что-то ускользнет из вида и придется долго вспоминать где же настраиваются эти параметры.

Вывод

Если вы не специалист в программировании, если у вас не много денег, если вы пока не знаете наверняка какие функции нужны в проекте и как они должны работать и выглядеть, выбирайте вариант - разработка на CMS. Этот подход может потребовать чуть больше кода для какой-либо функции, но он прощает ошибки, допущенные на ранних этапах проекта. Он позволяет быстро запустить проект и проверить его жизнеспособность, не зарываясь в бесконечные доработки.

Если у вас уже есть работающий продукт и вы хотите его оптимизировать, если 80% функционала будет писаться с нуля, если вы точно знаете что вам нужно и вы готовы отратить это в ТЗ, заказывайте проект с нуля. В нем не будет ничего лишнего, поэтому он будет быстрее. Но будьте готовы к ртому, что ваш программист может уйти или что вы не успели продумать все до мелочей.