[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82237":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":14,"stars7d":13,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":33,"discoverSource":34},82237,"HexHive","joeltelling\u002FHexHive","joeltelling","Local web tool for controlling a hexagonal WLED LED-strip installation. Next.js + TypeScript.","",null,"TypeScript",32,5,1,2,0,9,3,47.73,"GNU General Public License v3.0",false,"main",[24,25,26,27,28,29],"esp8266","hexagon","led","nextjs","typescript","wled","2026-06-12 04:01:37","# Hex Hive\n\nA local web tool for controlling a hexagonal [WLED](https:\u002F\u002Fkno.wled.ge\u002F) LED-strip installation.\n\nArrange hexagons in a layout, map physical LEDs to each hex, then drive the strip with curated patterns, per-hex painting, static scenes, and animated waves. The browser never contacts WLED directly — a server-side proxy handles HTTP and a WebSocket subscriber mirrors live device state back to the UI.\n\n## Features\n\n- **Layout designer** — arrange hex tiles, drag-and-snap, save layouts to disk.\n- **LED mapper** — map each hex tile to one or more LED ranges on the strip, with a mini-preview.\n- **Per-hex painting** — pick a color, click hexes, push the result to WLED.\n- **Patterns \u002F scenes \u002F waves** — curated catalog plus a server-side render loop for animated waves.\n- **Live state mirroring** — what you see in the browser is what the strip is doing, via WLED's WebSocket.\n- **No database, no cloud** — JSON files in `data\u002F`, logs in `logs\u002Fhex-hive.log`, that's it.\n\n## Requirements\n\n- **Node.js 18+** and npm.\n- A WLED device on your local network (tested against an ESP8266; ESP32 should work).\n  - Reachable at `wled.local` or a static IP — you configure the host in the UI.\n  - WLED auth must be **off** (not currently supported by this app).\n  - For WS281x strips: set color order to **GRB** in WLED's own settings.\n\n## Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjoeltelling\u002FHexHive.git\ncd HexHive\nnpm install\ncp .env.example .env     # optional — only LOG_LEVEL lives here\n```\n\n## Run\n\n```bash\nnpm run dev              # http:\u002F\u002Flocalhost:3000  (auto-bumps to 3001+ if taken)\nnpm run logs             # second terminal: pretty-printed log tail\n```\n\nThen open the app, enter your WLED host (`wled.local` or `192.168.x.y`) in the top bar, and start designing.\n\nFor a production build:\n\n```bash\nnpm run build\nnpm run start\n```\n\n## Scripts\n\n| Script | Does |\n|---|---|\n| `npm run dev` | Next.js dev server |\n| `npm run build` | Production build |\n| `npm run start` | Production server |\n| `npm run logs` | Tail `logs\u002Fhex-hive.log` through `pino-pretty` |\n| `npm run typecheck` | `tsc --noEmit` |\n\n## Environment\n\n| Var | Default | Purpose |\n|---|---|---|\n| `LOG_LEVEL` | `debug` | Pino log level (`trace`\u002F`debug`\u002F`info`\u002F`warn`\u002F`error`) |\n| `NODE_ENV` | — | `production` disables the stdout log stream |\n\nThe WLED host is **not** an env var — it's set in the UI and persisted to `data\u002Fconfig.json`.\n\n## Stack\n\nNext.js 14 (App Router) · React 18 · TypeScript (strict) · Tailwind CSS · Pino · `ws` · zod. File-based persistence in `data\u002F`.\n\n## Documentation\n\nFull design docs live in [`docs\u002F`](docs\u002FREADME.md):\n\n- [`architecture.md`](docs\u002Farchitecture.md) — system design, data flow, source layout\n- [`api.md`](docs\u002Fapi.md) — REST + SSE endpoint reference\n- [`wled.md`](docs\u002Fwled.md) — WLED HTTP client, payload encoder, WebSocket subscriber\n- [`wave-streamer.md`](docs\u002Fwave-streamer.md) — server-side wave render loop\n- [`frontend.md`](docs\u002Ffrontend.md) — React components and state context\n- [`storage.md`](docs\u002Fstorage.md) — file-based JSON persistence\n- [`catalogs.md`](docs\u002Fcatalogs.md) — pattern \u002F scene \u002F wave catalogs and hex math\n- [`development.md`](docs\u002Fdevelopment.md) — workflow, env vars, and the **known pitfalls** (read this before debugging anything that \"should work\")\n- [`CHANGELOG.md`](docs\u002FCHANGELOG.md) — dated log of changes\n\n## License\n\n[GPL-3.0](LICENSE). If you fork or build on this, your derivative work must also be GPL-3.0.\n\n## Acknowledgements\n\nBuilt on [WLED](https:\u002F\u002Fgithub.com\u002FAircoookie\u002FWLED) by Aircoookie and contributors.\n","HexHive 是一个用于控制六边形 WLED LED 灯带安装的本地 Web 工具。该项目使用 Next.js 和 TypeScript 构建，提供了布局设计、LED 映射、每块六边形单独上色、预设图案与场景设置及动态波浪效果等功能。其核心技术特点包括通过服务器端代理处理 HTTP 请求和 WebSocket 订阅来同步设备状态到用户界面，确保浏览器无需直接与 WLED 交互。此外，HexHive 不依赖数据库或云服务，所有数据存储于本地 JSON 文件中。此工具适用于需要灵活配置和展示个性化灯光效果的家庭或商业环境，特别是那些基于 ESP8266 或 ESP32 平台构建的 WLED 设备。","2026-06-11 04:08:09","CREATED_QUERY"]