Arquitectura general y organizacion tecnica¶
El problema que hemos querido resolver¶
En muchos equipos SEO el flujo de trabajo tecnico queda fragmentado: se analiza un sitio en una herramienta, los datos de rendimiento viven en otra, el seguimiento de cliente en otra y los informes se acaban reconstruyendo a mano. Nosotros hemos construido SEO Growth Engine precisamente para resolver esa fragmentacion.
Nuestro objetivo tecnico ha sido unificar analisis, accesos, reporting e historico en una misma aplicacion.
A quien va dirigido¶
- Agencias SEO o de marketing digital con varios clientes.
- Consultores independientes que necesitan orden operativo.
- Equipos de marketing con varios sitios y distintos perfiles de acceso.
Alcance funcional implementado¶
Con SEO Growth Engine hemos organizado en el mismo sistema:
- gestion de sitios;
- usuarios y permisos por cliente o por equipo;
- ejecuciones de analisis tecnico;
- historico de runs y reintentos;
- artefactos e informes HTML;
- una capa de visibilidad IA para prompts y observaciones;
- una estructura preparada para anadir nuevas funcionalidades.
Los bloques de la arquitectura¶
Nuestra arquitectura se apoya en seis piezas que trabajan juntas:
-
Frontend Vue 3 + TypeScriptLo usamos para construir una zona SPA en login, dashboard y detalle de run, con rutas protegidas, estado global y componentes reutilizables. -
Django como nucleo de negocioEs la capa que sostiene autenticacion, formularios, vistas web, API JSON, permisos, modelos y reglas de negocio. -
ORM + base de datosEl dominio de la aplicacion se persiste en modelos comoSite,SiteAccess,AnalysisRunyAIVisibilityRun. -
Motor SEO y serviciosLa logica de analisis vive enengine/, mientras quedashboard/tasks/services.pycoordina ejecucion, progreso, cancelacion, logs y resultados. -
Redis + RQNos permite desacoplar procesos largos para que la aplicacion no bloquee la interfaz cuando se lanza un analisis. -
Despliegue y publicacionEn desarrollo hemos validado el stack conDocker. En laVPSse anadeNGINXcomo proxy de entrada delante de la aplicacion.
Flujo funcional end to end¶
Nosotros explicamos el recorrido principal de la aplicacion asi:
Usuario -> interfaz Vue o Django -> API / vistas Django -> ORM -> PostgreSQL
Cuando el usuario lanza un proceso pesado, entra nuestra parte desacoplada:
Usuario -> formulario o accion web -> AnalysisRun / AIVisibilityRun -> Redis + RQ -> worker -> artefactos / reportes / dashboard
Justificacion de la arquitectura¶
Hemos elegido esta arquitectura porque separa responsabilidades y encaja con los procesos que necesitaba la aplicacion.
Vuenos permite organizar la zona interactiva con rutas, estado y componentes.Djangonos da rapidez, robustez y una capa muy clara para negocio, formularios y permisos.ORMnos permite modelar el dominio con coherencia y trazabilidad.Redis + RQresuelve una necesidad real: que las ejecuciones largas no congelen la web.Dockerhace reproducible el entorno local.NGINXenVPSsepara la entrada HTTP de la aplicacion servida por Gunicorn.
Evidencias tecnicas que lo demuestran¶
frontend/src/router/index.ts: rutas del cliente y proteccion de acceso.frontend/src/stores/session.ts: estado global de usuario, sitios, runs y detalle.dashboard/models.py: dominio persistente del sistema.dashboard/web/views.py: flujos de negocio, lanzamientos, cancelaciones y reporting.dashboard/api/views.py: capa JSON para bootstrap, sesion, sitios, runs y dashboard.dashboard/tasks/services.py: coordinacion del trabajo en segundo plano.engine/report_data.py: construccion de datos para informe.engine/ai_visibility.py: ejecucion de visibilidad IA.docker-compose.yml: stack local conweb,worker,dbyredis.deploy/nginx/seo-growth-engine.conf: configuracion de proxy para la publicacion.
Sintesis de la arquitectura¶
La arquitectura queda organizada por capas: interfaz, backend, persistencia, motor de analisis, cola de trabajos y despliegue. Cada bloque responde a una necesidad concreta del proyecto y se puede defender con archivos reales del repositorio.