Сложность в том, что пет-проект как правило решает какую-то простую задачу простыми способами. А на реальном проекте все сложнее в разы. К примеру, сделал я в пет-проекте фильтрацию по полю Name в списке через useState() - все просто и понятно. А в боевом проекте - мало того что фильтр не по полю Name, а по дюжине параметров, включая енумы, дата-пикеры, юзер-пикеры, сингл- и мультиселекты, так надо чтоб еще при закрытии формы фильтров или переходе-возврате на другую страницу значения в ней сохранялись. А, и еще рядом отдельный SearchField - надо чтоб фильтрация учитывала что в этом поле юзер натыкал