вот, допустим, ты делаешь CRM. Проектировать начинаешь конечно с БД. Собираешь таблицы под пользователей, контрагентов, задачи(кейсы), статусы задач, схему эскалаци, переходы по статусам и т.д.
Затем проектируется расписание (фоновые задачи). Хороший CRM способен многое делать в автоматическом режиме. Получать почту, проверять исполненность задач, напоминать, эскалировать, уведомлять.
Эта часть к вебу в целом не имеет отношения
Затем ты делаешь понятный интерфейс к БД - тут уже моё ИМХО, система должна быть такой, чтобы к ней грамотный фронтендер мог запилить быстрый фронт независимо от самой системы. Например веб фронт и мобильное приложение. Поэтому в качестве интерфейса к БД я выбираю RESTfull API с методами GET/POST/PUT/DELETE и json версией представления данных
Остается написать фронтенд на любом удобном фреймворке и за дело.