Sobre el proyecto

Bast es una aplicación de analítica web de código abierto dirigida a sitios pequeños que necesitan una visión básica del tráfico sin cookies ni servicios de seguimiento de terceros. Su enfoque declarado es la privacidad y la simplicidad: se describe como un proyecto que el autor construyó para uso personal y que posteriormente compartió porque algunos amigos lo encontraron útil. Nota importante sobre el estado: el README establece explícitamente que el proyecto ya no tiene mantenimiento. Cualquiera que lo considere debe tratarlo como una base de código de solo lectura, un punto de partida para un fork o una implementación de referencia, en lugar de un producto con soporte. Qué mide Las métricas se almacenan a lo largo del tiempo, siendo los días la escala atómica. Las visitas a la página cuentan visitantes anónimos o identificados, por lo que tres visitantes producen tres visitas; cada visita registra el referente y la URL actual. Los usuarios son el número de visitantes únicos, derivados sin cookies: se construye un identificador a partir de la dirección IP y el user-agent del visitante, que luego se procesa mediante hash y se almacena en la base de datos. Una sesión comienza de nuevo tras 30 minutos de inactividad, por lo que las visitas repetidas dentro de ese intervalo cuentan como una sola sesión. El tiempo promedio en el sitio solo se registra cuando se sitúa entre 5 segundos y 30 minutos por sesión. El análisis del user-agent es gestionado por la librería woothee, que proporciona el nombre del navegador, el sistema operativo y detalles relacionados. La geolocalización se menciona como una característica deseada pero aún no implementada. Arquitectura y stack El backend está escrito en Rust con el framework actix-web y diesel como ORM para PostgreSQL. El frontend es mayoritariamente estático, construido en React con Next.js, y la interfaz utiliza chakra-ui, con un gráfico desarrollado a medida. Se requiere una base de datos PostgreSQL. Ejecución El README documenta varias rutas. En Unix y OS/X, instale la CLI de diesel con la característica de postgres, ejecute diesel setup contra una instancia de PostgreSQL en funcionamiento y, a continuación, instale las dependencias del frontend con npm install dentro de la carpeta website. También se describe una ruta de Docker: docker-compose up, con variables de entorno personalizables en docker-compose.yml. Las instrucciones de desarrollo cubren la creación de un archivo .env a partir de .env.sample, el uso opcional de cargo-watch para recargar la API durante las ediciones, la ejecución de cargo run en caso contrario y el inicio del frontend con npm run dev. Se proporciona un botón de despliegue de Heroku como la opción de despliegue más sencilla. El README indica que el puerto local para la aplicación en funcionamiento es el 3333. Contribución y contexto El README anima a realizar preguntas y pull requests, dando la bienvenida explícitamente a principiantes y juniors, y remite a CONTRIBUTING.md para más detalles. Atribuye a Fathom como una base de código que el autor leyó, y señala que el enfoque de identificación de usuarios sin cookies se inspiró en Ackee, un proyecto de JavaScript. El lenguaje de programación por sí solo no es la razón de la clasificación aquí: el valor para los usuarios es la analítica de tráfico para un sitio web propio, desplegado en su propia infraestructura.