Начал с того, что родственница-мастер считала материалы в блокноте. Первая версия — за вечер: один index.html, vanilla JS, localStorage, ноль базы, ноль персональных данных, 0 ₽ инфраструктуры. За три дня довёл до версии с ГКЛ по карте Кнауф, электрикой по точкам, чек-листом расходников и сметой.
Застрял на двух вещах, обе — про русского пользователя, а не про код. Первое: input type="number" молча не принимает запятую, а на русской клавиатуре запятая и есть разделитель — поле пустело, расчёт давал бесконечность. Второе: у select нет defaultValue, селекты сохранялись пустыми. Оба бага ловились только руками на реальном телефоне, тесты их не видели.
Что помогло сильнее всего — отдать инструмент незнакомому практику. Электрик Владимир записал 7 голосовых на 5 минут, я расшифровал их локально и внедрил в тот же день: распаечные коробки, способ соединения скруток (70% сварка, 30% гильзы — его цифра), цена работы за квадрат вместо за точку. Больше всего он хвалил блок «не забыть взять с собой» — тот, который я добавил последним и почти выкинул.
Денег калькулятор не приносит и не должен: отдаю бесплатно, вернулось бартером — скидка на ремонт, дрова для бани, мясо и т. д.