продуктовый веб
Разработка веб-приложений на заказ
Приложение, а не сайт: состояние, роли, одновременная работа нескольких людей и живые обновления. Интерфейс как рабочий инструмент, а не витрина.
Разница между сайтом и веб-приложением не в красоте и не в объёме. Сайт показывает то, что вы в него положили: страницы, каталог, форму заявки. Приложение хранит состояние и меняет его по правилам — у него есть пользователи с разными правами, данные, которые редактируют несколько человек одновременно, и действия, которые нельзя выполнить дважды. Первое собирается на конструкторе за выходные, и это правильное решение. Второе на конструкторе упирается в потолок ровно в тот момент, когда логики становится больше, чем экранов.
Практически потолок выглядит так. Нужно, чтобы два менеджера не переписали одну запись друг за другом. Нужно, чтобы длинная операция шла в фоне, а пользователь видел прогресс, а не крутилку на десять минут. Нужно, чтобы у подрядчика был свой кабинет, где он видит только свои заказы. Нужно, чтобы кнопка «отправить», нажатая дважды, не создала два платежа. Каждое из этих требований по отдельности звучит мелко, а вместе они и есть та часть работы, ради которой приложение пишут кодом.
Castolly — приложение ровно такого класса, и оно живёт в проде. В центре — нодовый canvas: выпуск подкаста в середине, вокруг ноды под каждый тип контента, кнопка «generate all» запускает их параллельно. Значит, тяжёлая клиентская логика на холсте, десятки фоновых задач на очередях, живой прогресс по каждой и понятное поведение, когда одна из них упала. Роли и лимиты по тарифу — сверху. Это не витрина с формой, а инструмент, в котором человек работает каждый день.
Собирается по частям и на реальных данных. Первый рабочий кусок — обычно ядро: сущности, роли и один сквозной сценарий от входа до результата — выходит за 2 недели, и с этого момента приложением уже можно пользоваться, пока остальное дописывается. Дизайн и вёрстка идут в тех же руках, что и бэкенд, поэтому не бывает разговора «дизайнер нарисовал, бэкенд так не умеет». После запуска остаются поддержка и доработка — отдельная услуга, а не абонентская плата за то, чтобы приложение просто продолжало работать.
Что здесь ломается
- Конструктор кончился: нужное поведение либо не настраивается, либо стоит как разработка.
- Два человека редактируют одну запись, и выигрывает тот, кто нажал «сохранить» вторым.
- Долгая операция держит вкладку открытой, и пользователь не знает, идёт она или упала.
- Каждой новой роли нужен свой кабинет, а прав в системе по-прежнему две штуки.
- Форму отправили дважды — и в базе два заказа, а в эквайринге два платежа.
- Данных стало много, и список на тысячу строк грузится десять секунд.
Где заканчивается сайт и начинается приложение
| Признак | Сайт или конструктор | Веб-приложение |
|---|---|---|
| Состояние | Контент, который меняет редактор | Данные, которые меняют пользователи по правилам системы |
| Одновременная работа | Не рассматривается | Блокировки и версии: чужая правка не затирается молча |
| Долгие операции | Всё синхронно, дальше таймаут | Очередь, прогресс, повтор при сбое и понятная ошибка |
| Права | Админ и посетитель | Роли и право на действие, вплоть до отдельных полей |
| Идемпотентность | Двойной клик — двойная запись | Повторный запрос не создаёт второй заказ и второй платёж |
| Данные под нагрузкой | Список грузится целиком | Пагинация, индексы и выборки под реальные объёмы |
| Изменения | Правка через поддержку платформы | Свой код и репозиторий: правку делает тот, кто писал систему |
Что входит
- проектирование сущностей и сценариев до первой строчки интерфейса
- личные кабинеты и рабочие места под разные роли
- дашборды и визуализация данных под реальные объёмы
- real-time: живые обновления, прогресс фоновых задач, вебсокеты
- сложные формы, мастера и многошаговые сценарии с сохранением черновика
- фоновые задачи и очереди с повторами и понятным разбором сбоев
- авторизация, роли, права на действия, журнал изменений
- интерфейс и вёрстка: адаптив, доступность, скорость первой отрисовки
- деплой, мониторинг и передача доступов на вашу компанию
Для кого
тем, у кого продукт — это логика и данные, а не страницы: сервисам с личными кабинетами, внутренним рабочим местам, инструментам, в которых люди работают каждый день, и продуктам, переросшим конструктор.
Когда не ко мне: если нужен лендинг, корпоративный сайт или магазин на готовом движке — это не ко мне, и разработка на заказ здесь только удорожает результат. Не берусь я и за доработку чужих сайтов на WordPress или Битриксе: это отдельная профессия со своей экосистемой, и подрядчик, который живёт в ней постоянно, сделает лучше и дешевле.
Цена и сроки: от 190 000 ₽ Техподдержка и доработка сайта после запуска
Кейс по теме: Castolly — AI-конвейер контента для подкастовЧастые вопросы
- На чём вы это пишете?
- Обычно TypeScript на обеих сторонах: React или Next.js на фронте, Node на бэке, PostgreSQL в основе, очереди для фоновых задач. Стек выбирается под задачу, а не наоборот, но он намеренно скучный и распространённый — чтобы после меня систему мог подхватить любой веб-разработчик, а не только я.
- Можно доработать приложение, которое писал не ты?
- Можно, но сначала я смотрю код и говорю честно, во что это обойдётся. Иногда правка в чужой системе дешевле переписывания, иногда наоборот — и второе случается чаще, чем хочется. Оценку «вслепую», по описанию задачи и без доступа к репозиторию, я не даю: она всегда врёт в меньшую сторону.
- Нужен ли дизайнер отдельно?
- Нет. Интерфейс проектирую и верстаю я же, поэтому не возникает разрыва между тем, что нарисовано, и тем, что реально работает с данными. Если у вас есть свой дизайнер или готовый макет — работаю по ним.
- Сколько стоит и от чего зависит срок?
- Смету двигают не экраны, а число ролей, объём фоновой работы и требования к одновременному доступу. Приложение с одной ролью и синхронными операциями и приложение с четырьмя ролями, очередями и живым прогрессом различаются в разы при одинаковом количестве страниц. Разбор того, что двигает цену, — на странице стоимости MVP; цена и срок фиксируются до начала работ.
- Что происходит после запуска?
- 2 месяца поддержки входят в цену: баги и мелкие правки закрываются без доплат. Дальше — по договорённости, от разовых задач до регулярного сопровождения. Код, сервер и доступы к этому моменту уже оформлены на вашу компанию, поэтому продолжать можно и без меня.