Куб из сфер — знак студии

12 лет в заказной разработке

Площадка, на которой деньги переживают спор

Две стороны, которые нужны друг другу, платёж, который обязан подождать до приёмки, и разногласие, которое должно чем-то закончиться. Это не про торговлю на Wildberries и не про интернет-магазин — это своя площадка. Одну такую мы построили, и её можно открыть прямо сейчас.

Смотреть работы
Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//Разработка маркетплейса//
Узнаёте себя?

Свести стороны получилось. Ломается всё на деньгах

  • «Люди находят друг друга у нас, а договариваются уже в личке.»

    Это не про лояльность, а про ценность. Обе стороны уходят, когда оставаться внутри стоит комиссии и не даёт ничего взамен. Удержание платежа, разбор спора и запись того, о чём договорились, — вот за что остаются.

  • «Деньги держим на своём счёте, выплаты делаем руками по пятницам.»

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

  • «Когда двое поспорили, всё падает нам в почту, и мы решаем по ситуации.»

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

  • «Взяли готовый движок и уперлись в него в первый же квартал.»

    Коробка предполагает одну комиссию, одну валюту, один график выплат и одно понимание слова «выполнено». Как только ваша модель отличается — залог до начала работ, этапы, частичный возврат, — вы пишете костыли вокруг софта, за который ещё и платите.

Первая версия

Обе стороны и живой путь денег — за двенадцать недель

от 1 200 000 ₽
Фиксируется под объём, согласованный до старта. Дороже продукта с одной аудиторией по одной причине: у маркетплейса два сценария, и встречаются они на деньгах — там же и вся сложность.
Двенадцать недель
От первого созвона до площадки, на которой идут настоящие сделки между настоящими людьми.

Что вы получаете

  • Две роли со своими сценариями: та, что платит, и та, что получает
  • Удержание платежа от заказа до приёмки, с записанными правилами разблокировки
  • Комиссия, которая берётся сама, по ставке, которую вы меняете без нас
  • Процедура спора: статусы, сроки, исход — вместо почтового ящика
  • Выплаты, включая ту часть, где выплата не прошла и её нужно повторить
  • Админка, где человек видит любую сделку и может в неё вмешаться
  • Сквозные тесты на денежные пути, в вашем репозитории

Что не входит

  • Лицензия платёжного агента и удержание чужих денег на наших счетах
  • Проверка личности и антифрод сверх того, что делает платёжный провайдер
  • Мобильные приложения для обеих сторон — это отдельная услуга и отдельная цена
  • Маркетинг и набор первых исполнителей на площадку
  • Мультивалютные расчёты и выплаты за рубеж в первой версии
173
сквозных теста проходят на нашей площадке
21
модель данных, шесть из них про деньги
4 месяца
от первого созвона до работающего продукта
Что получается

Части маркетплейса и порядок, в котором они появляются

Разработка маркетплейса ломается предсказуемо: каталог и профили делают первыми, потому что их видно, а деньги откладывают, потому что они сложные. К запуску выясняется, что сложное так и не спроектировали. Мы идём в обратном порядке — вот как обычно делится объём.

Какие сценарии в какой этап работы попадают
СценарийПервые двенадцать недельВторой этапНе мы
Два аккаунта, два сценария, одна личностьЗаказчик и исполнитель — не один человек с галочкой: разный вход, разные пустые экраны, разная первая минута.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Заказ с деньгами в удержании до приёмкиСердце продукта. Удержано, разблокировано, возвращено, возвращено частично — и каждое из этих состояний достижимо в тестах.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Комиссия и проводки под нейКаждое движение денег — запись. Если ответ на вопрос «где сейчас эти деньги» нельзя получить из базы, у вас не площадка, а сайт.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Споры со сроками и исходомОткрыт, подтверждён документами, решён — и решение само двигает деньги. Без этого продуктом становится почтовый ящик поддержки.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Выплаты, включая непрошедшиеСлетевшая выплата — не редкий случай, а вторник. Ей нужен статус, повтор и человек, который об этом узнает.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Админка для ваших людейНайти сделку, прочитать её историю, вернуть деньги, заблокировать пользователя. Делается для вашего операциониста, а не для нас.Покрыто · Первые двенадцать недельНе покрыто · Второй этапНе покрыто · Не мы
Рейтинги, отзывы, репутацияВажно и не срочно: репутация начинает работать на повторных сделках, а на двенадцатой неделе их ещё нет.Не покрыто · Первые двенадцать недельПокрыто · Второй этапНе покрыто · Не мы
Мобильные приложения обеих сторонРешение второго этапа, и принимать его лучше по цифрам, а не по ощущению, где сидят ваши пользователи.Не покрыто · Первые двенадцать недельПокрыто · Второй этапНе покрыто · Не мы
Стать платёжным агентом самимЛицензия, комплаенс и хранение чужих денег — это другой бизнес с другим регулятором. Мы подключаем провайдеров, а не заменяем их.Не покрыто · Первые двенадцать недельНе покрыто · Второй этапПокрыто · Не мы
входитне на этом этапе

Точный состав выходит из первой недели, вместе с вами. Что не двигается — это порядок: сначала деньги, потом оформление.

Удержание платежа — это машина состояний, а не галочка

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

Как это устроено в нашей площадке

Процедура спора — часть продукта, а не работа поддержки

Основатели обычно собираются разбирать споры лично «на первых порах». Это работает на первом десятке и незаметно превращается в занятие на весь день, без всякой записи о том, почему решили именно так. Спору нужны статусы, срок на каждую сторону, место для доказательств и исход, который сам двигает деньги. Написанное правило можно показать разозлённому пользователю. Настроение показать нельзя.

Две стороны — два пустых экрана, и один из них смертельный

Площадка стартует пустой с обеих сторон, и пустота эта неравноценна. Заказчик, не увидевший исполнителей, уходит и может вернуться. Исполнитель, не увидевший заказов, уходит и рассказывает другим исполнителям. Какую сторону наполнять первой — вопрос бизнеса, но продукт обязан это поддерживать: приглашения, заранее заполненные категории, возможность первым исполнителям выглядеть состоявшимися до того, как они ими стали. Мы спросим об этом на первой неделе.

Почему «сделаем на Битриксе» — это не тот же разговор

Готовые движки и конструкторы закрывают витрину и каталог, и делают это дешевле любой заказной разработки. Упираются они там же, где начинается площадка: в удержание денег между двумя сторонами, в комиссию, которая зависит от категории, в возврат, который надо разделить. Дальше начинается выбор: менять бизнес под софт или уходить. Если ваша модель обычная — берите коробку, мы скажем об этом на созвоне. Если отличается именно та часть, которая приносит деньги, заказная разработка окупается в первый же год тем, что вокруг неё не надо ходить.

Сколько стоит своя разработка и из чего складывается цена

На вопрос «где сейчас деньги» должен отвечать один запрос

Рано или поздно этот вопрос задают, и он всегда звучит одинаково. Если ответ требует чтения логов, сверки с личным кабинетом провайдера и разработчика на телефоне — площадка уже в беде. Каждое движение денег: удержание, разблокировка, комиссия, возврат, выплата, откат — строка с суммой, направлением и причиной. В нашем маркетплейсе 21 модель данных, и шесть из них существуют ровно затем, чтобы этот ответ помещался в одну строку.

Как мы проектируем данные, которые доживают до второго года

И чего мы не делаем

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

Двенадцать недель, и в конце каждой — что-то настоящее

Порядок намеренный. Путь денег существует уже к четвёртой неделе, когда есть время ошибиться дёшево. То, что все обычно делают первым, приходит после — потому что там никто никогда не удивляется.

  1. Неделя 1

    Две стороны и место их встречи

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

    Вы видитеСхема пути денег и перечень всех состояний, в которых они бывают.

  2. Недели 2–3

    Аккаунты, роли и скелет

    Обе роли, оба входа, модели данных под ними. К концу третьей недели всё это развёрнуто на настоящем адресе — дальше вы смотрите на софт, а не на слайды.

    Вы видитеМожно зарегистрироваться обеими сторонами и увидеть их пустой продукт.

  3. Недели 4–6

    Деньги: удержание и разблокировка

    Подключён платёжный провайдер, работает удержание, разблокировка по приёмке, автоматическая разблокировка по сроку, комиссия и проводки. Тесты на каждый путь, включая некрасивые.

    Вы видитеНастоящий платёж проходит между двумя тестовыми аккаунтами и попадает куда должен.

  4. Недели 7–8

    Споры и возвраты

    То, что везде откладывают. Открытие, доказательства, сроки, решение и частичный возврат, который делит удержанное на три части, не теряя копейки на округлении.

    Вы видитеМожно разыграть полный спор между двумя аккаунтами и увидеть, где окажутся деньги.

  5. Недели 9–10

    Выплаты и админка

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

    Вы видитеВаши сотрудники проводят сделку с обеих сторон и вмешиваются в неё.

  6. Недели 11–12

    Обкатка и передача

    Ваши люди пытаются это сломать, мы смотрим. Потом пайплайн, инструкция и доступы переезжают к вам, и ваш разработчик один раз выкатывает площадку сам — теперь смотрим мы.

    Вы видитеВсё в ваших аккаунтах, выкачено вашим разработчиком, тесты зелёные на каждый пуш.

Встраивается в то, чем вы уже пользуетесь
  • ЮKassa
  • Тинькофф Касса
  • Stripe Connect
  • NestJS
  • PostgreSQL
  • Flutter
  • GitHub Actions
Что остаётся у вас

Три вещи из нашей собственной площадки, а не из презентации

Всё ниже взято из репозитория той самой работы, которую можно открыть на этом сайте. То же самое остаётся у вас, когда мы строим вашу.

Вывод терминала: 24 сьюта пройдены, 173 теста прошли, 2 пропущены

Сьют, который сторожит денежные пути

Двадцать четыре сьюта, сто семьдесят пять тестов, два из них пропущены и помечены как пропущенные. Они проверяют отклонённую карту, спор, открытый после приёмки, залог, возвращённый дважды, и выплату, которая не прошла. На снимке сам прогон, вместе с предупреждениями — мы его не причёсывали ради страницы.

jest по test/*.e2e-spec.ts в ugc.backend, 21 августа 2026

Модель Deposit из schema.prisma: сумма десятичным числом, срок возврата, статус-перечисление

Модель данных, где у денег есть место

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

prisma/schema.prisma в ugc.backend

Восемнадцать эндпоинтов: залоги, споры и выплаты

API, который прочтёт следующий разработчик

Семьдесят два эндпоинта, описанные как OpenAPI, а не пересказанные в вики, которую однажды перестали обновлять, — восемнадцать из них только на залоги, споры и выплаты. Эта спецификация и превращает передачу проекта в передачу, а не в заложничество.

спецификация OpenAPI ugc.backend, отфильтрованная по денежным путям

Честно про себя

Кому площадка окупится, а кому обойдётся зря

Строить стоит, если

  • Две стороны уже как-то работают друг с другом — в чате, в таблице, через вас лично — и это трещит
  • Вы берёте комиссию или собираетесь, и комиссия — это модель, а не приписка
  • Деньги обязаны где-то подождать между оплатой и сдачей, и сегодня это ваш счёт
  • Споры случаются достаточно часто, чтобы вы могли по памяти описать типичный
  • Вы знаете, какую сторону будете наполнять первой и примерно как
  • Готовый движок уже пробовали или отвергли по причине, которую можно назвать

Строить не стоит, если

  • Ни одной стороны ещё нет: софт не создаёт предложение, а площадка с одной стороной — очень дорогая посадочная страница
  • Нужна лицензия платёжного агента, и её нет. Это решается до разработки и не разработкой
  • Модель комиссии не решена. Ставку поменять легко, форму — нет
  • На самом деле вам нужен магазин: один продавец, много покупателей, без удержания и споров. Это дешевле и быстрее на коробке
  • Запуск планируется через шесть недель. Один только путь денег честно строится дольше

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

Вопросы, которые задают про разработку маркетплейса

Коротко. Длинные ответы — на созвоне.

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

Часто да, и мы скажем об этом прямо. Коробка дешевле любой заказной разработки ровно до того момента, пока ваша модель совпадает с её предположениями. Залог до начала работ, оплата по этапам, комиссия, зависящая от категории, отложенная выплата — на каждом из этих пунктов начинаются костыли. Вопрос не в том, особенный ли ваш бизнес, а в том, отличается ли именно та часть, которая приносит деньги.

Платёжный провайдер, и договор с ним ваш: ЮKassa, Тинькофф или Stripe Connect в зависимости от стран. Мы строим логику, которая говорит провайдеру, когда удерживать, когда разблокировать и как делить, и проводки, по которым видно, где сейчас любая сумма. Самих денег мы не касаемся, и студия, предлагающая держать их у себя, описывает не возможность, а проблему с лицензией.

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

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

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

У неё появится статус, повтор и человек, которому об этом сообщат. Реквизиты устаревают, счета блокируют, у провайдеров бывают плохие дни. Губит площадку не слетевшая выплата, а слетевшая выплата, которую никто не заметил до злого письма исполнителя неделю спустя.

Да, и никого не спрашивая. У разбора работы на этом сайте есть демо: открывается сразу, работает на тестовых данных, обе роли, сценарий заказа и AI-студия с оплатой по генерациям. Числа на этой странице взяты из репозитория того же продукта, а прогон тестов в блоке артефактов сделан в день, когда писалась страница.

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

Избранные работы

Площадка, которую мы построили и ведём, и её ближайший родственник

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

Двусторонний маркетплейс · Экономика авторов

Маркетплейсы, где деньги лежат посередине

Маркетплейс с двумя сторонами, платежом, удержанным между ними, и ИИ-студией, которая берёт деньги за каждую генерацию. Сложное здесь не каталог, а решение — в коде, — в какой именно момент деньги и файлы меняют владельца.

Это и есть услуга с этой страницы, доведённая до конца: удержание платежа между брендом и автором, процедура спора, AI-студия с оплатой по генерациям и те самые 173 теста, прогон которых виден выше.

4 месяца
от старта до работающего продукта
173
сквозных теста в 24 сьютах
21
модель данных под этим
Внутри живое демоЧитать разбор
Creator feed in the marketplace app, with an order button
Система для позаказного производства · Медицинское производство

Системы для производства, где каждый заказ единственный в своём роде

У позаказного производства нет каталога и нет кнопки «повторить». Каждое изделие делается для одного человека по меркам, которые компьютер снимает со скана, и система обязана удержать эту нить от первого приёма через изготовление, доставку и переделку через полтора года.

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

8 месяцев
и продолжается — самая большая система, которую мы ведём
13
семейств потоков, от приёма до переделки
2053
автопроверки в трёх репозиториях
Внутри живое демоЧитать разбор
Order board in the operations platform, with production stages

Сколько стоит такая разработка и как её проверяют

Все статьи
Маркетплейсы

Кто держит деньги на маркетплейсе: три схемы и что каждая требует от бухгалтерии

Вопрос звучит технически, а решается у бухгалтера: через чей счёт идут деньги, кто пробивает чек и как платить продавцу-самозанятому. От ответа зависит и смета, и то, какие документы вы выдаёте.

3 мин чтения

Поговорим про то, что вам нужно: разработка маркетплейса

Расскажите, что нужно сделать

Ответим в течение одного рабочего дня — диапазоном цены и допущениями, из которых он посчитан, а не приглашением на созвон.