§00The honest map

How FrogNet compares.

You already know things this resembles. So first, the measuring stick: a real, full FrogNet is a complete network that installs itself onto whatever hardware is present — discovery, elections, routing over any transports multiplexed together, shared memory as the programming model, a media ladder, and the applications, complete on a LAN with no broker and no tunnel in it. Every comparison below starts there: the whole of them against the whole of us. We will not compare a part of FrogNet to the whole of something else. No matrix — each neighbor gets the one honest statement, and where a question is settled elsewhere on this site, it says so and points there.

§01CRDTs & local-first

Automerge, Yjs, and the local-first world.

The whole of a CRDT library is a data structure inside your application — a merge law and its bookkeeping, linked into a program you already had to build, on a network you already had to have. The whole of FrogNet is the network, the memory, and the application platform, installed onto bare hardware. The resemblance lives in one corner of one layer — both ends hold the same structure and only differences cross the wire — and even there the two are built toward opposite goals. A CRDT's goal is convergence: every replica must provably arrive at one identical merged state, so it carries the machinery of merge — causal history, tombstones, a merge law per data type. UnREST doesn't have that goal. Its goal is operation: each node acts now on the current value of what it can reach. Current value wins, stale values are reaped rather than reconciled, and nothing ever blocks waiting for agreement.

The diff on the wire isn't consensus machinery; it's economy — the reason a live picture fits over links where full payloads never did. A CRDT is a data structure that guarantees agreement. FrogNet is a fabric that guarantees operation — and the fabric, not the merge law, is the product: discovery, elections, routing, media, and the applications, running on a LAN pond that is complete with no tunnel and no broker in it. The model is specified in Magnum Croakus § 22 →

§02Reticulum & ham

The closest neighbor.

The whole of Reticulum is a networking stack — addressing, encryption, routing — with no IP, no sockets, and applications written natively to its API. It is the strongest thing anyone can bring to this table: genuinely transport-agnostic, encrypted at the foundation, infrastructure-free, and respect where it's due. The whole of FrogNet is that layer and everything above and below it: it hosts the applications you already have on the addressing you already use, elects its services, ships its media, and installs itself. Reticulum could ride under FrogNet as one more transport, the way Wi-Fi or a LoRa radio does — but FrogNet doesn't need it. Transports multiplexed in one topology — Magnum Croakus § 5 →

On amateur radio, both stacks are out — the same rule, for the same reason — and the full treatment of that, along with how ham traffic actually crosses distance today, lives where connectivity is settled: Connectivity — what's in, what's out, and why →

§03VPN overlays

Tailscale, Nebula, ZeroTier, Yggdrasil.

The whole of an overlay is a private wire between your machines plus the coordination service that arranges it — and that service is the network's center; without it, so much for the network. The whole of FrogNet is a network that is complete before any of that exists. The resemblance is the WireGuard underneath, and it ends there. FrogNet's tunnels are one bearer among several, used for one case: crossing the public internet. The broker introduces nodes and holds no authority — and though it terminates the cross-internet tunnels, it runs none of the semantic stack, so what crosses it is label-stripped diffs and codec-less frames it cannot reconstruct — while the network is complete on a LAN with no tunnel and no broker anywhere in it. An overlay connects your machines. FrogNet operates them: discovery, elections, services, media, applications. The broker, and what it can and can't see — Magnum Croakus § 17 →

§04Traditional VPN

The tunnel to someone else's gateway.

The whole of a traditional VPN — the corporate concentrator, the commercial exit node — is a single encrypted tunnel from your device to a hub someone else runs: reach the office LAN, or borrow an IP on the way to the internet. It connects one endpoint to one hub, and that hub is the entire point and the single throat; lose it and there is nothing left. It moves your packets. It does not form a network among your own machines, hold any shared state, elect a service, or outlive the concentrator. The whole of FrogNet is a peer network with no hub to lose: nodes discover each other, elect their own services, and operate on a LAN with nothing in the middle at all. Where FrogNet does cross the public internet it rides a WireGuard tunnel as one bearer among several — a road it drives on, not the thing it is. A VPN gives you a private pipe to somewhere. FrogNet is the somewhere. WireGuard as one bearer among several — Magnum Croakus § 18 →

§05Traditional mesh

BATMAN, OLSR, 802.11s — the routing layer.

The whole of a traditional mesh — BATMAN-adv, OLSR, 802.11s, the AREDN and community-mesh world — is multi-hop packet routing: it finds paths across radios that cannot all hear each other and forwards frames along them. That is real, and hard, and FrogNet respects it — but it is one layer, the road under the traffic. It hands you a routed link and stops; what runs on that link is still yours to build, on hardware you still have to provision, with services you still have to stand up. The whole of FrogNet is everything above that road: it discovers who is present, elects the services, carries shared memory as the programming model, ships an adaptive media ladder, hosts the applications, and installs the whole of itself onto bare hardware — over whatever transports are present, a traditional mesh among them where one exists. A traditional mesh moves packets between nodes. FrogNet makes the nodes a network. Transports multiplexed above the routing layer — Magnum Croakus § 5 →

§06The wire & the model

“Isn’t this just delta encoding, or QUIC?”

This is where the reflex is strongest, so take it head-on. Semantic compression looks like delta encoding — and at the bit level, it is a diff. The difference is where the template comes from and what it is welded to. gRPC and protobuf need a schema you write and version ahead of time; a byte-differ needs a matched pair of blobs to compare. FrogNet learns the template from the first real exchange, keys it by the stable parts of the request, and diffs the canonical value — so two replies that differ only in formatting cross as a 16-byte SAME. And it is not a library you call: it is fused to the memory model — SAME / DIFF / FULL against a reference both ends hold, reaped rather than reconciled — so discovery, coordination, and application traffic all get it for free, without anyone reaching for it.

Multiplexed streams look like QUIC. The independent channel-sets that keep a bulk file transfer from stalling a live call are solving the same head-of-line problem HTTP/3 solves — but the transport is not the point. FrogNet is transport-agnostic: QUIC would be a fine bearer under it, right next to TCP, a WireGuard tunnel, or a 900 MHz radio. What wins the constrained link is not the multiplexing; it is that the thing crossing it is a difference against shared memory, not a request re-stated from scratch. QUIC moves your bytes faster. FrogNet sends far fewer of them. FNWP-1, the wire — Magnum Croakus § 24 →

And the idea underneath — coordinate through shared values, not messages — is not new, and we do not pretend it is: Gelernter’s tuple spaces named it in 1986. UnREST is that idea carried to the wide area, with the two changes that let it survive a real network — current value wins, and a read never blocks. The compression it rests on — Magnum Croakus § 23 →

§07Not the same thing

Four filing errors, preempted.

Each of these, taken whole, is one instrument. FrogNet, taken whole, is the bench they'd sit on.

Meshtastic, whole, is text and telemetry over LoRa — and FrogNet carries it as a friend, not a competitor: Meshtastic and LoRa bridges write radio-delivered readings straight into shared memory as sensor rows.

MQTT, whole, is a message bus. FrogNet is memory, not messages — nothing subscribes, nothing queues, nothing replays; every node acts on the current value of what it can reach, and stale is reaped.

Realtime backends — Firebase, Convex, Liveblocks, a WebSocket-plus-pub/sub tier — are hosted services that push updates to subscribers over a socket you rent, a vendor’s cloud in the middle holding the truth. FrogNet gives the same live-update feel with no socket tier, no subscriptions, and no vendor: presence is a value in shared memory, an update is a diff, and it runs on a LAN with nothing in the middle at all.

Syncthing, whole, synchronizes files — durable artifacts, eventually. FrogNet's transient plane is the opposite instrument: the always-there current value, with the permanent store standing separately as the authority.

Secure Scuttlebutt, whole, is an append-only log that gossips history. FrogNet keeps no history on the wire at all — the present is the protocol.

Still filing it somewhere?

Then try the standing invitation: reproduce the result with the stack you'd file it under — and if it can't, that's the interesting part, not a gotcha.