Other-hosted

How I manage a domain, DNS, email routing, IaC, and a static blog using only free tiers — no credit card, no monthly bill.

The project: manage a domain, a static blog, and the infrastructure between them — entirely with code, entirely for free. No credit card. Not “free tier with a card on file” — genuinely free.

I call it other-hosted: the opposite of self-hosted. Instead of running hardware or paying for VMs, everything runs on resources provided for free by other companies. The constraint makes the architecture interesting.

The stack

Domaineu.org is a free subdomain registrar that has been running since 1996. You get a *.eu.org domain, no card required, renewed indefinitely as long as the DNS resolves. Mine is maftoul.eu.org.

DNS and email routing — Cloudflare’s free plan handles the DNS zone and a catch-all MX that forwards any *@maftoul.eu.org address to a real mailbox — no mail server to run, no SPF gymnastics.

Code and CI — GitHub for repositories, GitHub Actions for automation. Two repos: one for blog content, one for infrastructure. The GitHub Actions free tier covers both.

IaCOpenTofu manages the Cloudflare zone, DNS records, Pages project, and GitHub repository configuration. OpenTofu is the open-source fork of Terraform, started after HashiCorp switched Terraform to the Business Source License in 2023 — a restrictive licence that prohibits competing with HashiCorp. OpenTofu is community-governed under the Linux Foundation.

StateHashicorp Cloud Platform free tier stores the OpenTofu state remotely. The irony of using HCP to store state for an OpenTofu setup is not lost on me.

BlogAstro with a custom theme built from scratch, deployed to Cloudflare Pages. The free plan includes unlimited deployments, custom domain, and HTTPS.

How it fits together

A push to main in the blog repo triggers a Cloudflare Pages build automatically via its GitHub source integration. The blog is live in under a minute.

Infrastructure changes go through a pull request workflow: opening a PR runs tofu plan and posts the diff as a comment; merging runs tofu apply. Cloudflare and GitHub are both managed as code — DNS records, page rules, repository settings, all of it.

Trade-offs

The obvious risk is dependency on third-party free tiers. Any of these services could change pricing or shut down. But the architecture is modular: replacing one piece doesn’t require rebuilding everything. The IaC layer means migrating to a different DNS provider or hosting platform is a plan/apply, not a manual afternoon.

Total monthly cost: $0.00.