Dora Noda
Software Engineer
Dora Noda is a Software Engineer writing about Web3 infrastructure, blockchain networks, and self-hosting.
3404 posts · View all authors

Why Forgejo, Not Gitea, Is 2026's Default Self-Hosted Git Pick
In October 2022, Gitea's domain and trademark moved to a for-profit company without a community vote. Four years and one GPL license split later, most 2026 self-hosting guides default to the fork that split off, not the original. Here's the governance timeline, the honest feature tradeoffs, and what it means for a git-push PaaS picking a source-of-truth.

GitHub Codespaces at $0.36/Core-Hour: What a 5-Dev Team's Quarterly Bill Really Looks Like Against Owning the Box
A worked quarterly cost comparison of GitHub Codespaces against a self-hosted Coder/Hetzner devcontainer stack for a 5-developer team — including the ops-labor line most comparisons leave out.

Haloy Cuts the Registry Out of the Deploy Path Entirely — Here's What That Actually Buys You
Haloy builds your Docker image locally, uploads only the changed layers straight to your server, and skips Docker Hub or GHCR entirely — here's exactly how that differs from Kamal and Dokku's registry-dependent deploy paths, and what it does and doesn't change for a Kubernetes-based fleet.

Harbor's Garbage Collection Doesn't Block Your Registry Anymore — So What's the Real Cost Zot Is Actually Solving?
Harbor's registry hasn't gone read-only during garbage collection since 2020 — the real cost of running it against a build-per-deploy pipeline is worker-bound reclaim lag, and here's what Zot's inline GC actually trades for it.

We Took the $828/Year Heroku-to-Render Rails Migration One Hop Further: What Self-Hosted on Hetzner Actually Costs
A developer saved $828/year moving a Rails app from Heroku to Render. We took the same web/worker/Postgres/Redis topology one hop further onto owned Hetzner hardware — real numbers, including the June 2026 Hetzner price hike that complicates the math.

Hetzner Killed the `datacenter` Field on Schedule. CAPH's Provider Code Survived — Its Vendored SDK Didn't Keep Up
Hetzner removed the datacenter field from its Server and Primary IP API on July 1, 2026. A code audit of Cluster API Provider Hetzner found its own logic was never at risk, but its vendored Go client is stuck on a release from before the fix, and the dependency bump has sat in a stalled, CI-failing pull request since June.

Hetzner's Singapore Region Isn't a 2026 Launch — It's a 2026 Repricing: What APAC Self-Hosting Actually Costs
Hetzner's Singapore region launched in 2024, not 2026 — what changed this year is price, not availability. A line-by-line look at the 2026 repricing, the feature gaps versus the EU baseline, and whether Cluster API actually reaches ap-southeast.

Kubernetes' New Node Readiness Controller Closes the 'Pod Scheduled Before the Node Actually Works' Gap
None of CCM, CNI, or CSI natively report a Node Condition NRR can gate on — a worked example wires three NodeReadinessRule manifests into a Hetzner bare-metal bootstrap sequence anyway, and shows why managed EKS/GKE node pools never surface this bug in the first place.

Kamal 2.0's kamal-proxy: How Thin Can a Production PaaS Get Before It Needs Kubernetes?
Kamal 2.0's kamal-proxy runs HEY and Basecamp on nothing but Docker and a YAML file. Here's exactly what's in that box, where its five structural gaps are, and which Cluster API mechanism closes each one.