JavaScript ES6+
Arrow functions, destructuring, async/await, módulos, fetch API
HTML & CSS
Formularios avanzados, Flexbox, Grid, variables CSS
TypeScript básico
Tipos, interfaces, generics — esencial para datos maestros ERP
Componentes & props
Componentes reutilizables: campos, tablas, cabeceras de documento
Hooks: useState, useEffect
Estado de formularios, carga de datos, efectos secundarios
Formularios controlados
Controlled inputs, validación, submit — corazón del ERP
Context & estado global
Compartir datos entre formularios, sesión de usuario, carrito
App Router & rutas
Rutas dinámicas para /ventas/facturas/[id], layouts anidados
Server vs Client components
Qué renderiza el servidor y qué el cliente en formularios ERP
API Routes & Server Actions
Endpoints para leer/escribir Socios, Artículos, Documentos
SSR, SSG, ISR
Estrategias de renderizado para datos maestros y transacciones
Middleware & autenticación
Roles: vendedor, almacenista, contador — proteger rutas
UI: shadcn/ui o Ant Design
Tablas, selects, datepickers, modales — componentes ERP listos
React Hook Form + Zod
Validación de campos: RUC, cantidades, fechas, totales
TanStack Query
Cache, paginación, sincronización con el servidor SAP
TanStack Table
Grillas de líneas, listados de facturas, movimientos de almacén
Arquitectura de carpetas
/ventas, /compras, /inventario, /contabilidad — módulos ERP
Integración SAP B1
Service Layer REST, sessions, POST/PATCH de documentos
Node.js (mínimo necesario)
Next.js ya incluye Node — enfócate en módulos, fs, env vars
Deploy & producción
Vercel, Docker, variables de entorno, HTTPS, seguridad