Не делай ошибку, думая, что существует универсальная структура, которая подходит для всего. Даже в компаниях подход меняется в зависимости от того, строят ли монолитное приложение, систему микросервисов или библиотеку. Что ты можешь сделать - это выучить общие принципы и затем адаптировать их к своему конкретному проекту, вместо того чтобы гоняться за последними модными трендами из туториалов.
Базис, который работает почти всегда - разделять код по ответственности: компоненты/логика UI отдельно от бизнес-логики, API-запросы изолированы в выделенных сервисах, утилиты в отдельных папках, тесты рядом с кодом, который они тестируют. Если ты используешь фреймворк вроде React или Vue, используй его естественную структуру и добавь сверху организацию для конфиг-файлов, констант, хелперов. Если это ванильный JavaScript, ты мог бы подумать об архитектуре по слоям (представление, логика, доступ к данным) или о самостоятельных модулях с конкретными целями.
Что действительно имеет значение - это то, чтобы твоя команда (или ты сам через полгода) смогла ориентироваться в проекте без проблем. Если откроешь папку и сразу понимаешь, что в ней находится, если имена файлов говорят о том, что они делают, если можешь найти, где изменить фичу, не копаясь везде, значит структура работает. Начни с простого, расширяй по мере роста проекта и не бойся сделать рефакторинг папок, если видишь, что ситуация становится запутанной.