Skip to content

[ TRANSPARENCY ]

How the work is built

Real API costs, technical decisions, mistakes acknowledged. No marketing here — just the operational backstage. Updated May 17, 2026.

Last updated:

This page exists because almost nobody in the sector publishes this and I’d like to read it on other consultants’ sites. Real cost of operating my infrastructure, what decisions I made and why, what went wrong and how it was solved. No marketing filter.

Monthly infrastructure cost

ServicePlanCost/month
Hetzner Cloud CX23VPS Ubuntu 24.04~€5
CloudflareFree€0
Turso (libSQL)Free€0
Resend (transactional email)Free (3,000/month)€0
SentryFree (no Replay)€0
Backblaze B2 (backups)Pay-as-you-go<€1
Banahosting (domain mail)Minimal mailbox~€3
Total infrastructure~€10/month

Cost of working APIs

API / ServicePlanCost/month
Anthropic API (Opus 4.7 + Haiku)Pay-as-you-go~€80
DataForSEO APIPay-as-you-go~€120
Semrush ProAnnual~€120
Ahrefs LiteMonthly (when needed)~€99
Screaming FrogAnnual license~€17 (prorated)
Total SEO + AI tooling~€436/month

Conscious technical decisions

  • Next.js 15 over WordPress for performance + control.
  • Custom CSS variables (no Tailwind).
  • Self-hosted Umami over Google Analytics (cookieless, GDPR-clean).
  • No affiliate links anywhere on this site.
  • No invasive cookie banner (no GA, no tracking cookies, so no need).
  • Magic link auth (no passwords) for the upcoming AI Workshop.

Acknowledged mistakes

  • Accidental token leak during Coolify setup (2026-05-17): snapshotting the «Developer view» textarea of Environment Variables exposed secret values in the Claude Code transcript. Mitigation: immediate rotation of 2 of 5 affected secrets. The other 3 carry residual risk pending rotation.
  • Coolify initial build failed on default Node 18 (2026-05-17): Nixpacks uses Node 18 by default (EOL). Fix: versioned nixpacks.toml pinning Node 22. Lesson: don’t trust Nixpacks to read engines.node or .nvmrc; use the explicit file.
  • Outage from CF Spain block (2026-05-17): after a routine push, the site went down. Initial diagnosis was Coolify build fail; real cause was the mass blocking of Cloudflare IPs in Spain by court order during a LaLiga match. Mitigation: temporary CF bypass. Documented for future diagnoses.

What I don’t bill for even if it takes time

  • Initial free 10-min review before accepting a client.
  • Free 30-min diagnostic call after accepting a client.
  • 7 days post-audit email support included.
  • Maintenance of open-source scripts on GitHub.

What I won’t do even if paid

  • Buy fake reviews for a client.
  • Aggressive link building on spam networks.
  • Publish 100% AI-generated content without human editing.
  • Black-hat SEO (cloaking, doorway pages, etc.).
  • Work for sectors I’m not comfortable with ethically.

For the tech stack detail, see /uses. For what I’m doing now, /now.

Transparency — Jesús Porres · Jesús Porres