Nice blog post! I like the way this problem is approached and solved. Peeking under the "table" to see how the internals work is actually creative when trying to fix things "upstream" on an upper abstraction layer.

Unfortunately, I still don't love Tailscale. I do like it, a lot even. But their refusal to open-source all their clients (and the server) is baffling, especially considering that they have an employee contributing to Headscale, the community-led FOSS tailscale server. At that point just open-source the damn thing!

Issues aside, it's still a great product. It actually felt like magic when I first used it in a way few technologies have.

There is some money (rightly and legitimately) to be made as well. We all are Craftsmen. We all deserve some.

There's headscale[1] that fills the gap somewhat.

[1] https://github.com/juanfont/headscale