Sobre o projeto
Flarelytics é um projeto de web analytics de código aberto projetado para medir o tempo que os visitantes passam lendo conteúdo em um site. O objetivo é fornecer uma alternativa que respeite a privacidade em relação aos serviços de analytics convencionais, que frequentemente coletam dados pessoais extensos ou carecem de métricas precisas de tempo de permanência.
**Arquitetura**
- **Script do navegador** (localizado na pasta `analytics`) – um pequeno snippet de JavaScript que os proprietários do site incorporam em suas páginas. Ele gera um UUID para cada sessão de visitante e envia dois eventos para o backend: um quando a página é carregada e outro quando a página é ocultada ou descarregada.
- **Backend** (em `src`) – uma aplicação TypeScript implantada como um Cloudflare Worker. Ele expõe uma API HTTP simples que recebe os eventos e os armazena em um banco de dados PlanetScale compatível com MySQL. O backend também agrega os eventos brutos em estatísticas de tempo de permanência por página que podem ser visualizadas em um dashboard.
**Principais recursos**
- Self-hosted: execute o worker em sua própria conta Cloudflare e armazene os dados em seu próprio banco de dados PlanetScale.
- Foco em privacidade: sem cookies de rastreamento de terceiros, sem registro de IP e todos os dados permanecem sob seu controle.
- Suporte a domínio único (versões futuras podem adicionar suporte a múltiplos domínios).
- Fluxo de implantação simples usando `wrangler` e `pnpm`.
**Fluxo de desenvolvimento**
1. Crie contas gratuitas no Cloudflare e PlanetScale.
2. Clone o repositório e instale Node.js v18+, pnpm e a CLI do PlanetScale.
3. Configure um banco de dados PlanetScale chamado `flarelytics` com branches `main` e `dev`; use a branch `dev` para trabalho local.
4. Crie um Cloudflare Worker (ex: `flarelytics-dev`) e armazene as credenciais do banco de dados como variáveis de ambiente secretas.
5. Execute `pnpm run setup-test-db` para criar as tabelas e, em seguida, `pnpm run dev` para iniciar um worker local.
6. Implante com `npm run deploy-dev` quando estiver pronto para um ambiente de teste.
**Contribuição**
O projeto é mantido pelo Google Developer Student Club da Universidade de Tecnologia e Economia de Budapeste. Os contribuidores são incentivados a escolher issues no rastreador do GitHub, seguir o fluxo padrão de fork-branch-PR e aderir às diretrizes de contribuição descritas no README.
**Status**
Flarelytics está sob desenvolvimento ativo e ainda não é recomendado para uso em produção. Planos futuros incluem suporte a múltiplos domínios, dashboards mais ricos e autenticação opcional para a UI de analytics.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.