[DOCS] Overhaul new-user onboarding, home page, and upload flow (#2347)

Getting started:
- New 15-minute Getting Started guide featuring the two most popular
  tracks (BLE on esp32dev-ble, RF on lilygo-rtl_433), with broker setup
  and a verification step
- Sidebar restructured around the new-user journey; upload options
  numbered by ease; Gitpod upload method removed

Home page:
- VitePress hero with clear actions, larger hero image
- How-it-works pipeline diagram shared as a component (responsive via
  container queries), use-case grid, bigger video tiles without the
  image lightbox, refreshed press coverage list, functions pills
- Support section pointing to Theengs Bridge and
  github.com/sponsors/1technophile

Upload flow:
- Decision-oriented upload landing page (journey strip, method cards,
  comparison table)
- Pre-flight checklist and driver troubleshooting on the web installer
- Guided environment picker (bridge + hardware wizard) replacing the
  filter chips, with manifest-verified recommendations
- Post-flash next-steps card linking to the portal and verification

Board images:
- custom_img key in environments.ini and board photos for all
  web-flashable environments (licenses recorded); private prod_env.ini
  environments excluded from boards-info.json

Corrections:
- RF frequency coverage stated as 433/315/868/915MHz
- Removed references to the retired compatible.openmqttgateway.com
  site (BLE list is decoder.theengs.io), the discontinued Theengs
  Plug, and the private sponsor forum


Claude-Session: https://claude.ai/code/session_01TYysQW8tpmt1dWWuzKhTLi

Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
authored and GitHub committed 2026-08-03 10:23:43 -05:00
1 parent 382aae8353
commit f5b33104ef
67 files changed
+1142 -412

No files matched your search

+17 -1
View File
@@ -214,11 +214,27 @@ function collectBoardsInformations(sections, { includeTests = false } = {}) {
return rows;
}
// pio project config resolves extra_configs, which pulls in user-specific
// files like prod_env.ini; only environments declared in environments.ini
// belong in the published boards list.
function publicEnvironmentNames() {
const fs = require('fs');
const path = require('path');
const ini = fs.readFileSync(path.resolve(__dirname, '..', 'environments.ini'), 'utf8');
const names = new Set();
for (const match of ini.matchAll(/^\[env:([^\]]+)\]/gm)) {
names.add(match[1].trim());
}
return names;
}
function loadBoardsInfo(options = {}) {
const { includeTests = false } = options;
const config = rowConfigFromPlatformIO();
const sections = convertJsonToSections(config);
return collectBoardsInformations(sections, { includeTests });
const rows = collectBoardsInformations(sections, { includeTests });
const publicEnvs = publicEnvironmentNames();
return rows.filter(row => publicEnvs.has(row.Environment));
}
function ensureDir(dir) {