Разрабатываю веб-приложения, в которых интерфейс нельзя отделить от правил бизнеса, данных и эксплуатации. Это админ-панели, внутренние рабочие места, отчёты, API и интеграционные сервисы. Для таких задач обычно использую React и TypeScript на клиенте, Node.js на сервере, PostgreSQL или SQLite для хранения. Astro оставляю контентным сайтам: если основная ценность продукта — длительная пользовательская сессия, сложные формы и состояния, нужен прикладной интерфейс, а не маркетинговая страница.
Если операторы всё ещё живут в Excel, пакетах PDF и папках сканов, добавляю контур на Python (или Node), чтобы данные доходили до дашборда или ERP без копирования руками. Примеры: GDCExcelWorker, PDFImageMerger, PDFPagesManager.
Работу начинаю не с набора экранов, а с критичного сценария и источников данных. Кто создаёт сущность, кто может её изменить, что происходит при повторном запросе, как оператор узнаёт о сбое? Ответы определяют модель данных, API и роли раньше, чем выбор библиотеки таблиц. Для существующего продукта сначала смотрю зависимости, сборку, миграции и путь релиза; переписывание с нуля предлагаю только тогда, когда его польза доказуема.
Граница услуги проходит по программному продукту. Я могу собрать интерфейс, серверную часть, авторизацию, интеграции, тесты важных путей и документацию запуска. Исследование рынка, фирменный стиль или круглосуточная поддержка не появляются в смете автоматически. Приёмка строится на рабочих сценариях: пользователь входит под нужной ролью, сохраняет данные, видит понятную ошибку при недоступном сервисе, а команда может поднять проект по инструкции.
Если задачу закрывает готовая CRM, BI-система или административный модуль, честнее настроить их, чем писать замену. Свой код оправдан, когда процесс отличается от коробочного, нужны особые права, интеграции или интерфейс влияет на ежедневную производительность. Для публичной витрины без сложной сессии лучше соседний кластер маркетинговых сайтов; здесь собраны именно приложения и инженерные компоненты вокруг них.