
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.

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!
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.
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.
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.
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.
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.