Sobre o projeto

Bast é uma aplicação de web analytics de código aberto voltada para sites pequenos que precisam de insights básicos de tráfego sem cookies ou serviços de rastreamento de terceiros. Seu foco declarado é a privacidade e a simplicidade: é descrito como um projeto que o autor construiu para uso pessoal e posteriormente compartilhou porque alguns amigos o acharam útil. Nota importante sobre o status: o README afirma explicitamente que o projeto não é mais mantido. Qualquer pessoa que o considere deve tratá-lo como uma base de código apenas para leitura, um ponto de partida para um fork ou uma implementação de referência, em vez de um produto com suporte. O que ele mede As métricas são armazenadas ao longo do tempo, com os dias como escala atômica. As visualizações de página (pageviews) contam visitantes anônimos ou identificados; portanto, três visitantes produzem três visualizações; cada visualização registra o referenciador e a URL atual. Os usuários são o número de visitantes únicos, derivados sem cookies: um identificador é construído a partir do endereço IP e do user-agent do visitante, processado via hash e armazenado no banco de dados. Uma sessão começa novamente após 30 minutos de inatividade, portanto, visitas repetidas dentro dessa janela contam como uma única sessão. O tempo médio no site é registrado apenas quando fica entre 5 segundos e 30 minutos por sessão. A análise do user-agent é feita pela biblioteca woothee, que fornece o nome do navegador, sistema operacional e detalhes relacionados. A geolocalização é mencionada como um recurso desejado, mas ainda não implementado. Arquitetura e stack O backend é escrito em Rust com o framework actix-web e diesel como ORM para PostgreSQL. O frontend é majoritariamente estático, construído em React com Next.js, e a interface utiliza chakra-ui, com um gráfico desenvolvido sob medida. Um banco de dados PostgreSQL é necessário. Executando o projeto O README documenta vários caminhos. No Unix e OS/X, instale a CLI do diesel com a feature postgres, execute o diesel setup contra uma instância do PostgreSQL em execução e, em seguida, instale as dependências do frontend com npm install dentro da pasta website. Uma rota via Docker também é descrita: docker-compose up, com variáveis de ambiente customizáveis no docker-compose.yml. As instruções de desenvolvimento abrangem a criação de um arquivo .env a partir do .env.sample, usando opcionalmente o cargo-watch para recarregar a API durante as edições, executando cargo run caso contrário, e iniciando o frontend com npm run dev. Um botão de deploy do Heroku é fornecido como a opção de implantação mais fácil. O README lista a porta local como 3333 para a aplicação em execução. Contribuição e contexto O README incentiva perguntas e pull requests, acolhendo explicitamente iniciantes e juniores, e aponta para o CONTRIBUTING.md para mais detalhes. Ele credita o Fathom como uma base de código que o autor leu e observa que a abordagem de identificação de usuário sem cookies foi inspirada no Ackee, um projeto em JavaScript. A linguagem de código por si só não é o motivo da classificação aqui: o valor para os usuários é a análise de tráfego para um site próprio, implantado em sua própria infraestrutura.