React 19 de Cero a Experto / Proyecto final
Proyecto: chat colaborativo en tiempo real
Es el momento: construyes el chat colaborativo completo —login, salas, mensajes en tiempo real,
presencia y "está escribiendo…"— ensamblando todo React 19 que dominaste. Corre en vivo con el socket
simulado (mismo modelo mental que Socket.io); en tu proyecto real, cambiarías esa línea por
io("https://...") conectado al backend que construirás en el supercurso de Node/NestJS (SC-10). Este
es tu capstone: la prueba de que sabes armar una app real de principio a fin.
Reto
Chat colaborativo
Qué debes construir
Un chat con salas, presencia y tiempo real, sobre el plan de la lección anterior:
- Login: una pantalla para elegir tu nombre antes de entrar (estado local que actúa de "auth").
- Salas: una lista de salas (
#general,#diseño,#random); al elegir una, te unes (emit("unir_sala")) y ves sus mensajes. - Mensajes en tiempo real: recibir el historial al entrar, y los mensajes nuevos (propios y ajenos) por el socket, filtrados por sala.
- Envío optimista: tu mensaje aparece al instante (dedup por
idal confirmarse). - Presencia: la lista de quién está en la sala actual.
- "Escribiendo…": indicador cuando alguien teclea en la sala.
Reglas
- Clasifica el estado como planeaste: local (nombre, sala, input), de servidor (mensajes, presencia,
escribiendo), conexión en un
ref. - Cada
socket.on(...)con susocket.off(...)en el cleanup. - Mensajes con
idde cliente para deduplicar el optimista; todo tipado.
90:00
Cuando estés listo, arranca el reloj.
Qué sigue
Tienes el chat funcionando. Pero "funciona" no es "listo para producción": falta persistir la sesión, avisar de mensajes no leídos en otras salas, y pulir la accesibilidad. La próxima lección es un reto para EXTENDER tu capstone con esos toques de calidad —lo que separa un demo de un producto—.