Stack Tecnológico
Una visión completa de las tecnologías utilizadas en ReliaPulse.
Frontend
Next.js 16
La aplicación usa Next.js 16 con App Router:
- Server Components - Modo de renderizado por defecto para mejor rendimiento
- Client Components - Usados donde se requiere interactividad (marcados con
"use client") - Route Handlers - Endpoints API en
/api/v1/* - Middleware - Rate limiting, tracking de request ID
- Streaming - Renderizado progresivo con Suspense boundaries
React 19
- Server Components para obtención de datos
- Client Components para interactividad
- Hooks para gestión de estado (
useState,useEffect,useCallback,useMemo) - Context para estado global (Auth, Theme, Socket)
TypeScript
Configuración estricta de TypeScript con:
- Seguridad de tipos completa en todo el código
- Zod para validación en runtime
- Prisma para consultas tipadas a la base de datos
TailwindCSS 4
- Framework CSS utility-first
- Variables de color personalizadas para temas
- Soporte dark mode via estrategia
class - Patrones de diseño responsive
Radix UI
Primitivas de componentes accesibles y sin estilos:
- Dialog, Dropdown, Tabs, Select
- Accordion, Collapsible, Tooltip
- Command palette (cmdk)
Librerías Frontend Adicionales
| Librería | Propósito |
|---|---|
@dnd-kit | Drag-and-drop para el constructor de páginas |
recharts | Visualización de gráficos |
date-fns | Formateo y manipulación de fechas |
lucide-react | Librería de iconos |
next-themes | Gestión de dark mode |
sonner | Notificaciones toast |
Backend
Prisma 7
ORM para PostgreSQL con:
- Cliente de base de datos tipado
- Migraciones para cambios de esquema
- Connection pooling
- Soporte para campos JSON
// Ejemplo de consulta
const components = await prisma.component.findMany({
where: { organizationId },
include: { subComponents: true }
});PostgreSQL
Base de datos principal almacenando:
- Todos los datos de la aplicación
- Sesiones de usuario (opcional)
- Logs de auditoría
Características usadas:
- Columnas JSONB para config flexible
- Búsqueda full-text (planificado)
- Triggers para eliminaciones en cascada
Redis
Almacén de datos en memoria para:
- Colas de trabajos BullMQ
- Contadores de rate limiting
- Caché de sesiones (opcional)
BullMQ
Librería de colas de trabajos para procesamiento en segundo plano:
- Lógica de reintentos con backoff exponencial
- Priorización de trabajos
- Trabajos diferidos (tareas programadas)
- Eventos y tracking de progreso
Autenticación
NextAuth.js v5
Framework de autenticación soportando:
- Credenciales - Email/contraseña con bcrypt
- OAuth - Google, GitHub (opcional)
- SSO/SAML - SSO empresarial via SAML Jackson
- 2FA - TOTP con códigos de respaldo
Librerías de Seguridad
| Librería | Propósito |
|---|---|
bcryptjs | Hash de contraseñas |
otplib | Generación TOTP 2FA |
@boxyhq/saml-jackson | SAML SSO |
crypto | Hash de API keys, encriptación |
Monitoreo e Integraciones
Adaptadores de Integración
Sistema de adaptadores basado en patrones para servicios externos:
// Interfaz base del adaptador
interface BaseIntegrationAdapter {
validateConfig(config: unknown): Promise<boolean>;
testConnection(): Promise<boolean>;
fetchMetrics(query: string): Promise<MetricResult>;
}Integraciones soportadas:
- Prometheus (PromQL)
- Datadog (DQL)
- New Relic (NRQL)
- Grafana (varios datasources)
- Pingdom (estado de checks)
Sistema de Health Checks
Verificador HTTP personalizado con:
- Múltiples tipos de condiciones
- Evaluación JSON path (
jsonpath-plus) - Validación de headers y body
- Umbrales de tiempo de respuesta
Logging y Observabilidad
Pino
Logging JSON estructurado:
{
"level": "info",
"time": "2026-01-24T12:00:00.000Z",
"service": "status-page",
"msg": "Health check completed"
}Características:
- Contexto de request (IP, user agent, request ID)
- Loggers específicos para workers
- Niveles de log configurables
Notificaciones
Canales de Entrega
| Canal | Librería/Método |
|---|---|
| Resend API | |
| SMS | Twilio API |
| Slack | Webhook API |
| Discord | Webhook API |
| Teams | Adaptive Cards |
| Webhook | HTTP personalizado |
| Push | Web Push API |
Herramientas de Desarrollo
Build y Desarrollo
- Turbopack - Servidor de desarrollo rápido
- Docker Compose - Entorno de desarrollo local
- Prisma Studio - GUI de base de datos
Testing
| Herramienta | Propósito |
|---|---|
| Jest | Tests unitarios y de API |
| Playwright | Tests E2E |
| Librerías mock | Mocking de Prisma, Auth |
Calidad de Código
- ESLint para linting
- Prettier para formateo (opcional)
- TypeScript para verificación de tipos
Despliegue
Containerización
- Docker - Builds multi-stage
- Docker Compose - Desarrollo y producción a pequeña escala
Orquestación
- Kubernetes - Escalado en producción
- Helm - Gestión de paquetes (opcional)
Plataformas
Targets de despliegue verificados:
- Vercel (app Next.js)
- Railway/Render
- AWS ECS/EKS
- Google Cloud Run/GKE
- Docker auto-hospedado
Requisitos de Versión
| Tecnología | Versión Mínima |
|---|---|
| Node.js | 20.x |
| PostgreSQL | 14.x |
| Redis | 6.x |
| npm/pnpm | 8.x |