No cometas el error de pensar que existe una estructura universal que funcione para todo. Incluso en las empresas cambian el enfoque según estén construyendo una app monolítica, un sistema de microservicios o una librería. Lo que puedes hacer es aprender los principios comunes y luego adaptarlos a tu proyecto específico, en lugar de perseguir la última moda de los tutoriales.
La base que funciona casi siempre es dividir el código por responsabilidades: componentes/lógica UI separados de la business logic, las llamadas a API aisladas en servicios dedicados, las utilidades en carpetas aparte, los tests junto al código que prueban. Si usas un framework como React o Vue, aprovecha su estructura natural y añade encima una organización para archivos de configuración, constantes, helpers. Si es vanilla JavaScript, podrías pensar en una arquitectura por capas (presentación, lógica, acceso a datos) o en módulos autocontenidos con propósitos específicos.
Lo que realmente importa es que tu equipo (o tú mismo dentro de seis meses) logre navegar el proyecto sin volverse loco. Si abres una carpeta y entiendes de inmediato qué hay dentro, si el nombre de los archivos te dice qué hacen, si puedes encontrar dónde modificar una feature sin buscar por todas partes, entonces la estructura está funcionando. Empieza simple, expande conforme crece el proyecto, y no tengas miedo de hacer refactoring de las carpetas si ves que la situación se vuelve confusa.