Skip to content
ruben.moderno
2025/Arquitectura, desenvolvimento e infra

Energia Natural

Site institucional dinâmico para empresa de formação e serviços de energia. Veio com requisitos pesados: back-office completo, login sem passwords, analytics próprio, RGPD por design — e tudo a custo zero.

AstroCloudflare D1TypeScriptSSRCustom CMS
Visitar site
Energia Natural
Resultados
100/100
Lighthouse em todas as métricas
0€
custo de operação por mês
< 1 min
para publicar, sem código
18
páginas, 16 geradas da base de dados
O desafio

O desafio

  • Cliente precisava de gerir mensagens, eventos, projectos, serviços, definições, utilizadores e histórico — tudo via admin.
  • 16 páginas de serviço tinham de ser geradas a partir da base de dados, não estáticas.
  • Login tinha de ser passwordless (a equipa não consegue gerir credenciais).
  • Analytics tinha de existir mas sem cookies — RGPD por design, não por consentimento.
  • Orçamento operacional: zero. Tudo tinha de viver em free tiers.
A abordagem

A abordagem

Astro 5 em SSR híbrido sobre Cloudflare Pages + D1 + R2. Magic links com tokens de uso único e allowlist em D1 — sem passwords, sem fricção. Analytics próprio escrito em ~150 linhas que escreve directamente para D1, sem cookies, sem ferramenta externa. Toda a stack vive em free tiers da Cloudflare e Resend.

Blocos construídos

Blocos construídos

Back-office completo

8 módulos: mensagens, eventos, projectos, serviços, definições, utilizadores, analytics, histórico.

Páginas dinâmicas

16 páginas de serviço geradas em SSR a partir de D1.

Auth passwordless

Magic links via Resend, tokens de uso único, allowlist D1.

Analytics cookieless

~150 linhas, RGPD por design, dashboard próprio.

Email do domínio

@energianatural.pt via Cloudflare Email Routing, free tier.

Anti-spam

Turnstile + honeypot + rate-limit por email no formulário.

O que aprendi

O que aprendi

Cloudflare D1 é suficiente para 90% dos sites

Comecei nervoso com SQLite distribuída — não precisava. Para sites institucionais com até alguns milhares de utilizadores, D1 é mais que suficiente, é grátis, e a integração com Cloudflare Pages é trivial.

Custom CMS levou mais tempo que esperava

Subestimei o esforço de fazer um back-office com 8 módulos. Da próxima vez ou cobro mais ou uso uma stack como Payload CMS para módulos genéricos e só escrevo custom o que é específico do cliente.

Lighthouse 100/100/100/100 é overkill mas ajuda a vender

Atingir 100 em todas as categorias custou ~2 dias extra. Em termos práticos para o utilizador final, 90+ era suficiente. Mas o screenshot do Lighthouse perfeito é um argumento de venda directo para o próximo cliente.

Magic links são melhor UX que passwords

A cliente nunca pediu "esqueci-me da password" porque não há password para esquecer. Para equipas pequenas (até ~20 utilizadores), recomendo sempre.

Próximos passos

Próximos passos

Próxima fase: integrar pagamentos para inscrições em formações e expandir o sistema de notificações para SMS além do email. Aguardo feedback de uso real antes de avançar.

Precisas de uma plataforma à medida?

Posso desenhar e construir uma stack completa para o teu negócio — back-office incluído.

Falar comigo