Универсального инструмента нет. Следует исходить из задачи (какой именно фронт и что именно должен уметь бэк), и ресурсов - на сколько сильно вы можете увеличить стоимость устройства и какой человеческий ресурс.
На фронте, как уже сказали, выбора нет - любое решение в итоге будет сводиться к html/js/css (даже если навернуть React/TypeScript/sass)
На бэке варианта два:
1. Чайник/принтер сам выступает в роли сервера. Тогда придётся писать на C или Rust.
2. Сервером выступает отдельный, более мощный компьютер, чем тот который управляет основными функциями.
Он может быть как встроенным в устройство (какой-то небольшой одноплатный компьютер), так и отдельным (полноценный сервер или хаб) - тогда бэкенд можно будет написать на том, что тебе будет более удобным.
В общем то в зависимости от этого следует и инструменты для фронтенда выбирать, тк в первом случае памяти будет не много, а по тому какой-то тяжёлый фреймворк затащить не выйдет.