Going from scratch, I prefer 2 different organizational styles.
Frontend (React.js)
- app
- node_modules
- client
- main.js
- main.css
- components
- FButton.js
- FButton.css
- SValidatedInputText.js
{import ../utils/MyLeftPad.js}
- SValidatedInputText.css
- containers
- HNav.js
{import ./HNav.js}
- HNav.css
- DNavItems.js
{import ../components/FButton.js)}
- DNavItems.css
- utils
- MyLeftPad.js
- MyLeftPad.css
- F - Stateless Functional component
- S - Stateful component (trying to avoid them as much as possible)
- H - Higher Order Container/Component
- D - Dump Container/Component
Backend (Node.js)
- node_modules
- app
- client (if serverside rendering)
- server
Otherwise, I keep the existing structure given by scaffolds and starter projects like mern.io/