hugo palma.work

Analysis_Logged Dec 30, 2025

Why I built this website, its tech stack and approach

I. The Optimization Instinct

I am, at my core, an engineer. Not just by degree—Mechatronics and Robotics—but by instinct. Throughout my career, whether I was managing supply chains, handling financial risk protocols, or writing algorithms, I have always been the person in the room looking for the inefficiency. I look for the red tape, the manual repetition, and the "black boxes" that no one understands.

And then I fix them.

We are living through an AI hype cycle that is deafening. CEOs are selling AGI fantasies while engineers are struggling to integrate basic APIs reliably. I decided to tackle AI the same way I tackled robotics: by taking it apart.

I built HugoPalma.work not just as a portfolio, but as a living laboratory. I wanted a space to journal my transition from "Traditional Engineering" to "AI Infrastructure Strategy," but I refused to do it the easy way. I didn't want a Wix site or a generic WordPress template.

The Cloudflare Audit (Dec 18, 2024)

When I deployed this server, the AI suggested I use "Rocket Loader" scripts and complex cloud caching layers to improve performance. A non-technical user would have accepted this "optimization."

I rejected it. Because I understand the stack from the metal up, I knew that for a 29MB Go binary, these scripts were "Snake Oil"—adding bloat rather than speed. This site runs on raw efficiency, not marketing plugins.

II. Why I Rejected React

In a world of 500MB node_modules folders and complex Docker-Kubernetes orchestrations, I chose to go the other way. When I scoped the architecture for HugoPalma.work, I had one non-negotiable constraint: Efficiency.

The Stack Comparison

Metric
My Architecture (Go)
Traditional (Node/React)
Binary Size
29 MB
~400 MB+
CPU Time
< 1ms
5-10ms
Idle RAM
15 MB
100-200 MB
Deployment
SCP 1 File
CI/CD + Containers

I included a full custom CMS in that 29MB binary. It has a Monaco Editor (the same engine VS Code uses), a secure OIDC login system, and a WebSocket-based terminal.

If I had used a standard framework, I would be managing dependency updates, fighting hydration errors, and paying for cloud compute I don't need.

By understanding the stack from the metal up, I stripped away the bloat. I don't need a "Build Step" in production. I don't need a complex CI/CD pipeline. I compile it, I upload it, and it runs.

This is the difference between Software Development (gluing libraries together) and Systems Engineering (designing for constraints).

III. How Light Can It Get?

You might be wondering: "Is this really that unusual? Aren't all modern websites built this way?" The answer is no. Let me show you what "normal" looks like.

The Anatomy of My 29MB Binary

Go runtime:~12MB
SQLite driver:~5MB
Templates:~50KB
Static assets:~500KB
Code:~1MB
Admin libs:~10MB
Total:29MB

Alternative Approaches Ranked by Size

1. Static HTML + CDN (~100KB) ⚡

Pros: Absolutely minimal, free hosting, instant global CDN

Cons: No dynamic content, no database, no admin panel

Sacrifice: Everything that makes the site useful

2. LAMP Stack (~300MB+)

Apache (55MB) + PHP (15MB) + MySQL (200MB+)

Verdict: 10x larger footprint for the same functionality

3. Node.js + Express (~250MB+)

Node runtime (50MB) + node_modules (200MB)

Load time: Your Go binary: <1ms | Node.js: ~500ms

4. Next.js / React (~400MB+)

Server: 400MB | Client bundle: ~300KB

Result: 13x larger, 3-4x slower page loads

Resource Usage Comparison

Stack
Memory (Idle)
CPU/Request
Page Load
My Go Binary
15-30MB
<1ms
<200ms
Node.js + Express
100-200MB
5-10ms
-
PHP-FPM
50-100MB
10-20ms
-
Java Spring
300-500MB
2-5ms
-
React SPA
-
-
500-800ms

IV. Is This Common? No. Should It Be? Maybe.

Why It's Rare

  • Developer Familiarity: Most devs know JavaScript/Python, not Go
  • Vendor Ecosystem: Vercel/Netlify push their platforms (Next.js/Gatsby)
  • Framework Hype: "Modern" = React/Vue, not vanilla
  • VC Money: Free tiers subsidize bloat (Vercel, Supabase, etc.)

Why It Works for Me

  • Low traffic: Personal portfolio, not scaling to millions
  • Simple needs: CMS + auth + database, no real-time features
  • Systems background: I understand the stack from metal up
  • Control preference: Single binary > orchestrating 10 services

When to Switch

Traffic
Better Option
<1k/day
Single binary (I am here)
1k-100k/day
Single binary still works
100k-1M/day
Add read replicas, still Go
1M+/day
Microservices, CDN, caching layers

V. Proof of Work

I have proven time and again—from purchasing departments to trading desks—that I am the person who can spot a flaw in a process and streamline it using technology. Recently, that technology has been AI.

But AI isn't magic. It's just another layer of automation, similar to the JIT (Just-In-Time) inventory systems I built for e-commerce. It requires architecture, constraints, and rigorous auditing.

This website is my proof of work. It is where I show, not just tell, how to build self-sustaining, efficient systems in an era of digital bloat.

Final Verdict: Already Winning

The 29MB binary is:

  • 10x lighter than typical Node.js app
  • 13x lighter than Next.js deployment
  • 3-4x faster page loads than React SPA
  • Simple: One file, one command
  • Cheap: $5/mo VPS handles thousands of users
  • One binary
  • One scp command
  • No build step in production
  • 15MB RAM idle


Most "modern" web apps come with:

  • 300MB+ dependencies
  • Complex deployment (Docker compose, Kubernetes)
  • Multiple services (app server, DB, Redis, etc.)
  • Build pipelines (webpack, babel, etc.)

Could it be lighter? Yes, down to 8MB with UPX compression, or 0 bytes with static HTML.
Should it be? No. The admin panel (Monaco editor, terminal, database management) is worth every one of those 29 megabytes.

This is as light as reasonable gets while maintaining full CMS functionality.

End_of_Transmission

Status: ARCHIVED