I Pointed 13 SoCal Mesh Map Sites at the Same Bounding Box and Counted Nodes

Southern California has a surprising number of public mesh-network maps. Some are built on Meshtastic (LoRa radios, MQTT-aggregated), some on MeshCore (a newer LoRa protocol with its own map ecosystem), one on AREDN (amateur-radio mesh built on repurposed WiFi APs and bridges, reflashed to run on ham bands instead of consumer WiFi channels), one on Reticulum/RNS. Every one of them has its own idea of "SoCal," its own default zoom, its own cherry-picked viewport screenshot that makes it look appropriately busy. None of that tells you which one actually has the most nodes in a given area, because they're never showing you the same area.

So I started from a list of 15 mesh map URLs, picked one bounding box, and pointed all of them at it. Two of the fifteen (map.meshcore.dev, which just redirects to map.meshcore.io, and meshcore.co.uk/map.html, which iframes it) turned out to be the same dataset wearing a different hostname, so they're folded into map.meshcore.io's entry below rather than listed as their own rows.

The list #

None of these expose a "give me nodes in this bbox" parameter in any consistent way (a couple don't expose it at all), so the actual approach was: open each site's JS, find the real fetch call underneath the Leaflet/MapLibre markers, hit that endpoint directly, pull everything it has, and filter to the box myself.

The bounding box #

Rather than eyeball something, I used the broadest span that still reads as "Southern California" without creeping into "the whole state" — the 10-county definition: Imperial, Kern, Los Angeles, Orange, Riverside, San Bernardino, San Diego, San Luis Obispo, Santa Barbara, Ventura.

lat:  32.5 – 36.0 °N
lon: -121.0 – -114.1 °W
area: ≈ 246,700 km²

Several sites' own default map centers (LA basin, 33.8–34.2°N / −118.0 to −118.3°W, zoom 10–12) sit comfortably inside this box, which is a reasonable sanity check that it isn't too tight.

Finding the real API in each one #

This is the part that actually took the time. A few examples of what "reading the JS" turned up:

Results #

Nodes with a position, inside the bbox, as of 2026-10-05:

SiteProtocolRaw in bboxUnique in bboxNotes
socal.meshmapper.netMeshCore (wardrive log)23,1845,379Raw points are repeated signal observations, not distinct radios; deduped by public key (or rounded coords when no key)
map.wcmesh.comMeshCore (public feed)1,4791,479Of 4,975 total nodes in the feed, 2,893 have any location at all
map.meshcore.ioMeshCore (official map)1,1721,172Out of 64,999 nodes worldwide
rns.wcmesh.com/socalMeshCore (live snapshot)810810Already deduped by device ID server-side
livemap.wcmesh.com/socalMeshCore (live snapshot)810810Same backend software as rns.wcmesh.com, independent live moment
meshtastic.liamcottle.netMeshtastic (global)578578Out of 31,348 nodes worldwide (18,124 with any position)
meshview.worldMeshtastic (aggregator)572572545 of these are re-published from meshview.socalmesh.org
meshview.socalmesh.orgMeshtastic (SoCal instance)559559Out of 848 tracked nodes, 571 with position
mapping.kg6wxc.netAREDN (ham WiFi mesh)416416Out of 1,211 "mappable" devices; can include distant tunnel-linked nodes
meshmap.netMeshtastic (global)201201Out of 9,784 nodes worldwide
cvcorescope.wcmesh.comMeshCore (analytics)6666Out of 984 total tracked, skews further north (Central Valley/Monterey) than SoCal
rmap.worldReticulum/RNS (global)1010Out of 782 nodes worldwide
meshmapper.netMeshCore (portal)n/an/aRoot domain has no node-list API; see socal.meshmapper.net

Raw and unique match for every site except socal.meshmapper.net, since it's the only one serving a point-observation log instead of a node/device list.

Winner, on raw node count: socal.meshmapper.net, at 5,379. But that number needs the asterisk it's getting — it's a cumulative wardrive/coverage log, not a live snapshot, so it's counting every distinct radio ever heard in the box, not what's online right now. It isn't a fair fight against the live node lists above it.

Winner among actual live maps: map.wcmesh.com, at 1,479, followed by map.meshcore.io at 1,172.

Caveats worth keeping in mind #

Raw data: socal-mesh-map-census.csv — every row above with both the protocol family and the specific sub-variant, plus the exact note text used to derive each number.

Published