But it's more for when you already use Tailscale, which relies on a central server and someone who "owns" that network.
In Flipflop you don't need anything besides the app, and each two peers form a "network" of their own, with no owner and no management.
Tailscale connections are peer-to-peer. They only own the coordination server, which you can ignore and host your own.
For some cases that is good, but Flipflop is addressing a slightly different use case.
I would argue that Tailnet is a good match for this.
Maybe expand the readme to cover other use cases interesting to existing Tailscale users?
I guess it's a bit like comparing WeTransfer with Airdrop, one tries to use the network they're on already (internet) where the other favors local-local connections.
Tailscale hosts relay servers as a fallback. Connections are peer-to-peer between devices.
Beyond that, even with a local connection established, all the coordination traffic will still go via the tailnet, those don't suddenly become local-first. But this might also have changed.
What I'm sure is still there today, is that all Tailscale clients automatically upload their logs to Tailscale's servers unless you opt out:
> Each Tailscale agent in your distributed network streams its logs to a central log server (at log.tailscale.com). This includes real-time events for open and close events for every inter-machine connection (TCP or UDP) on your network. - https://tailscale.com/docs/features/logging
Of course, doesn't stop a local connection from working so is only tangentially related, but worth keeping in mind that a "local tailscale connection" still has a lot of external traffic related to it, even though the data you transfer, when possible, uses more local connections.
1. The co-ordination server for the initial handoff. You can self-host if you want
2. Derp relays (for actual traffic). you can also self-host (peer relays)
Actually if self-hosting is that important to you, there are also newer solutions like netbird and netmaker that might worth a look.
Yes, as I noted, those differences wouldn't stop you from sending data locally. But since parent originally requested how they're different (without stating what exactly is important for them), I figured it is important at least to note what actually is the difference between taildrop and Flipflop.
It'd seem then if you wanted "local-first P2P transfer", with taildrop you'd need ~3 separate services running, unless I misunderstand you? Flipflop seems to do all those things in one package, although again, signaling (for NAT punching) is still via a central server.
Tailscale is super popular with people that have a homelab or nas/cameras/photos etc, and they have already solved the NAT problem (which iroh itself markets).