correct the client claim: the mobile apps are ours

"talking to stock Tailscale clients" was wrong, and wrong in a way that gave
away the strongest thing offscale has. On computers it is the stock client. On
iPhone, iPad and Android it is our own app — our implementation of the same
protocol, not a wrapper around theirs. No desktop app of our own yet, and the
copy says so.

Stated as a differentiator rather than a footnote, because it is the specific
that answers the obvious objection to self-hosting. Getting the official mobile
app to talk to a self-hosted server is the part of running headscale people give
up at; having an app that simply does is worth more than any sentence about
extras.

The protocol claim is unchanged and still leads, because it is what makes the
mobile app reassuring rather than alarming: our own client is our implementation
of Tailscale's protocol, not a private one. "Our own distribution" plus "our own
app" reads as a fork unless the first thing said is that there is nothing to fork.

Marker narrowed from "goodies" to "more goodies" — one is now named.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 19:57:33 +00:00
co-authored by Claude Opus 5
parent 2803bc34b7
commit 46ce58dd12
+28 -20
View File
@@ -62,14 +62,16 @@ tailscale_network_menu() {
info "Which network should this machine join?" info "Which network should this machine join?"
echo "" echo ""
echo " [1] set up your own network — offscale" echo " [1] set up your own network — offscale"
echo " Your own coordination server, running on this machine. offscale" echo " Your own coordination server, running on this machine. The"
echo " changes nothing about how any of it works: it is headscale's" echo " protocol is Tailscale's and the server is headscale's"
echo " open-source code, talking to stock Tailscale clients, exactly as" echo " open-source code — nothing about how machines find each other"
echo " they already do. Same protocol, same clients, same behaviour." echo " changes. On computers you use the stock Tailscale client; on"
echo " What it changes is the work — installing it, running it, keeping" echo " iPhone, iPad and Android there is our own app, our own"
# TODO(pastilhas): name them. "a lot of goodies" is what every product says; echo " implementation of the same protocol."
# two or three specifics are worth more than the sentence they replace. echo " What changes is the work: installing, running and upgrading it,"
echo " it upgraded — and it brings [ goodies to be listed ] with it." # TODO(pastilhas): more of them. The mobile apps are one specific worth naming;
# two or three others would be worth more than any sentence about "extras".
echo " and [ more goodies to be listed ]."
echo "" echo ""
echo " [2] use a network you already run — headscale or offscale" echo " [2] use a network you already run — headscale or offscale"
echo " You already have a coordination server somewhere. Point this" echo " You already have a coordination server somewhere. Point this"
@@ -111,19 +113,25 @@ tailscale_networks_help() {
echo "" echo ""
echo " OFFSCALE" echo " OFFSCALE"
echo " Our own distribution of headscale, which is to say: headscale." echo " Our own distribution of headscale, which is to say: headscale."
echo " The protocol is untouched and the code underneath is theirs. The" echo " The protocol is untouched and the server is their open-source code,"
echo " server speaks the same thing headscale speaks, the clients are the" echo " so a machine on an offscale network behaves exactly as it would on"
echo " stock Tailscale ones, and a machine on an offscale network behaves" echo " either of the other two. There is no offscale protocol to be locked"
echo " exactly as it would on either of the other two. There is no" echo " into, because there is no offscale protocol."
echo " offscale protocol to be locked into, because there is no offscale"
echo " protocol."
echo "" echo ""
echo " What differs is everything around it. Running headscale yourself is" echo " On computers you use the stock Tailscale client, pointed at your"
echo " a project: installing it, putting TLS in front of it, keeping it" echo " own server. On iPhone, iPad and Android there is our own app — our"
echo " upgraded, and administering it through a config file and a CLI." echo " implementation of the same protocol, rather than a wrapper around"
echo " offscale makes that a step in a setup script instead, and adds" echo " theirs. That one matters more than it sounds: getting the official"
# TODO(pastilhas): the specifics. echo " mobile app to talk to a self-hosted server is the part of running"
echo " [ goodies to be listed ] on top." echo " headscale that people give up at. Desktop apps of our own are not"
echo " there yet."
echo ""
echo " What differs otherwise is everything around the server. Running"
echo " headscale yourself is a project: installing it, putting TLS in"
echo " front of it, keeping it upgraded, administering it through a config"
echo " file and a CLI. offscale makes that a step in a setup script, and"
# TODO(pastilhas): the rest of the specifics.
echo " adds [ more goodies to be listed ] on top."
echo "" echo ""
echo " FOR OFFICER" echo " FOR OFFICER"
echo " Whichever you pick, the tailnet is what Officer treats as its" echo " Whichever you pick, the tailnet is what Officer treats as its"