Build a new SHServ web client in parallel with the existing vanilla JS client. The new client should use Vue and gnexus-ui-kit, while preserving the current smart-home workflows:
webclient/.ControlScripts.The new client should be a separate frontend application under webclient-vue/. It should communicate with the existing backend through the same HTTP API used by the current client.
Recommended high-level structure:
webclient-vue/
docs/
src/
app/
api/
components/
features/
areas/
devices/
scripts/
router/
stores/
styles/
Use gnexus-ui-kit as the primary UI foundation and keep it as a live, updatable design dependency. The first implementation pass should prioritize compatibility with UI-kit updates, consistency, state clarity, and operational reliability over visual experimentation.
Important UI states:
The current client uses proxy.php with a path=/api/v1/... query parameter. The new client may use the same proxy in local development, but API access should be wrapped behind a dedicated API client so the transport can be changed later.