Acho assim, cada um tem sua maneira de montar seu próprio projeto, segundo o Felipe Dechamps no curso, tem um carinha americano que ganha milhões com um único site que criou em um unico arquivo PHP.
Então creio eu que isso deva ser algo de como você acha mais organizado, você deve evitar over engineering a todo custo, e sempre fazer reformulação na esturura e no código.
Separar as coisas de acordo com o que ela demanda.
.
└── root/
├── apps/
│ ├── accounts/
│ │ ├── templates/
│ │ └── api/
│ │ └── v1/
│ ├── core/
│ │ ├── templates/
│ │ └── api/
│ │ └── v1/
│ ├── router.py
│ └── utils.py
├── backend/
│ └── settings/
│ ├── utils/
│ │ └── buckets.py
│ ├── base.py
│ ├── production.py
│ └── local.py
├── infra/
│ ├── config/
│ │ └── nginx/
│ │ ├── Dockerfile
│ │ └── nginx.conf
│ ├── minio/
│ │ └── compose.minio.yaml
│ ├── Dockefile
│ ├── compose.local.yaml
│ └── compose.prod.yaml
├── frontend/
│ ├── tailwind.config.js
│ └── global.css
├── tests/
│ └── integrations/api
├── templates/
├── statics/
│ ├── css/
│ ├── js/
│ └── imgs/
├── manage.py
├── .pre-commit-config.yaml
├── .gitignore
├── .env
├── .env.local
└── pyproject.toml