docs: reorganize site for easier discovery; remove dead links#3138
Conversation
The MeshMonitor docs site had grown to 80+ pages but new users had a hard time finding things. This commit tightens the structure without rewriting content:
- Group the flat 25+ item Features sidebar into 7 thematic sections (Core, Messaging & Channels, Maps & Geography, Network Insight, Automation & Alerts, Administration & Security, Appearance & UX, Protocol-Specific).
- Group the Configuration sidebar by deployment stage (Get Started, Connect Your Mesh, Networking & TLS, Authentication & Hardening, Production & Operations, Deployment Guides).
- Group the Development sidebar (Getting Started, Architecture, API & Testing, Advanced Topics).
- Promote 11 orphan pages that already existed on disk but were missing from any sidebar: features/maps (the main 19KB maps page!), solar-monitoring, custom-themes, system-backup, configuration/fail2ban, duckdns-https, node-load, development/TEST_SUITE, FRONTEND_STRUCTURE, claude-getting-started, BLE_BRIDGE_MIGRATION.
- Move internal planning/proposal/analysis docs out of /docs root into docs/internal/{dev-notes,meshcore-design,security-review,analysis,release-notes}/. These were already excluded from the VitePress build but cluttered the root for anyone browsing on GitHub. /docs root drops from 26 .md files to 8.
- Delete duplicate docs/development/api.md; merge its quick-start content into docs/development/api-reference.md (the page that actually embeds the Swagger UI).
- Tighten ignoreDeadLinks to just /^http:\/\/localhost/. The old config silently matched any URL containing strings like 'PUSH_NOTIFICATIONS', which swallowed real typos. With the new config, vitepress build catches 11 previously-hidden dead links — all fixed in this commit (rewrote /development/api → /development/api-reference; pointed excluded-doc links at GitHub blob URLs).
- Update CLAUDE.md, .devcontainer/README.md, and source-code comments in src/server/meshcoreManager.ts to reference the new docs/internal/dev-notes/ and docs/internal/meshcore-design/ paths.
Build passes: 0 dead links, 0 errors.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude finished @Yeraze's task —— View job PR Review: Documentation ReorganizationThis is an excellent documentation reorganization effort that significantly improves discoverability. Here's my detailed review: Todo List:
✅ Overall Assessment: Excellent ChangesThis PR successfully addresses the core problem of poor documentation discoverability without breaking functionality. Positive Changes:🎯 Improved Structure (docs/.vitepress/config.mts:67-254)
📋 Rescued Orphan PagesSuccessfully promoted 11 important pages that existed but weren't discoverable:
🧹 Clean Internal Organization
🔗 Dead Link Hygiene
📝 Content Consolidation
Code Quality & Best Practices:✅ VitePress Configuration
✅ Path Management
✅ Documentation Standards
Security & Performance:✅ No Security Concerns
✅ Performance Impact: Positive
Test Coverage Considerations:The PR mentions a test plan but it's not implemented yet. Recommendations:
Minor Observations:
Verdict: ✅ ApproveThis PR delivers exactly what it promises - dramatically improved discoverability without breaking changes. The reorganization follows user-centered design principles and makes the 80+ page documentation site actually navigable for newcomers. Impact: New users can now find features like Interactive Maps (previously hidden 19KB page!) and fail2ban configuration that were completely invisible in the old flat structure. |
…ish (#3145) Version bump and CHANGELOG entry for 4.6.5. Highlights: - #3143 MQTT Bridge mirror dashboard (read-only Open button on bridge cards; suppresses every TX surface; MqttBridgeManager now exposes the Meshtastic-shaped methods the consolidated /api/poll + /api/connection endpoints expect). - #3142 MeshCore Telemetry dashboard tab via source-agnostic Dashboard. - #3141 MeshCore: preserve LPP channel byte in remote telemetry rows. - #3140 DM: skip PKI flag when keyMismatchDetected. - #3138 docs reorganization. - #3137 unified: merge nodes across sources so labels show in the unified Nodes view. - #3136 mqtt: allow standalone mqtt_bridge as client-proxy target. CLAUDE.md version line updated to 4.6.5. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… public site (#3534) Both user-directed security warning pages (security-duplicate-keys, security-low-entropy-keys) were moved under docs/internal/ by #3138 and thus excluded from the VitePress build (srcExclude '**/internal/**'), 404ing their public URLs (incl. the bit.ly short link). Moved both back to the docs root to restore /security-duplicate-keys and /security-low-entropy-keys, added Administration & Security sidebar entries, and repointed automation.md's links to site-relative paths.
Summary
Reorganize the MeshMonitor docs site (meshmonitor.org) so a new user can actually find things. The site had grown to 80+ pages but discovery was rough — the Features sidebar was a flat 25+ item list, Configuration mixed connection setup with HTTPS/auth/hardening, and 10+ pages existed on disk but weren't in any sidebar. This PR tightens structure and cleans up dead links without rewriting page content.
What changed
Grouped sidebars (was: flat lists)
Promoted 11 orphan pages (existed on disk, missing from any sidebar):
maps.md(the main 19KB Interactive Maps page!),solar-monitoring,custom-themes,system-backupfail2ban,duckdns-https,node-loadTEST_SUITE,FRONTEND_STRUCTURE,claude-getting-started,BLE_BRIDGE_MIGRATIONMoved internal docs out of /docs root to
docs/internal/{dev-notes,meshcore-design,security-review,analysis,release-notes}/. These were already excluded from the VitePress build but cluttered the root for anyone browsing on GitHub. /docs root drops from 26 .md files to 8.Deleted duplicate
docs/development/api.md; merged its quick-start content intodocs/development/api-reference.md(the page that actually embeds the Swagger UI).Tightened
ignoreDeadLinksto just/^http:\/\/localhost/. The old config silently matched any URL containing strings likePUSH_NOTIFICATIONS, swallowing real typos. With the new config,vitepress buildcaught 11 previously-hidden dead links, all fixed here (/development/api→/development/api-reference; excluded-doc links rewritten to GitHub blob URLs).Updated cross-repo references in
CLAUDE.md,.devcontainer/README.md, and source-code comments insrc/server/meshcoreManager.tsto point at the newdocs/internal/paths.Build result
No dead links. No errors.
Test plan
npm run docs:buildsucceeds with no dead-link errorsnpm run docs:dev— manually verify each sidebar group expands/collapses and links resolve/features/maps,/features/solar-monitoring,/features/custom-themes,/configuration/fail2ban,/configuration/duckdns-httpsall reachable from the sidebar/docs/internal/**not reachable from the public site, but still browsable on GitHubCLAUDE.md's "Read order" link todocs/internal/dev-notes/ARCHITECTURE_LESSONS.mdresolves on GitHub🤖 Generated with Claude Code