See what is busy right now, jump into the spaces growing fastest, and browse by group without the page collapsing into a long admin list.
Most of what's on the mesh isn't chat. This shows what's actually being heard, split into simple categories — never by channel or sender.
What's being counted? Every number here counts how many times a packet was heard — one observer, one packet, once. The same packet is usually heard by several observers (so it's counted several times over), and a single chat post is usually carried over several separate over-the-air sends as it hops across the mesh (so those are counted separately too). That's why "times heard", "separate sends" and "messages typed" are never the same number.
Reference snapshot (measured 2026-09-29, not live): ~6.9M times heard per day, from ~1.6M separate over-the-air sends (~4.3 times heard each), carrying ~22,700 messages typed — ~78% of what's heard is flooded to the whole mesh rather than sent point-to-point.
"Airtime" is an estimate, not a measurement: packets don't record their own radio settings, so every separate send is costed using MeshRank's documented EU/UK (Narrow) radio preset (869.618 MHz · SF8 · BW62.5 kHz · CR4/8) and the standard LoRa time-on-air formula — a differently-configured node's real airtime will differ from this estimate. Because separate, distant transmissions can share the air at the same moment without colliding, this page shows airtime as a share and a total, never as one global "% of channel occupied".
"Country" means heard by an observer in that country — never "sent from" that country, since a widely-flooded packet is often heard by observers in more than one. A send heard in two countries has its (de-duplicated) airtime credited to only one of them, never both, so per-country totals still add up to "All".
Airtime per send is measured. The onward cost of one send — how much air it uses once the mesh has relayed it — is temporarily withheld: the flood/direct split it depends on is being corrected, and publishing it now would understate flooding.
"Dead air" is worked out per observer, because the total airtime across all observers can't be compared with real time (distant transmissions share the air at the same moment). For each observer and each minute: the estimated airtime of the hops that observer heard \u00F7 60 seconds. The page then shows the typical observer (median) and the busiest tenth (90th percentile). It is an estimate from an assumed radio preset, it only reflects what each observer could hear, and a value over 100% is shown rather than hidden.
"Quiet" and "busy" hours are worked out separately for whichever country is selected — never as one universal best time — because timing genuinely differs by region. A fresh deploy needs a few days to build a stable pattern; until then the page marks it "provisional".
This page only shows what our own network of observers can hear from where they're sited — never the whole mesh. If the live tally briefly falls behind, its status says "catching up" rather than quietly under-counting.
Connect a MeshCore companion, explore public channels, follow network activity, and manage the repeaters you administer.
These are the existing test-distribution links. Available features depend on your installed build and connected device firmware.
Choose which country's internet messages and Mesh Live information you see. Messages heard directly by your radio still come from your local mesh.
A viewing choice does not change your radio settings.
Read and review a supported companion's default sending region before changing it. Repeater region administration remains in the repeater controls.
Only settings reported as supported by the connected firmware can be changed.
Open Explore for network activity, public-channel lookup and region choices. Sign in to add a public channel to your account.
Sign in to the MeshRank app, connect your MeshCore node, and authenticate to the repeater as its administrator. The app submits radio proof for the server to verify before ownership is granted.
A discovered advert, app link or submitted request does not establish ownership.
If the app link does not open, follow these steps manually. No password or account token is included in the link.
Reports, review requests and decisions have separate notification records. “Sent” means the mail service accepted the email; it does not confirm arrival in an inbox. Failed attempts remain visible and can be retried with a reason.
Ownership approval requires independent verification. A public key or pending request is not enough.
Requests do not apply a restriction until the authorised site owner approves the stored scope and duration.
Read the recorded action and the person's reason. A review request does not automatically restore content.
Choose how MeshRank tells you that a new case is waiting.
Invitations must be accepted before moderator access is enabled.
You'll get a more tailored experience and exclusive data access.
Enter the 5-digit Pin shown on the observer screen. Pending claims stay here until MeshRank sees the first valid uplink, so you can track setup without guessing.
Use the MeshRank app to connect through your node, prove administrator control of the repeater over radio, and check the server-verified claim status.
Get the MeshRank appThe MeshRank preset can send anonymously straight away. Create a registration key here when you want to attach those same public-key observers to your account. Healthy feeds become registered after ten minutes or 100 valid packets, whichever comes first.
For the Heltec V4 Repeater Observer uplink. Keep this code secret and paste it into the Repeater Observer setup.
Choose where new messages appear. Defaults to newest at the bottom. Saved to your account.
Maps open on your selected country unless you save a personal map view.
Read the status and reason for reviews of reports you submitted. This view does not reveal hidden content.
Only your account hides these messages, across all channels. Blocking matches the displayed sender name, so people sharing a name may also be hidden and a renamed sender may reappear.
meshcoretomqtt? Add the MeshRank preset and start sending anonymously, then register the observer to your account later.
v1.17.1 beta track plus the known-good Heltec V4.3 v1.14.1 stable track with MeshRank uplink.
0x10000; the merged image is a full flash image for 0x0.
meshcoretomqtt? No MeshRank account is needed to start. The node public key keeps the observer identity stable if you register it later.
sudo install -d -m 0755 /etc/mctomqtt/config.d sudo curl -fsSL https://meshrank.net/meshcoretomqtt/meshrank.toml -o /etc/mctomqtt/config.d/10-meshrank.toml sudo systemctl restart mctomqtt
/packets is required; /status is optional.
[[broker]] override to /etc/mctomqtt/config.d/99-user.toml. Restart mctomqtt; the existing observer is attached to your account without changing its public-key identity.
The firmware's built-in meshrank preset uses your account token, unlike the anonymous meshcoretomqtt preset above. Create a key in Account → Observer Setup → MQTT observer registration. Do not leave the token blank.
Choose an unused, supported broker slot. This example uses slot 3 and leaves your other brokers unchanged:
set mqtt3.preset meshrank set mqtt3.token YOUR_MESHRANK_UPLINK_TOKEN get mqtt.status
Amateur radio is easiest to get into when you can talk to people nearby. Local clubs can explain the Foundation route, help with training, and introduce you to operators already building RF communities around you.
Mesh networks promise resilience, but in their early stages they often struggle with something more basic: confidence.
With MeshCORE, new repeaters are frequently deployed into sparse or growing networks. When messages don’t appear to move - or there’s no clear feedback - operators naturally assume the repeater isn’t helping. Too often, it gets switched off, and the network loses coverage just when it needs it most.
MeshRank exists to answer one question early mesh networks struggle with: “Is this helping?”
By giving honest, low-impact feedback, MeshRank helps good repeaters stay online long enough for the mesh to become truly resilient. MeshRank exists to change that experience.
It provides visibility into how the mesh is actually performing:
Which repeaters are active and contributing over time. Which messages were delivered, with a confidence score rather than guesswork. Where messages were observed but failed to fully propagate.
This feedback loop keeps operators engaged and informed, even when the network is still maturing.
MeshRank uses a passive observer network to provide insight without increasing mesh traffic. By reducing the need for repeated test messages, it lowers network load while giving users meaningful information about what’s happening behind the scenes.
Repeaters are ranked based on real contribution, not assumptions - encouraging operators to keep nodes online, improve placement, and actively strengthen the network.
MeshRank doesn’t replace the mesh, and it doesn’t route traffic through the internet. It simply helps the mesh understand itself.
Visibility builds confidence. Confidence builds resilience.
No. MeshRank does not forward, relay, or complete mesh messages using the internet. All mesh communication still happens entirely over RF. MeshRank only observes what has already occurred and reports that information back to users.
No. The mesh remains fully autonomous and functional without MeshRank. If MeshRank disappeared tomorrow, the mesh would continue to operate exactly as it does today. MeshRank does not participate in routing decisions, message delivery, or network control - it provides visibility, not dependency.
Because feedback matters. In early and sparse networks, lack of feedback causes repeaters to be switched off, not improved. MeshRank uses off-mesh observation to help operators understand what’s happening without increasing RF traffic or adding test spam to the network. This strengthens the mesh - it doesn’t weaken it.
No. MeshRank is not in the message path. It cannot block, delay, or interfere with mesh traffic. If MeshRank goes offline, the mesh continues to operate unchanged. There is no reliance on MeshRank for delivery, routing, or authentication.
Quite the opposite. MeshRank encourages: better repeater placement, higher uptime, reduced test traffic, and faster identification of coverage gaps. All of these increase RF-only resilience, even when the internet is unavailable.
No. Observers do not inject traffic or control the network. They report limited metadata needed to understand propagation - not to monitor users. The goal is network health, not message content analysis.
Yes - intentionally. Visibility and motivation matter. Ranking makes contribution measurable, encourages operators to keep repeaters online, and helps the network grow during its most fragile phase. Strong networks are built by engaged operators.
MeshRank becomes less critical - and that’s a success. As density increases, confidence becomes self-sustaining. MeshRank’s role naturally shifts toward diagnostics, optimisation, and historical insight rather than reassurance.
MeshRank exists to answer one question early mesh networks struggle with: “Is this helping?” By giving honest, low-impact feedback, MeshRank helps good repeaters stay online long enough for the mesh to become truly resilient.
Two things have to be true: (1) your repeater must be advertising its GPS location in its self-adverts, and (2) at least one MeshRank observer must be in RF earshot to hear the advert. Quick checks:
name, lat, lon and enable the flooded advert (most builds expose advert send + advert flood). Confirm coordinates are non-zero.advert send 1) and wait 2–3 minutes for an observer to relay it.You can’t — by design. The Heltec V3 “Observer node” firmware is single-purpose: it boots, joins Wi-Fi, listens, and uploads. There’s no companion screen, no admin password, and no Bluetooth admin shell. All configuration (Wi-Fi, location, name) happens through the web flasher during step 3 of Become an Observer.
If you want a node you can also log into and manage, switch to the Repeater Observer or Direct MQTT options instead — those use the full MeshCore firmware with the MeshRank uplink on top.
These terms apply to your use of MeshRank.net and related services. By using the site, you agree to these terms.
You are responsible for keeping your login details secure and for activity under your account.
We aim to keep the service available but do not guarantee uninterrupted access.
The service is provided “as is”. To the extent allowed by law, we exclude liability for indirect or consequential loss.
We may update these terms. Continued use after changes means you accept the updated terms.
Questions? Contact us via the MeshRank site.
We process personal data under legitimate interests and, where applicable, consent or contract.
We do not sell personal data. We may use trusted service providers for hosting and authentication.
We keep data only as long as needed for the service or legal obligations.
You can request access, correction, or deletion of your personal data, and object to processing where applicable.
For privacy requests, contact us via the MeshRank site.
Each score is built from the factors below. Click a category to learn how it’s calculated and how to improve it.
Rankings update nightly after the scoring job completes.
Loading repeaters heard by this observer…
1️⃣ Collect observations
For each message hash, we gather all observer captures and their hop-byte paths.
2️⃣ Expand each hop into real repeater candidates
Each hop is a 2-digit prefix.
Because multiple repeaters can share the same prefix (1 in 256 per byte), each hop expands into a list of possible real-world repeaters.
3️⃣ Score candidate repeaters per hop
Candidates are weighted using:
4️⃣ Solve the most plausible path per observer
We use a dynamic programming path solver (Viterbi-style) to select the highest-likelihood repeater sequence that explains the observed hop path.
5️⃣ Apply physical plausibility constraints
The current model prioritises physical realism:
6️⃣ Build cross-observer consensus
We identify the most likely canonical start region and remove observer routes that conflict with that origin.
7️⃣ Render accepted routes
The mesh map is built from accepted observer reconstructions — not simple “join-the-dots” pairing.
MeshCore uses flood routing. Packets spread in multiple directions with random delays.
We never see the full flood — only the subset captured by our observer network.
Additional constraints:
In low-evidence scenarios, the system selects the most statistically consistent explanation — which may occasionally differ from the true physical sequence.
RSSI/SNR only describe the final transmission received by an observer.
In a multi-hop path, commodity LoRa hardware does not expose per-hop RF metrics for earlier links.
So full route reconstruction cannot be achieved by sorting RSSI.
This is an inference problem, not a signal-strength gradient problem.
MeshRank does not aim to invent routes.
It aims to display the most evidence-supported reconstruction possible — with transparent confidence constraints.
1. In the Meshcore app, add a channel using the #channel name (e.g. #corrie).
2. Tap Share to open the page with the QR code.
3. Take a screenshot of that page (QR code + channel name + Secret Key).
4. Upload the screenshot below. We’ll read the channel name and secret key, then you pick an emoji and group.
Channels are stored in your browser cache. Log in or register to sync them across devices.
MeshCore: send a message in #MeshCQ starting with CQ. It stays open for 10 minutes.
Meshtastic: send MeshCQ in LongFast (@MeshHub.uk).
Responding: use @NAME some text (or @[NAME]) in either mesh. Logged-in website users can also reply directly from this page.
Scoring rules: only observer-backed routes count. Each person-to-person pair can log one QSO per method: MeshCore, Meshtastic, and Web.
—Sign in to the MeshRank app, connect your MeshCore node, and authenticate to the repeater as its administrator. Ownership requires server-verified radio proof.
Claim instructionsWe’ve improved channels! You can now personalise your experience by joining the channels you care about — and even add new channels for others to join.
You can now hide messages tagged as likely spam or automated bot replies from the Messages feed.
Click your name in the top right, open Preferences, then turn on Hide likely spam and bots.