webui: add WebUI components