Skip to content
Rúben Modernoruben.moderno
Energia Natural
2026/Architecture, development & infra

Energia Natural

Micael works the land — intuitive agriculture, deep ecology, regenerating a Mediterranean landscape. He couldn't depend on me to change a price; that would go against everything he practices. I built him a site he runs entirely on his own, from the first line of text to the last price.

AstroCloudflare D1TypeScriptSSRCustom CMS
Visit site
Energia Natural
Results
100/100
Lighthouse across every metric
17 modules
of back-office, run by him alone
< 1 min
to publish, no code
35
pages, 27 generated from the database
Building our site was quite an adventure, and Rúben was there for every design, every change, every step of the way. Available, creative, dedicated and tireless. From our side it felt like working with someone who commits and gives himself to the project, making it a mission of his own. Communication was clear, with proactive and always positive energy. We're very happy with the result, but also with the process, which was lighter for being with Rúben. So grateful for everything!
Mica and JoanaEnergia NaturalTranslated from Portuguese
The challenge

Nothing could depend on me

  • His business is about autonomy — depending on a developer to change a price made no sense.
  • He had to manage messages, events, projects, services, settings, users and history — all himself, via admin.
  • 14 service pages had to come from the database, not from static files only I could edit.
  • Passwordless login — a small team has no time to manage lost credentials.
  • Analytics had to exist, but cookieless — GDPR by design, not by a consent banner.
The approach

A site he tends himself

Astro 5 in hybrid SSR over Cloudflare Pages and D1, with an admin built around his business — no generic CMS forced to fit. Magic links with single-use tokens and a D1 allowlist take passwords out of the way. Custom analytics, written by me in ~150 lines, writes straight to D1, no cookies, no third-party tools. The result: Micael logs in, changes what he needs, logs out — without waiting on me.

What I built

A 17-module back-office, all his

Full back-office

17 modules — the site's 7 pages, messages, identity and brand, menu and footer, legal pages, 404 page, all texts, translations, users, analytics and history — run by him, start to finish.

Dynamic pages

14 service pages come from the database: change the text and the page updates itself.

Passwordless auth

Magic links via Resend, single-use tokens, D1 allowlist — no password to forget.

Cookieless analytics

~150 lines written from scratch, GDPR by design, his own dashboard.

Domain email

@energianatural.pt via Cloudflare Email Routing.

Anti-spam

Turnstile + honeypot + per-email rate-limit, no manual intervention.

What I learned

Building for someone who wants no middleman

Cloudflare D1 is enough for almost everything

I started nervous about distributed SQLite — didn't need to be. For institutional sites with up to a few thousand users, D1 is more than enough, and Cloudflare Pages integration is trivial.

A custom CMS takes longer than it looks

I underestimated the effort of a 17-module back-office. Next time I either charge more for it, or use something like Payload CMS for the generic modules and only build from scratch what's client-specific.

Lighthouse 100/100/100/100 is overkill but it sells

Hitting 100 in every category cost ~2 extra days. For the end user, 90+ was enough. But a perfect Lighthouse screenshot is a direct sales argument for the next client.

Magic links beat passwords

He never once asked for a "forgot password" because there's no password to forget. For small teams (up to ~20 users), I always recommend it.

What's next

Enrollment payments and SMS

Next phase: integrate payments for training enrolments and extend notifications to SMS on top of email. Waiting for real-usage feedback before pushing forward.

Need a tailored platform?

I can design and build a complete stack for your business — back-office included.

Talk to me