Gelateria Brina: o site de uma gelataria que mostra em direto os sabores do dia

Site de demonstração de uma gelataria inventada em Turim. A artesã marca no telemóvel os sabores que há e os que esgotaram, e a vitrine do site, desenhada em código cuba a cuba, muda em direto com a hora da última atualização. Com o catálogo de sabores, os alergénios, os horários e um painel que se experimenta sem conta.

**A Gelateria Brina não existe**: é uma gelataria artesanal inventada em Turim, e a artesã, os sabores, as receitas e as fotografias são inventados; o site di-lo no topo de cada página. Tudo o resto é real: a vitrine em direto, os horários, o registo de alergénios e o painel, construídos como para um negócio real.

**O que faz**

- **Os sabores de hoje, em direto.** Em vez de uma fotografia está o balcão, desenhado em SVG pelo código: cada cuba com a cor do seu sabor e a etiqueta com o nome. Quando um sabor acaba, a sua cuba esvazia-se em todos os ecrãs abertos em menos de um segundo, e a vitrine indica «Atualizado às 15:42». - **O painel no telemóvel.** A artesã toca em interruptores grandes: este sabor há, este não, este esgotou. Cada toque fica logo online e anula-se durante oito segundos. - **Os alergénios.** Ingredientes com os alergénios a negrito, os 14 da legislação europeia, um registo para imprimir para a loja e nenhum filtro «sem…», que pareceria uma garantia. - **O resto.** Sabores da época, horários com a pausa de inverno e um «aberto agora» calculado, uma planta desenhada, estatísticas de visitas sem cookies e 13 fotografias geradas na GPU do meu computador.

**Quem vê pode experimentar o painel** sem conta: entra como «Convidado», segue três coisas para experimentar e, no computador, vê o site mudar ao lado do painel a cada toque. As alterações ficam no seu navegador, onde corre a mesma lógica do servidor sobre uma cópia dos dados; um teste automático verifica, rota a rota, que responde como o servidor. E para que a vitrine não fique parada, um dia de demonstração prepara o balcão à hora de abrir e esgota alguns sabores.

**A parte difícil** é nunca fingir estar atualizado. Se hoje ninguém tocou no balcão, a vitrine di-lo: «estes são os sabores de ontem à noite». Um sabor esgotado fica esgotado até alguém o repor. E o direto tem de aguentar num servidor real: os eventos passam pelo nginx sem ficarem retidos, um sinal a cada 25 segundos mantém a ligação viva e, se o direto não abrir, a página pede o estado a cada minuto. A página inicial leva 99 KB de JavaScript e não se mexe enquanto carrega.

Vue 3 e TypeScript, Fastify e MongoDB, esquemas Zod partilhados; cada alteração passa por 165 testes automáticos e chega ao meu servidor com uma GitHub Action.

Conceção, desenvolvimento full-stack e publicação · 2026

Vue.js, Fastify, MongoDB, TypeScript, Z-Image-Turbo

Ver o site

Andrea Coppetta