qwane

продуктовый веб

Разработка веб-приложений на заказ

Приложение, а не сайт: состояние, роли, одновременная работа нескольких людей и живые обновления. Интерфейс как рабочий инструмент, а не витрина.

Разница между сайтом и веб-приложением не в красоте и не в объёме. Сайт показывает то, что вы в него положили: страницы, каталог, форму заявки. Приложение хранит состояние и меняет его по правилам — у него есть пользователи с разными правами, данные, которые редактируют несколько человек одновременно, и действия, которые нельзя выполнить дважды. Первое собирается на конструкторе за выходные, и это правильное решение. Второе на конструкторе упирается в потолок ровно в тот момент, когда логики становится больше, чем экранов.

Практически потолок выглядит так. Нужно, чтобы два менеджера не переписали одну запись друг за другом. Нужно, чтобы длинная операция шла в фоне, а пользователь видел прогресс, а не крутилку на десять минут. Нужно, чтобы у подрядчика был свой кабинет, где он видит только свои заказы. Нужно, чтобы кнопка «отправить», нажатая дважды, не создала два платежа. Каждое из этих требований по отдельности звучит мелко, а вместе они и есть та часть работы, ради которой приложение пишут кодом.

Castolly — приложение ровно такого класса, и оно живёт в проде. В центре — нодовый canvas: выпуск подкаста в середине, вокруг ноды под каждый тип контента, кнопка «generate all» запускает их параллельно. Значит, тяжёлая клиентская логика на холсте, десятки фоновых задач на очередях, живой прогресс по каждой и понятное поведение, когда одна из них упала. Роли и лимиты по тарифу — сверху. Это не витрина с формой, а инструмент, в котором человек работает каждый день.

Собирается по частям и на реальных данных. Первый рабочий кусок — обычно ядро: сущности, роли и один сквозной сценарий от входа до результата — выходит за 2 недели, и с этого момента приложением уже можно пользоваться, пока остальное дописывается. Дизайн и вёрстка идут в тех же руках, что и бэкенд, поэтому не бывает разговора «дизайнер нарисовал, бэкенд так не умеет». После запуска остаются поддержка и доработка — отдельная услуга, а не абонентская плата за то, чтобы приложение просто продолжало работать.

Что здесь ломается

Где заканчивается сайт и начинается приложение

ПризнакСайт или конструкторВеб-приложение
СостояниеКонтент, который меняет редакторДанные, которые меняют пользователи по правилам системы
Одновременная работаНе рассматриваетсяБлокировки и версии: чужая правка не затирается молча
Долгие операцииВсё синхронно, дальше таймаутОчередь, прогресс, повтор при сбое и понятная ошибка
ПраваАдмин и посетительРоли и право на действие, вплоть до отдельных полей
ИдемпотентностьДвойной клик — двойная записьПовторный запрос не создаёт второй заказ и второй платёж
Данные под нагрузкойСписок грузится целикомПагинация, индексы и выборки под реальные объёмы
ИзмененияПравка через поддержку платформыСвой код и репозиторий: правку делает тот, кто писал систему

Что входит

Для кого

тем, у кого продукт — это логика и данные, а не страницы: сервисам с личными кабинетами, внутренним рабочим местам, инструментам, в которых люди работают каждый день, и продуктам, переросшим конструктор.

Когда не ко мне: если нужен лендинг, корпоративный сайт или магазин на готовом движке — это не ко мне, и разработка на заказ здесь только удорожает результат. Не берусь я и за доработку чужих сайтов на WordPress или Битриксе: это отдельная профессия со своей экосистемой, и подрядчик, который живёт в ней постоянно, сделает лучше и дешевле.

Кейс по теме: Castolly — AI-конвейер контента для подкастов

Частые вопросы

На чём вы это пишете?
Обычно TypeScript на обеих сторонах: React или Next.js на фронте, Node на бэке, PostgreSQL в основе, очереди для фоновых задач. Стек выбирается под задачу, а не наоборот, но он намеренно скучный и распространённый — чтобы после меня систему мог подхватить любой веб-разработчик, а не только я.
Можно доработать приложение, которое писал не ты?
Можно, но сначала я смотрю код и говорю честно, во что это обойдётся. Иногда правка в чужой системе дешевле переписывания, иногда наоборот — и второе случается чаще, чем хочется. Оценку «вслепую», по описанию задачи и без доступа к репозиторию, я не даю: она всегда врёт в меньшую сторону.
Нужен ли дизайнер отдельно?
Нет. Интерфейс проектирую и верстаю я же, поэтому не возникает разрыва между тем, что нарисовано, и тем, что реально работает с данными. Если у вас есть свой дизайнер или готовый макет — работаю по ним.
Сколько стоит и от чего зависит срок?
Смету двигают не экраны, а число ролей, объём фоновой работы и требования к одновременному доступу. Приложение с одной ролью и синхронными операциями и приложение с четырьмя ролями, очередями и живым прогрессом различаются в разы при одинаковом количестве страниц. Разбор того, что двигает цену, — на странице стоимости MVP; цена и срок фиксируются до начала работ.
Что происходит после запуска?
2 месяца поддержки входят в цену: баги и мелкие правки закрываются без доплат. Дальше — по договорённости, от разовых задач до регулярного сопровождения. Код, сервер и доступы к этому моменту уже оформлены на вашу компанию, поэтому продолжать можно и без меня.

Строишь что-то такое?

Расскажи, что строишь — отвечу в течение дня.

Обсудить проект

Разбор по теме

Все разборы