A guide for the technically curious who don't want to become a sysadmin
You get a private cloud that is yours. No subscription fees. No company reading your family's data. No features disappearing behind a paywall. And — the part that makes it genuinely fun in 2025 — you can describe a new feature to an AI assistant and it just… builds it for you.
This guide covers the path from "I have an old PC" to "I have a family dashboard with tasks, events, trip planning, and a chat interface that my whole household uses."
Estimated setup time: one weekend, most of which is waiting for things to download.
Skim version: Buy a domain, point DNS to Hetzner's nameservers, grab an API key.
.com is fine, .family is fun if you want something different.Why Hetzner for DNS? The HomeFree platform (coming up) uses Let's Encrypt with DNS verification for wildcard certificates. Hetzner's DNS API is supported out of the box.
Skim version: Boot from USB, follow the installer. NixOS declares your entire system in config files.
NixOS is unlike other Linux distributions. Instead of apt install and forgetting what you've done, everything is declared in a config file. You can wipe the machine and rebuild it identically. You can roll back if an update breaks something.
The key mental model: your entire system lives in /etc/nixos/. Change a file, run sudo nixos-rebuild switch, and the system reflects your changes. That's it.
Skim version: HomeFree is a NixOS module that gives you a fully-configured home server platform in about 50 lines of config.
HomeFree is a NixOS flake that handles the boring infrastructure:
Follow the HomeFree docs to add it as a flake input to your NixOS config. The short version:
/etc/nixos/configuration.nix to use flakes (the docs explain this)flake.nixsudo nixos-rebuild switch — HomeFree installs itselfAfter this, visiting your domain shows a real HTTPS page. That certificate was obtained and will renew automatically, forever, without you doing anything.
Skim version: Edit a config file, rebuild, your services appear at subdomains.
HomeFree uses a config file to declare what services you want. A typical entry looks like:
{
"services": {
"myapp": {
"port": 9000,
"public": false,
"oauth2": true
}
}
}
This tells HomeFree: "there's an app on port 9000, make it available at myapp.yourdomain.com, require SSO login."
After sudo nixos-rebuild switch you'll have:
auth.yourdomain.com — your SSO login page (Zitadel)myapp.yourdomain.com — your app, behind loginSet up Zitadel to allow Google login: go to auth.yourdomain.com, create an application, add a Google OAuth provider. Your family logs in with their existing Google accounts — no new passwords.
Skim version: The fun part. A real app your household actually uses every day.
Once your server is running, you deploy a custom web app. The one described here includes:
Your family accesses it at app.yourdomain.com. It installs to the home screen on iOS and Android and behaves like a native app.
The magic: because this is your own code on your own server, you can change anything. Add a tab. Change how tasks work. Add a new AI feature. You're not waiting for a product team.
Skim version: Describe what you want, Claude writes it, you review and deploy. A new feature takes 10–30 minutes.
This is where it gets genuinely exciting. You don't need to be a software engineer to add features.
npm install -g @anthropic-ai/claude-code
export ANTHROPIC_API_KEY=sk-ant-...
# Add to ~/.zshrc or ~/.bashrc to make it permanent
claude
That's it. You now have an AI assistant that can read your code, understand your project, and write changes.
You open Claude in the terminal and type something like:
"Add a new tab to the family app called 'Grocery List' where any family member can add items, and anyone can check them off. Items should persist between sessions."
Claude will:
You review the diff, run sudo systemctl restart myapp, and your family has a grocery list.
Real features built this way:
Each of these was built in a single conversation with Claude, without writing a line of code manually.
describe feature → Claude writes it → review changes → restart service → done
Skim version: NixOS is stable. Logs are in journalctl. Rebuilds are safe because you can always roll back.
journalctl -u myservice -f # check logs
sudo nixos-rebuild switch # apply changes
sudo nixos-rebuild switch --rollback # undo if something broke
nix flake update && sudo nixos-rebuild switch # update everything
NixOS rollbacks are genuine — the previous generation of your entire system is preserved and bootable. If an update breaks something, one command undoes it.
What you've built is a private, programmable platform for your household. The infrastructure (NixOS + HomeFree) handles the hard parts — certificates, proxying, authentication, updates. The app layer is just code you own and can change.
The combination of a stable declarative OS and an AI coding assistant means the technical barrier to adding new features is very low. You don't need to understand every line of code Claude writes to use it effectively. You need to be able to describe what you want, read a diff, and decide if it looks right.
That's a skill anyone technically curious can develop. And the payoff — a digital home that works exactly the way your family needs it to — is genuinely worth the weekend.