Energia Natural
Site institutionnel dynamique pour une entreprise de formation et services énergétiques. Exigences lourdes : back-office complet, login sans mot de passe, analytics maison, RGPD par conception — le tout à coût zéro.

Le défi
- Le client devait gérer messages, événements, projets, services, paramètres, utilisateurs et historique — tout depuis l'admin.
- 16 pages de service devaient être générées depuis la base de données, pas statiques.
- Login sans mot de passe (l'équipe ne peut pas gérer des credentials).
- Analytics sans cookies — RGPD par conception, pas par consentement.
- Budget opérationnel : zéro. Tout sur tiers gratuits.
L'approche
Astro 5 en SSR hybride sur Cloudflare Pages + D1 + R2. Magic links avec tokens à usage unique et allowlist en D1 — pas de mot de passe, pas de friction. Analytics maison en ~150 lignes écrivant directement en D1, sans cookies, sans outil tiers. Toute la stack vit sur les tiers gratuits de Cloudflare et Resend.
Ce que j'ai construit
Back-office complet
8 modules : messages, événements, projets, services, paramètres, utilisateurs, analytics, historique.
Pages dynamiques
16 pages de service générées en SSR depuis D1.
Auth sans mot de passe
Magic links via Resend, tokens à usage unique, allowlist D1.
Analytics sans cookies
~150 lignes, RGPD par conception, dashboard maison.
Email du domaine
@energianatural.pt via Cloudflare Email Routing, tier gratuit.
Anti-spam
Turnstile + honeypot + rate-limit par email sur le formulaire.
Ce que j'ai appris
Cloudflare D1 suffit pour 90 % des sites
J'avais commencé nerveux avec SQLite distribué — sans raison. Pour les sites institutionnels jusqu'à quelques milliers d'utilisateurs, D1 dépasse largement les besoins, c'est gratuit, et l'intégration avec Cloudflare Pages est triviale.
Le CMS sur mesure a pris plus de temps que prévu
J'ai sous-estimé l'effort d'un back-office à 8 modules. La prochaine fois je facture plus ou j'utilise Payload CMS pour les modules génériques et je n'écris que le spécifique client.
Lighthouse 100/100/100/100, c'est excessif mais ça vend
Atteindre 100 dans chaque catégorie a coûté ~2 jours de plus. Pour l'utilisateur final, 90+ suffisait. Mais le screenshot d'un Lighthouse parfait est un argument de vente direct pour le prochain client.
Magic links battent les mots de passe
Le client n'a jamais demandé "j'ai oublié mon mot de passe" parce qu'il n'y en a aucun à oublier. Pour les petites équipes (jusqu'à ~20 utilisateurs), je le recommande systématiquement.
Prochaines étapes
Phase suivante : intégrer les paiements pour les inscriptions aux formations et étendre les notifications au SMS en plus de l'email. J'attends du feedback d'usage réel avant de continuer.
Besoin d'une plateforme sur mesure ?
Je peux concevoir et construire une stack complète pour ton entreprise — back-office inclus.