Just like the mobile frontend - the backend is selected in Discovery, not from above.
By default, we work in Next.js + Payload CMS + PostgreSQL stack (if you already have a web application, one team, lower long-term cost).
But if the problem is better realized:
- Event-driven microservices (scaling independent domains)
- Spring Boot / JVM (client has Java ecosystem, integrations with banking systems, ERP enterprise)
- Python (data processing, ML / AI model inference)
- PHP (Symfony, Laravel - client has existing stack to maintain)
- Another stack technically justified
...then we go with what achieves the business goal.
Decision in Discovery, ADR with reasons.
The third path - integration with the client's existing backend (REST, GraphQL, gRPC) without rebuilding.