quests MAP: WORLD 1-1 NODES: 7

~/pedroganco/vibecoding $ cat world_map.svg

WORLD MAP

$ claude "põe isto online"

Seven pieces, two loops. One loop builds: you talk to an agent, the agent works on your machine and pushes the code. The other loop serves: a visitor asks for the site and a container answers. Click any box to see what it does.

~/map/world_map.svg CLICK THE BOXES

← drag sideways to see the whole map →

Vibecoding architecture map You prompt an agent, the agent edits files on a Mac mini, pushes to GitHub and deploys over SSH to a Hetzner VPS where Traefik routes traffic to Docker containers, with Cloudflare handling DNS and HTTPS in front. 🧑 YOU one sentence 1 CODEX the agent in your terminal 2 🖥 MAC MINI ~/Code · git · docker · ssh 3 GITHUB repos · history 4 one VPS · dozens of sites TRAEFIK routes hosts · issues certs 🐳 docker requiem.pt sanum.pt vibecoding + 50 more containers 5 DNS · proxy · SSL 6 🌍 VISITOR a browser, somewhere 7 PROMPT → PRODUCTION
~/map/nodes/02_agent.md NODE 02

Claude Code / Codex

The agent in your terminal.

// what it does

// what you set up once

~/map/anatomy_of_a_prompt.log ONE PROMPT

You type one sentence. This is everything that happens between that sentence and a stranger loading the site.

  1. You ask"add a pricing page to sanum and put it online." The agent reads the project's CLAUDE.md to learn where things live.
  2. The agent writes codeIt edits files on the Mac mini, runs the build and the tests, opens the local dev server to check its own work.
  3. Git keeps scoreCommit and push. GitHub is the undo button: if the agent breaks something, the previous commit is still there.
  4. DNS gets a recordIf the site is new, the agent calls the Cloudflare API and points the hostname at the VPS, proxied and behind SSL.
  5. The code travelsrsync copies the folder over SSH, then docker compose builds the image and starts the container on the VPS.
  6. Traefik picks it upIt reads the container's labels, sees the hostname, asks Let's Encrypt for a certificate and starts routing.
  7. Someone loads the pageTheir browser resolves the name at Cloudflare, Cloudflare passes it to Traefik, Traefik hands it to the container. About ninety seconds after your sentence.
🧠 one sentence⌨️ zero yaml🚀 one URL
~/map/the_catch.md THE CATCH

Where this breaks

The map is honest about the happy path. Three places where it stops being smooth: secrets, which never live in the repo and have to be put on the VPS by hand; a full disk, because fifty containers and their images add up faster than you expect; and the DNS propagating slower than the agent reports success, so the first load after a deploy sometimes lands nowhere.