Energia Natural
Sitio institucional dinámico para una empresa de formación y servicios energéticos. Llegó con requisitos pesados: back-office completo, login sin contraseñas, analítica propia, RGPD por diseño — todo a coste cero.

El reto
- El cliente necesitaba gestionar mensajes, eventos, proyectos, servicios, ajustes, usuarios e historial — todo desde admin.
- 16 páginas de servicio debían generarse desde la base de datos, no estáticas.
- Login sin contraseñas (el equipo no puede gestionar credenciales).
- Analítica sin cookies — RGPD por diseño, no por consentimiento.
- Presupuesto operativo: cero. Todo en capas gratuitas.
El enfoque
Astro 5 en SSR híbrido sobre Cloudflare Pages + D1 + R2. Magic links con tokens de un solo uso y allowlist en D1 — sin contraseñas, sin fricción. Analítica propia en ~150 líneas que escribe directo a D1, sin cookies, sin herramienta externa. Toda la stack vive en capas gratuitas de Cloudflare y Resend.
Lo que construí
Back-office completo
8 módulos: mensajes, eventos, proyectos, servicios, ajustes, usuarios, analítica, historial.
Páginas dinámicas
16 páginas de servicio SSR generadas desde D1.
Auth sin contraseñas
Magic links vía Resend, tokens de un solo uso, allowlist D1.
Analítica sin cookies
~150 líneas, RGPD por diseño, dashboard propio.
Email del dominio
@energianatural.pt vía Cloudflare Email Routing, free tier.
Anti-spam
Turnstile + honeypot + rate-limit por email en el formulario.
Lo que aprendí
Cloudflare D1 basta para el 90% de los sitios
Empecé nervioso con SQLite distribuida — no hacía falta. Para sitios institucionales con hasta unos miles de usuarios, D1 sobra, es gratis, y la integración con Cloudflare Pages es trivial.
El CMS a medida llevó más de lo esperado
Subestimé el esfuerzo de un back-office con 8 módulos. La próxima vez o cobro más o uso Payload CMS para los módulos genéricos y solo escribo a medida lo específico del cliente.
Lighthouse 100/100/100/100 es excesivo pero vende
Lograr 100 en cada categoría costó ~2 días extra. Para el usuario final, 90+ era suficiente. Pero el screenshot del Lighthouse perfecto es un argumento de venta directo para el próximo cliente.
Magic links ganan a las contraseñas
El cliente nunca pidió "olvidé la contraseña" porque no hay contraseña que olvidar. Para equipos pequeños (hasta ~20 usuarios), siempre lo recomiendo.
Próximos pasos
Siguiente fase: integrar pagos para inscripciones en formaciones y ampliar las notificaciones a SMS además del email. Espero feedback de uso real antes de avanzar.
¿Necesitas una plataforma a medida?
Puedo diseñar y construir una stack completa para tu negocio — back-office incluido.