Старт любого проекта – это довольно комплексная сложная задача. И невозможно всего учесть на ранних этапах.
Мы ищем подходящее решение, покупаем, внедряем, используем.

Спустя какое-то время возникает потребность что-то изменить в продукте. Сначала возможно небольшая и необязательная. Можно от нее отказаться.

Но рано или поздно проблема доработки будет глобальная и ее обязательно надо решать и внедрять.

И здесь начинаются танцы с бубном, т.к. большинство коробок предлагают мало возможностей для кастомизации.

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

Хорошо это или плохо. Хорошо, что дешево был куплен начальный проект. Плохо то, что стоимость поддержки неуклонно растет и очень ограничены возможности по кастомизации.

В чем проблема?

Проблема в том, что никто в начале проекта не удосужился подумать о том, что будут изменения и какие именно изменения.

Подбирайте коробку сразу с учетом будущих изменений или хотя бы с возможностью менять коробку под себя. В противном случае вы очень усложняете себе жизнь в будущем.

Почему проекты иногда (часто) начинают заново с нуля? Да потому что рано или поздно приходят к выводу, что дальше это сложно развивать и любые затраты себя не окупают или растут по мере накопления кодовой базы.

Всегда есть желание купить что-то готовое, но при этом с возможностью доработки.

Учитывайте момент доработок и вам не придется заново начинать с нуля.