Visión general
Auditoría del código de la base 0e6c41f. Wookcom reúne un editor visual, un visor de sitios publicados y servicios de publicación, administración, comercio, formularios, cursos, embudos y conexiones MCP. La configuración versionada permite describir el sistema previsto, pero no demostrar qué revisión está desplegada.
Componentes y límites
El navegador ejecuta una SPA React. main.tsx decide entre editor, sitio público y consentimiento; applicationRoute.ts interpreta host y parámetros. El editor combina componentes, hooks, contextos y repositorios; los servicios Node de server se exponen mediante entradas de api. Firebase Auth identifica usuarios y Firestore conserva datos. vercel.json configura rutas API, OAuth y la recuperación de la SPA.
La descripción más fiel es una aplicación integrada con separación por dominios y servicios internos. App.tsx sigue coordinando una parte amplia de la edición. Hay un mecanismo pequeño de extensión de catálogos: registry.ts registra estáticamente el manifiesto de cursos y valida identificadores; contracts.ts define contribuciones de catálogo y events.ts ofrece notificaciones en proceso. Esto no demuestra un microkernel con plugins aislados, instalación dinámica o ciclos de vida independientes. Las funciones de cursos también dependen de componentes y servicios específicos fuera del registro.
Tecnologías comprobadas
| Tecnología | Evidencia y papel |
|---|---|
| React 19, TypeScript y Vite 8 | package.json, main.tsx, vite.config.ts: SPA y compilación. Las versiones declaradas son rangos, no prueba del runtime desplegado. |
| Firebase | firebase.ts: Auth y Firestore cliente; runtime.ts: inicialización Admin del servidor. |
| Tailwind CSS 4 | Plugin en vite.config.ts, importación en index.css, junto a CSS propio en src/styles. |
| Vercel | Entradas api/*.ts y reescrituras en vercel.json; alojamiento previsto por esta configuración. |
| Lucide | Dependencia lucide-react y uso en App.tsx y componentes. |
| anime.js | Importación efectiva de animate en ToolbarTooltip.tsx; no es el motor general del editor. También se declara motion. |
| Supabase | Sin SDK declarado en package.json ni referencias encontradas en la búsqueda del código auditado. No hay evidencia para atribuirle persistencia o autenticación. |
Límites y riesgos visibles
- La separación editor/visor mediante carga diferida reduce el trabajo inicial, pero ambos comparten tipos y renderizado del dominio.
- Las escrituras cliente a Firestore y las operaciones con Admin tienen fronteras de autorización distintas; las reglas no protegen por sí solas operaciones Admin.
- El guardado local es una copia recuperable en
localStorage, sujeta a cuota, borrado y errores. La publicación usa la copia remota guardada y revisiones, no cualquier cambio todavía local. - La configuración incluye una CSP permisiva (
unsafe-inline,unsafe-eval, fuentes HTTPS amplias); véase vercel.json. Es una observación del código, no una evaluación de un despliegue.
La migración a Firebase Functions de la PR #93 pertenece a un trabajo separado, pendiente y no desplegado según el contexto de esta auditoría. No forma parte de la base descrita: firebase.json configura reglas de Firestore y no declara una sección Functions. No deben mezclarse sus rutas futuras con las entradas Vercel actuales.
