🥳 Welcome aboard
Bienvenido al onboarding de frontend
Esta documentación está pensada para leerse en orden, empecemos por el stack y conozcamos el turbo repo, para luego ver como construimos aplicaciones en producción, para ello seguimos el siguiente orden: primero entendemos cómo llegan los datos, luego cómo construimos piezas individuales (componentes), con los datos y componentes cómo ensamblamos todo como un sistema mantenible (Arquitectura), por último, nuestros estandares de coding y calidad.
Stack principal
Usamos un stack moderno y probado en producción:
-
Next.js
Framework base para routing, rendering y optimizaciones (SSR / RSC cuando aplique). -
React
UI basada en componentes, composición y estado explícito. -
TypeScript
Tipado estricto como primera línea de defensa contra errores. -
React Hook Form
Manejo de formularios de forma performante y declarativa. -
React Query (@tanstack/react-query)
Capa de acceso a datos remotos (queries, mutations, cache, retries). -
shadcn/ui
Librería de componentes base, accesibles y extensibles, integrada con Tailwind. -
Algolia
Librería para implementar buscadores rápidos, escalables y optimizados para grandes volúmenes de datos. -
Better auth
Librería para manejar autenticación y autorización de forma segura y centralizada. -
Vitest
Framework para realizar pruebas unitarias. -
Cypress
Framework para realizar puebas end to end a los features del sistema.
1️⃣ Fundamentos de como hacer fetch: cómo llegan los datos a la aplicación
Antes de escribir componentes, necesitamos entender cómo nos integramos con APIs y cómo aislamos la UI de los cambios del backend.
Aquí aprenderás:
- Cómo integramos una API
- Cómo llegan los datos a la aplicación
- Cómo usamos queries, mutations y transformaciones
- Por qué la UI nunca consume respuestas crudas
2️⃣ Componentes: cómo construimos UI
Con los datos claros, pasamos a la unidad básica del frontend: el componente.
Aquí aprenderás:
- Cómo escribimos componentes
- Qué responsabilidades tiene (y cuáles no)
- Cómo mantener componentes simples y reutilizables
3️⃣ Nuestra esencia: arquitectura, estándares y calidad
Cuando sabemos traer datos y construir componentes, es momento de ensamblarlos bajo reglas claras.
Aquí aprenderás:
- Nuestra arquitectura frontend
- Nuestros estándares de código
- Prácticas de calidad, testing y manejo de errores
- Cómo mantenemos coherencia y escalabilidad en el tiempo
4️⃣ Fundamentos de Diseño: POO y SOLID
Las aplicaciones deben ser mantenibles, escalables y fáciles de testear. Aplicando conceptos de Programación Orientada a Objetos y principios SOLID para estructurar la lógica de negocio fuera de los componentes es posible.
Principios Solid
-
S: Single Responsibility Un componente o clase debe tener una sola razón para cambiar.
-
O: Open/Closed El software debe estar abierto a la extensión, pero cerrado a la modificación.
-
L: Liskov Substitution Las subclases o implementaciones deben poder sustituir a sus clases base sin romper la aplicación.
-
I: Interface Segregation Nadie debería ser forzado a depender de métodos que no usa.
-
D: Dependency Inversion Depende de abstracciones, no de implementaciones concretas.
👉 Ir a: Refactoring Guru para aprender mas de software escalable.
👉 Ir a: SOLID para aprender mas de los principios SOLID.
POO
Es un paradigma de programación que organiza el software alrededor de "objetos" en lugar de acciones.
👉 Ir a: POO para aprender mas de este paradigma.