Usability overhaul: single Start Here flow + Discord-gated MQTT broker (no presets on public site; supersedes #27) - #28
Conversation
…htasticCommunity#27) Brings the .azmsh-locked CSS component, the gated LoRa box on how-to-connect.md (Step 4), and the gated MQTT broker box on recommended-settings.md onto current main. Only fake placeholder values ship in page source; real broker/preset details stay in Discord behind the overlay. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Turns the i-need-help audit (184 forum threads, Apr 2025-Jun 2026) into concrete pages that deflect the most common new-operator mistakes. New pages: - start-here.md: single linear "first 30 minutes" guide, first in nav, ends in a send-TEST self-test. Calls out blank primary name, Slot 18, key AQ==. Points to the Discord-gated box for broker values. - cant-transmit.md: the #1 support driver. Leads with "if you receive any messages your settings are fine" then outside/up-high/antenna/relay. - faq.md: 403 Forbidden (react with pie emoji first), claim-node syntax + MQTT prerequisite, flashing pointers, DM "No Channel" + impersonation. - flashing-gotchas.md: uncheck Meshtastic UI, never TX without antenna, DFU recovery. Changed: - recommended-settings.md: in-order setup checklist that SEPARATES LoRa radio settings from channels; Slot 18 + iOS double-tap note; blank primary + AQ==; copy-paste table for non-secret fields; MQTT explainer (does NOT carry messages; the 3 toggles). Keeps the gated broker box. - what-now.md: inline 403 warning next to the view.azmsh.net link. - index.md: Start Here as the primary CTA. - mkdocs.yml: nav updated (Start Here first), all new pages reachable. Secrets: only fake placeholders ship under the blur; real broker host, user, pass, and topic stay in Discord. Verified no real creds in built HTML. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
NOT a real change. The rancur fork's default branch is behind upstream and this OAuth token lacks 'workflow' scope, so GitHub blocks pushing a branch whose workflow differs from the fork's main. This commit pins deploy.yml to the fork's current version purely so the branch can be pushed for review. Maintainers: do NOT merge this file change; keep upstream's deploy.yml. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Owner review (Will See) follow-up on PR ArizonaMeshtasticCommunity#28: - Remove ALL LoRa preset/region/frequency-slot/key VALUES from the public site. Start Here, Recommended Settings, and How to Connect no longer print Slot 18 / 906.375 MHz / MediumFast / AQ== / primary-channel config. They now route users to Discord for those values. Only the MQTT broker stays behind the Discord-gated blur box (dummy placeholders under blur). - Merge nav: Start Here now absorbs How to Connect (flash/app/pair) and the Recommended Settings reference (roles, broadcast intervals, neighbor info, MQTT). Can't-Transmit becomes a subpage under Start Here. how-to-connect.md and recommended-settings.md become redirect stubs (kept to avoid dead inbound links), removed from top nav. Simplified, linear, beginner-first nav. - Restore not_in_nav block (dropped earlier) so mkdocs --strict stays clean. - Accuracy/consistency pass: fixed Start Here Step 3 anchor refs, kept MQTT-is-diagnostics-not-messaging stated consistently, cut em-dashes per house style, updated inbound links to point at Start Here. mkdocs build --strict passes with zero warnings. Verified built site/ contains no preset/slot/frequency/key values on any onboarding page. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…The-Discord blur (not deleted) Restore the Arizona LoRa settings as GATED content using PR ArizonaMeshtasticCommunity#27's .azmsh-locked blur + "Join The Discord" overlay mechanism, instead of deleting them. Owner feedback: preview must look like ArizonaMeshtasticCommunity#27, with the labels sharp and the values hidden behind the Discord gate, on EVERY page that previously showed them in the clear. Gated / scrubbed across pages: - start-here.md Step 3: region/preset/frequency-slot now a blur box (dummy placeholder values, real values stay out of the served HTML). - start-here.md Step 4: primary channel name + key now a blur box. - start-here.md Step 5: MQTT broker blur box retained (already ArizonaMeshtasticCommunity#27). - suggested_channels.md: public PSK table (AQ==, Ww==, TQ==, MQ==) and the MediumFast preset name replaced with a single gated blur box; CLI example PSK genericized to <KEY_FROM_DISCORD>. - what-now.md: "Primary MediumFast" references neutralized to "primary". - privacy.md: literal default key (AQ==) and LongFast/MediumFast preset names removed from the educational text (kept the meaning). - host-a-node.md: exact 906.875 MHz frequency genericized to the 900 MHz ISM band. No preset / frequency / slot / channel-key value remains in the built site/ (grep-clean). mkdocs build --strict passes with zero warnings. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tighten the navigation into a clear newcomer journey plus a single
reference/troubleshooting area, eliminating duplicate and leftover stub
pages without proliferating new ones.
Nav (old -> new):
- Flatten Start Here (drop the nested "Receive Works, Can't Send" child)
- Fold "Receive Works, Can't Send" (cant-transmit) into FAQ as the first
section (#cant-send), with cross-links from Start Here + What Now.
- Fold "Flashing & Recovery" (flashing-gotchas) into FAQ (#flashing-gotchas),
removing it as a separate top-level page; FAQ is now the one troubleshooting
hub (can't-send, 403 map, claim-node, flashing, DM no-channel) with a jump-to
table of contents.
- cant-transmit.md + flashing-gotchas.md become meta-refresh redirect stubs to
the new FAQ anchors so old/external links never 404 (kept out of nav).
- Delete legacy reference stubs connect.md and
recommended_configuration_settings.md (superseded by Start Here; nothing
external links to them).
- Repoint stale links in recommended-hardware + wismesh build guide from the
old how-to-connect / recommended-settings stubs to the canonical Start Here +
Settings Reference anchors.
New nav: Home / Start Here (with Settings Reference) / What Now? /
FAQ & Troubleshooting (with can't-send) / Recommended Hardware /
Suggested Channels / Host a Node / Reach Out.
Gating from PR ArizonaMeshtasticCommunity#27 (#az radio settings, primary channel, suggested channels,
MQTT broker) is untouched: all values stay dummy placeholders behind the
.azmsh-locked blur + Join-The-Discord overlay. No preset/frequency/key/broker
value is exposed anywhere.
mkdocs build --strict passes with 0 warnings.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Pull the settings reference out of Start Here into a dedicated Additional Settings page, ordered to match the Meshtastic mobile app (Radio Configuration: User, Channels, Device, Position, Power, Network, Display, LoRa, Bluetooth, Security; then Module Config: MQTT, Neighbor Info). iOS vs Android label differences noted per setting (e.g. Presets/Modem Presets, Number of Hops/Hop Limit, GPS Polling Interval/Update Interval, Proxy to client/Connect via Proxy, Licensed amateur radio/Licensed Operator). Funnel callout steers brand-new users to Start Here first. Discord-gated blur boxes preserved for region/preset/slot, channel key, MQTT broker. - Start Here keeps the full inline setup flow; deep reference now cross-links to Additional Settings. - Rename "What Now?" -> "How To Test" (the page is the test/confirm flow). Updated nav, title, H1, all internal links; what-now.md is now a meta-refresh redirect stub. - Fix firmware guidance: "Install Meshtastic UI" (MUI) is for color touchscreen devices, NOT small-OLED Heltec V3/V4 (boot loops / blank screen); clarified MUI vs InkHUD. Leave it unchecked. - New FAQ: "I'm not receiving every message / no messages" (recheck settings -> locations/antennas -> Recommended Hardware) and "Bluetooth won't pair or keeps dropping" (top recurring #i-need-help gap that the site did not cover). - Terminology consistency (Wi-Fi -> WiFi sitewide) and link fixes. mkdocs build --strict passes (0 warnings). Gating verified: served HTML exposes only placeholder values, blur + extra.css load. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FIX 1: The secondary Arizona community channels (azmsh, Weather, Traffic, Trivia) are public per the owner, so the Discord-gated blur overlay around the suggested-channels list is removed and the real names + keys (AQ==, Ww==, TQ==, MQ==) are restored as a plain readable table. The PRIMARY channel name+key, LoRa region/preset/frequency slot, and MQTT broker stay gated on Start Here / Additional Settings. FIX 2: The Android "how to add a channel" section now collapses by default (??? instead of ???+), matching iOS and Other. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gs to iOS app section order - Replace over-escaped \" sequences in admonition titles with typographic quotes so the rendered page shows clean text (the Meshtastic UI / Forbidden / impersonation warnings no longer show literal backslashes). - Restructure Additional Settings into the iOS app's three section groups in the exact order the iOS app lists them: Radio Configuration (LoRa, Channels, Security), Device Configuration (User, Bluetooth, Device, Display, Network, Position, Power), Module Configuration (MQTT, Neighbor Info). - Switch setting names to iOS-primary with Android names noted in parentheses. - Preserve gating blur boxes (LoRa values, MQTT broker), the Start Here callout, suggested-channels public table, collapsed Android sections, How To Test, and all FAQ cross-references and anchors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…b-clarity fixes; fill #i-need-help coverage gaps
- mkdocs.yml: re-wire Logan's accessibility work that the prior upstream merge
silently dropped on the "ours" side: load stylesheets/extra.css (WCAG AA
contrast), load assets/js/a11y.js (skip-link focus), set theme language en,
restore the 2026 copyright with Accessibility + Privacy footer links, and
remove navigation.instant* (Logan disabled it for reliable SR focus). Keeps
the branch IA nav and the Discord-gated assets/css/extra.css.
- start-here.md: remove the redundant "Want to go deeper?" block at the bottom
(it competed with the "Where to go next" section); define "tapback" on first use.
- how-to-test.md: explain MeshMonitor + tapback on first use; reconcile the node
claim command with the FAQ (/node action:claim) and cross-link the failure FAQ.
- faq.md: add three gap-filling sections sourced from a year of #i-need-help
threads: "don't see my own messages / replies in app or #messages",
"computer won't detect node over USB" (cable/browser/driver), and
"node in wrong place on the map / no location" (Fixed Position).
- additional-settings.md: add the msh/US/AZ/{city} MQTT root-topic convention
(non-secret) that recurs in help threads.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ed + coverage gaps + clarity fixes
…ed, coverage gaps filled, clarity fixes [fork site_url]
…review
Convert all cross-page internal links from absolute /docs/<page>.html paths
to relative mkdocs-resolved markdown links ([text](faq.md#cant-send), etc.)
so mkdocs rewrites them per the site's build config. Absolute root paths
resolved on azmsh.net but 404'd on the rancur.github.io/azmsh-site/ preview
sub-path. 74 absolute links across 13 pages converted; mkdocs build --strict
now passes with zero link notices.
Also fix the raw-HTML pieces mkdocs does NOT rewrite:
- meta-refresh redirect stubs (what-now, how-to-connect, recommended-settings,
flashing-gotchas, cant-transmit) now use relative sibling .html URLs that
work at both hosts (use_directory_urls is false under the offline plugin)
- the raw <a href> in index.md uses docs/start-here.html
- the footer Accessibility/Privacy links (Logan's a11y wiring) move into a
custom overrides/partials/copyright.html built from {{ base_url }}, so they
resolve at every page depth on both the production root and the preview
sub-path instead of the previous absolute /accessibility.html paths.
Full local crawl of the built site: 688 internal links + redirect targets
across 18 pages, 0 broken files, 0 broken anchors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…y#28, feature/usability-overhaul)
|
@Skordy tagging you for review on this one. Quick reviewer-facing summary of what #28 does: Usability overhaul
Links
Live preview: https://rancur.github.io/azmsh-site/ Git hygiene: branch is built on the latest main (merge, not rebase). Whenever you have a few minutes, a review pass would be appreciated. |
|
New to the mesh? The Start Here guide gets you from an unboxed radio to your first acknowledged message in about 30 minutes. is redundant with the start here button you are still missing artifacts from #26 think you may need some manual magic to correct what claude did there. |
…cCommunity#28 split One static build per split branch (each merged onto upstream main alone), plus a build of upstream main as the before-side reference. Site root is untouched. No CNAME in any build -- these are fork previews only.
|
Closing this in favour of seven smaller PRs — same work, reviewable one piece at a time, each with a rendered preview. Merge in any order: #31 footer links · #32 de-hardcode presets/PSK · #33 900 MHz ISM band · #34 remove two orphan pages Then in sequence: #35 FAQ & Troubleshooting → Start Here + How To Test → Additional Settings (the last two will be opened once their predecessors merge, since GitHub can't chain cross-fork PRs) Previews: https://rancur.github.io/azmsh-site/preview/ Three things from this PR are intentionally not in the split: the @logans-stuff's #30 should go in first — all seven were test-merged against it and are clean. |
Usability + information-architecture overhaul
Supersedes #27. Tightens the whole site into one clear newcomer journey plus a single reference/troubleshooting hub, eliminating duplicate pages and leftover redirect stubs without proliferating new ones. The Discord gating from #27 (MQTT broker, LoRa region/preset/frequency, channel keys) is fully preserved.
New navigation (the journey)
Linear path for a newcomer: Home -> Start Here -> What Now?, with FAQ & Troubleshooting as the one place to go when stuck. Reference pages (hardware, channels, host-a-node) sit after.
IA map: old page -> new home
start-here.html#settings-reference.start-here.html.cant-transmit)faq.html#cant-send). Page is now a meta-refresh redirect stub. Removed from nav.flashing-gotchas)faq.html#flashing-gotchas). Page is now a redirect stub. Removed from nav as a separate top-level item.connect.md(legacy)recommended_configuration_settings.md(legacy)What was merged / removed
Gating intact (no values exposed)
All Arizona-specific values stay dummy placeholders behind the
.azmsh-lockedblur + "Join The Discord" overlay on every page (Start Here Step 3/4/MQTT, Suggested Channels). Verified against the live preview: a grep over the served HTML finds no preset/frequency/key/broker value (the only hits are blurredExample*dummies andbroker.example.net:1883, all inside locked boxes).Verification
mkdocs build --strictpasses with 0 warnings.gh-pages(nevermain), verified live.extra.cssload.🤖 Generated with Claude Code
Update — deep revision pass (owner punch list)
This pass addresses a detailed punch list on top of the IA work above. All verified against the live fork preview, gating preserved everywhere.
1. Settings moved to its own page, app-ordered
The Settings Reference is pulled back out of Start Here into a dedicated Additional Settings page. It is ordered to match the Meshtastic mobile app layout (verified against the app's actual route enums in
Meshtastic-Android, not guessed):Each setting notes iOS vs Android name differences where they actually differ (verified from both apps' string resources): Presets (Android) / Modem Presets (iOS), Number of Hops / Hop Limit, GPS Polling Interval / Update Interval, Map reporting / Map Report, Proxy to client enabled / Connect to MQTT via Proxy, Licensed amateur radio (Ham) / Licensed Operator. Same-name settings are called out as same.
Funnel control: a prominent "New here? Start with the Start Here guide first" callout sits at the top of Additional Settings; Start Here remains the obvious entry point in nav and keeps the full inline setup flow. Discord-gated blur boxes preserved (region/preset/slot, channel key, MQTT broker).
2. Accuracy / firmware pass
Corrected the "Install Meshtastic UI" guidance on Start Here and FAQ: MUI is a separate UI for color-touchscreen devices (T-Deck, SenseCAP Indicator), not the small-OLED Heltec V3/V4 where it causes blank screens / boot loops — leave it unchecked there. Clarified MUI vs InkHUD (e-paper). Terminology consistency (Wi-Fi → WiFi sitewide) and typo/arrow fixes.
3. "What Now?" → How To Test
Renamed (the page is the test-your-setup / confirm-the-mesh-hears-you flow). Updated nav, title, H1, and all internal links;
what-now.mdis now a meta-refresh redirect →how-to-test.html.4. New FAQ: "I'm not receiving every message / no messages"
Sends users back to Start Here to recheck all settings first, then to different locations/antennas (height/placement), then to Recommended Hardware for a more powerful radio. Cross-linked.
5–6. Noob review + #i-need-help cross-check
Re-scanned a broad sample of #i-need-help threads (130+). Most recurring problems were already covered. Gap found and filled: Bluetooth pairing/dropouts — a top recurring issue (won't connect, freezes, flaky, drops) that the site did not cover. Added a dedicated "Bluetooth won't pair or keeps dropping" FAQ entry (PIN, forget/re-pair, single-connection limit, permissions, USB-serial fallback). The "am I connected / no nodes" confusion is now answered by How To Test + the new not-receiving entry.
Verification (this pass)
mkdocs build --strictpasses (0 warnings); all cross-page anchors resolve.gh-pages(nevermain), polled until live.docs/additional-settings.htmllive and app-ordered (User…Security, MQTT, Neighbor Info).what-now.htmlredirects to it; no stale links.#not-receiving,#bluetooth) live.Example*,US,00,broker.example.net:1883,msh/REGION/EXAMPLE) — zero real preset/key/broker leaks. Blur overlay markup present;extra.cssserves (200) with theblur(5px)rule.Update — owner tweaks: public community-channels table + Android collapsed
Two targeted follow-ups requested by the owner. Existing gating is unchanged everywhere else.
1. Suggested community channels are now PUBLIC
The secondary Arizona community channels (azmsh, Weather, Traffic, Trivia) are public, so the
.azmsh-lockedblur overlay that a prior pass put around the suggested-channels list has been removed. The real names and short PSK keys (AQ==,Ww==,TQ==,MQ==) are restored as a plain, readable Markdown table onsuggested_channels.html. The page intro and CLI example were updated to match (key sourced from the table, not Discord).This is scoped to the secondary community-channels list ONLY. The PRIMARY channel name + key, the LoRa region/preset/frequency slot, and the MQTT broker stay gated behind the Join-The-Discord blur on Start Here (Step 3 & 4) and Additional Settings (MQTT). No real preset/primary-key/broker value is exposed.
2. Android add-a-channel section collapsed by default
On the "How to Add a Channel" instructions, the Android collapsible admonition was switched from open (
???+) to collapsed (???), matching iOS and Other. Served HTML confirms the Android<details>has noopenattribute.Verification
mkdocs build --strictpasses (0 warnings).gh-pages(nevermain), polled until live.<code>table cells; zeroazmsh-lockedmarkup on the suggested-channels page.<details>elements (Android/iOS/Other) render with noopenattribute — collapsed by default; Playwright confirmsopen=falseon desktop and mobile.azmsh-lockedblocks each with only placeholder values (ExamplePreset_AZ,ExampleName,ExampleKey,broker.example.net); no realMediumFastpreset leak.Update - comprehensive batch pass (2026-06-15, later)
This pass found and fixed the real reason Logan's accessibility work was not showing on the site, plus removed a redundant section, did a full beginner-perspective clarity pass, and filled coverage gaps sourced from a year of #i-need-help threads.
Logan's accessibility changes - root cause and fix. The earlier "git merge upstream/main = already up to date" report was technically correct (Logan's commits e04833e "Add accessibility and privacy pages; fix WCAG 2.1 AA issues" / PR #25, and 6171dbc "ci: add pa11y soft check" / PR #26 are both ancestors of this branch). The trap: the merge kept the IA-overhaul
mkdocs.ymlon the "ours" side, which had silently dropped the wiring that loads Logan's a11y work. The files existed on disk but nothing referenced them. Restored inmkdocs.yml:extra_css: stylesheets/extra.css(WCAG AA contrast overrides) - was orphaned; only the gatingassets/css/extra.csswas loaded. Both now load.extra_javascript: assets/js/a11y.js(skip-link focus management) - was missing.theme.language: en- was missing.copyrightwith Accessibility + Privacy Policy links and 2026 year - had reverted to a plain 2025 line.navigation.instant*(Logan deliberately disabled it for reliable keyboard/screen-reader focus on page change); the branch had re-added it.Verified live in the served HTML on the fork preview:
lang="en",stylesheets/extra.css+a11y.jsin the head,.md-skipskip link, AA-contrast header, and the footer Accessibility/Privacy links all present.Removed "Want to go deeper?" from the bottom of Start Here - it duplicated the "Where to go next" section. Where-to-go-next retained.
Beginner clarity pass (read every page start to finish):
/node action:claim node_identifier:<id>to match the FAQ, and cross-links the claim-failure FAQ.#i-need-help coverage gaps filled (from a sample of 187 forum threads across 2025-06 to 2026-06). Most recurring problems were already covered (can't-send/RF, Max Transmission, Forbidden/403, claim failures, flashing/brick, Bluetooth, frequency slot, antenna, roles, MQTT). Added three new FAQ sections plus one settings note for the gaps that were not:
msh/US/AZ/{city}root-topic convention (recurring question).Non-regression checks confirmed live on the fork preview: gating intact (only dummy
Example*values, blur boxes + "Join The Discord" overlays present); suggested-channels table still fully public and sharp (keysAQ==/Ww==/TQ==/MQ==); Android add-a-channel still collapsed; "How To Test" rename intact in nav; Additional Settings still in iOS section order (LoRa/Channels/Security, then User/Bluetooth/Device/Display/Network/Position/Power); zero stray backslashes.Quality gates:
mkdocs build --strictpasses (exit 0, the only console banner is the upstream Material/MkDocs-2.0 deprecation notice, not a build warning). Preview redeployed to the forkgh-pagesonly (built withsite_url=https://rancur.github.io/azmsh-site/, CNAME dropped); main untouched. Verified live via curl + Playwright (desktop 1280px and mobile 390px, screenshots reviewed). Preview: https://rancur.github.io/azmsh-site/Note: the live "Total Nodes / Nodes Online" counters are blank on the fork preview because the node-data API is origin-bound to azmsh.net; they populate on the real domain. Not a regression.