AI Shoulder Surf V3 The third AI Shoulder Surf meeting on May 28, 2026, featured participants using Tailscale to securely access private home labs. Olaf built a triathlon training plan with Claude and hosted it on his Tailscale network after a probe attempt, while Aaron created a job-hunt workspace and a wildcard tailnet with Homepage for private access to self-hosted sites. What follows is an AI summary of our meeting. The target audience is mostly the folks who were on the call, but I’ll be happy if anyone else gets something out of it. On Thursday, May 28, 2026 we had our third AI Shoulder Surf. The first /2026/03/16/ai-shoulder-surf-v1 writeup explains the format, but the short version: it’s an informal Zoom call where we share screens, talk about what we’re working on, and admit what we don’t know. The connective thread this time was Tailscale https://tailscale.com/ : everyone at the table had quietly built a private home lab and was reaching it from anywhere without exposing a single port to the public internet. " Stop....hammer time? https://www.flickr.com/photos/troy williams/31926210275/ " by troy williams https://www.flickr.com/photos/troy williams is licensed under CC BY 2.0 https://creativecommons.org/licenses/by/2.0/?ref=openverse . Olaf: Coach Claude olaf-coach-claude I have a triathlon coming up, so I asked Claude to build me a training program. I fed it a GPX file of the bike course so it could analyze the climbs and base the training around the actual route, then gave it my constraints — swim on these days, long run on a Wednesday — and it laid the whole thing out nicely. As a bonus it generated a little static website for the plan. I spun that up on my Hetzner https://www.hetzner.com/ VM and within about five minutes something had already tried to GET the .env file. It wasn’t being served, so no harm done, but it was a good reminder of what the open internet is like the moment you put anything on it. So I moved the whole thing onto my Tailscale network instead. Now my training plan isn’t getting probed by creeps — it’s just there for me when I want it. The other nice touch: Claude also produced an iCal subscription and parks it in a GitHub gist. I subscribed to that URL from my phone calendar, and it actually updates when the plan changes. I’m happier with that than I would be wrangling a spreadsheet or paying a monthly fee for an app that doesn’t quite do what I want. Aaron: A job-hunt workspace you can reach from anywhere aaron-a-job-hunt-workspace-you-can-reach-from-anywhere Aaron has been job hunting, and he hit the familiar problem of bookmarking a posting to “apply later” and then forgetting it. So he built himself a little GitHub project: a spreadsheet of every place he’s thinking about applying to. When he’s in the mood, he kicks off an agent — he’s on Gemini CLI https://github.com/google-gemini/gemini-cli / Antigravity now — to research a company, draft a cover letter, and coach him with questions about the role. The clever part is where it lives. The whole thing sits in a folder on his VM, so when he’s at a coffee shop and feels like chipping away at it, he connects to his Tailscale network, SSHes into the VM, and it’s right there. No syncing the project onto multiple machines, no “which laptop has the latest version.” One home for the work, reachable from anywhere on the tailnet. Aaron: A wildcard tailnet with Homepage aaron-a-wildcard-tailnet-with-homepage Aaron is also self-hosting a pile of little static reports and dashboards, and he’s wired them together with Homepage https://gethomepage.dev/ — a project that gives you a web front end plus an NGINX reverse proxy on a Docker Compose stack. He spins the stack up on his VM and points the reverse proxy at his various static-page folders. Then the DNS trick: he created a .dev.