unos comentarios:
1.- Recuerda que la mayoria de los servidores se despliegan en CPanel y les es mas dificil encontrar un hosting donde puedan desplegar React y Nodejs.
2.- Al ser React la desventaja del CEO ya que para eso debes usar SSR y no puedes usarlo en un CPanel.
3.- Los clientes no van a querer gastar en un servidor exclusivo para su web en vez de pagar un CPanel.
4.- Como desarrollo me parece chevere ya que yo cree uno con Angular y NestJS pero no sirven para un cpanel si no para un servidor VPS o EC2 como servidor para la web y tener manejo de todo.
5.- Recomiendo que manejes un limit de peticiones y que si sobrepasa los bloquees por un tiempo.
6.- Limita los CORS.
7.- Siempre valida los inputs a tu Backend y limpialos de cualquier codigo malicioso
8.- Es bueno independizar el Back del Front pero recuerda que debe haber comunicacion y validacion del token de intermedio.
9.- Recomiendo que uses buenas practicas y no hagas lo mismo que vemos en las web clasicas donde todo es codigo espagueti.
Con respecto al diseño no te puedo decir nada ya que es lo que tu creaste y solo a ti te debe importar.
Te resumo cómo viene la cosa:
Arquitectura y Plataforma (Puntos 1, 2, 3, 4)
Entiendo el punto de que la mayoría usa CPanel y que es más barato que un VPS, pero el proyecto está hecho con React y Node.js por una razón: rendimiento y SEO.
Costo vs. Rendimiento: tenés razón, esto necesita un VPS o una instancia tipo EC2 (igual que con Angular/NestJS). No es compatible con CPanel. El cambio se debe a que el rendimiento mejora muchísimo y es la única forma de que la web funcione bien y soporte muchas visitas.
SEO: el tema del SEO (punto 2) ya está resuelto. El proyecto usa Server-Side Rendering (SSR), así que Google ve el contenido completo de entrada, sin tener que esperar a que cargue el JavaScript.
Seguridad (Puntos 5, 6, 7, 8)
Todos los puntos de seguridad son importantes y ya están implementados para proteger tanto la web como la base de datos:
- Rate Limiting (Punto 5): ya configuré un límite de peticiones para evitar ataques de fuerza bruta en Login y Registro.
- CORS (Punto 6): la API solo acepta peticiones desde el dominio del juego (se define en el .env del backend), así que nadie puede usarla desde afuera.
- Validación de inputs (Punto 7): los datos que manda la gente se limpian automáticamente con consultas parametrizadas antes de llegar a la DB, lo que evita SQL Injection o código malicioso.
- Comunicación segura (Punto 8): el front y el back son independientes, pero se comunican con tokens JWT. Cada request valida el token y la sesión con un middleware antes de responder.
(Punto 9)
La arquitectura está modularizada y separada por capas (Controladores, Repositorios, Componentes de React), lo que hace que sea más fácil mantener y escalar sin que una parte rompa otra.