Stack tecnológico
Detalle de las dependencias, su rol dentro de la app y por qué se eligieron.
Core
| Tecnología | Uso | Por qué |
|---|---|---|
| Next.js 16 | Framework full-stack | App Router, Server Actions, RSC, deploy nativo en Vercel |
| React 19 | UI declarativa | Concurrent features, useActionState, transitions |
| TypeScript 5 | Tipado estático | Seguridad de tipos end-to-end con los tipos de Supabase |
| Tailwind CSS 4 | Estilos utility-first | Rapidez de iteración y consistencia de tokens de marca |
Producto
| Tecnología | Uso | Por qué |
|---|---|---|
| Framer Motion 12 | Animaciones y gestos | API declarativa, AnimatePresence, draweres y gestos |
| browser-image-compression | Compresión cliente | Reduce peso antes de subir a Storage (ahorra datos) |
| TensorFlow.js 4 | Inferencia de IA en navegador | Transferencia de estilo sin enviar la foto a un server |
| Zod 4 | Validación de esquemas | Una sola fuente de verdad para validar payloads |
| uuid 14 | Identificadores | Nombres únicos de archivo en Supabase Storage |
Plataforma
| Tecnología | Rol |
|---|---|
| Supabase | Postgres + Auth + Storage + tipos generados para TS |
| Vercel | Hosting, Edge Runtime, CI/CD desde GitHub |
| PWA manifest | Instalación en pantalla de inicio, splash con la marca |
Convenciones del proyecto
- Node:
>=20.0.0 <21.0.0(ver.nvmrc). - Package manager:
npmconpackage-lock.jsonversionado. - Bundler: Webpack (modo explícito en scripts:
next dev --webpack). - Lint:
eslintconeslint-config-next. - Aliases de import: configurados en
tsconfig.json.