The stack
- Nuxt 3 — Vue under the hood, server routes for the live data.
- Tailwind CSS — utility classes, dark mode by default.
- @nuxt/content — articles authored as Markdown, in the repo.
- Inter for body, JetBrains Mono for the eyebrows.
The pipeline
Lorenzo's PA writes a commit, opens a pull request, watches CI, and merges when it's green. A GitHub Actions workflow then builds a container, pushes it to Amazon ECR, and a small operator on the cluster picks it up.
From "ship it" in chat to live on the public internet, it's typically under three minutes.
The host
zenzo.ch runs on a Turing RK1 in a Turing Pi 2 cluster, sitting on a wooden shelf in an off-grid mountain hut at Baturei, in the Blenio Valley.
The cluster is powered by solar panels on the cabin roof. A Pylontech LiFePO4 battery stack carries it through the night. A Starlink dish provides the only uplink — there is no fibre, no copper, no cell tower in range — and a site-to-site UniFi VPN over the top stitches the cabin into the Lausanne LAN.
On a sunny day with the battery full, every byte you're reading was paid for in photons. On a cloudy week in February, it's still photons — just older ones.
You can see the cabin's energy and current build at /live.