Skip to content

Маркетплейсы и фриланс-биржи на Laravel

Честная оценка рынка

Качественной готовой open-source фриланс-биржи на Laravel не существует. Что есть:

ВариантВердикт
Скрипты с CodeCanyon (Freelancer clone и т.п.)🔴 Платные ($30–70), код низкого качества, дыры в безопасности, невозможно поддерживать — не брать даже как основу
Bagisto + Multi-Vendor (Webkul, платный)🟡 Только для товарных маркетплейсов; для услуг/фриланса не подходит
Cocorico (Symfony), Sharetribe (SaaS)Не Laravel: Cocorico заброшен, Sharetribe — аренда SaaS
Своя разработка из проверенных пакетов🟢 Единственный рабочий путь; ~60–70% функционала закрывается готовыми пакетами

Вывод: биржа — это своя разработка, но «свой» здесь — оркестрация готовых кирпичей. Ниже карта: подсистема → пакет.

Карта подсистем биржи → готовые пакеты

ПодсистемаПакетПримечание
Роли (заказчик/исполнитель/арбитр/админ)spatie/laravel-permissionСтандарт
Балансы, холды, комиссииbavix/laravel-walletКлючевой пакет: кошельки на пользователя, переводы, заморозка средств, atomic-операции
Статусы сделки (workflow)spatie/laravel-model-statesЧерновик → отклик принят → в работе → сдано → принято/спор — конечный автомат, а не строковое поле
Чат по сделкеmunafio/chatify или musonza/chatChatify — готовый UI; musonza/chat — headless-ядро под свой UI
Realtime (чат, уведомления, счётчики)laravel/reverb + laravel-echoReverb — first-party WebSocket-сервер, бесплатный
Отзывы и рейтингисвоя модель (2 таблицы)Готовые пакеты слабые; двусторонний отзыв + агрегат рейтинга проще написать
Поиск исполнителей/заказовlaravel/scout + MeilisearchMeilisearch — OSS, фасеты и опечатки из коробки
Уведомленияlaravel-notification-channels/telegram + mail + databaseКаналы комбинируются штатно
Модерация контентаspatie/laravel-model-status + очередь на проверкуПлюс антиспам: spatie/laravel-honeypot, rate limiting
Верификация (KYC-лайт)spatie/laravel-medialibraryЗагрузка документов + статус проверки
Аудит действий (для споров)spatie/laravel-activitylogКто что менял — база для арбитража
Жалобы/спорысвоя модель + FreeScout для переписки поддержкиСпор = состояние сделки + тред
Тарифы/подписки (PRO-аккаунты)своя модель + laravel-walletCashier не подходит для РФ-платежей
Платежи (пополнение/безопасная сделка)ЮKassa (в т.ч. «Безопасная сделка») → ru-specific.md
Выплаты исполнителямЮKassa Выплаты / банковский APIЮридическая часть важнее технической
Админка (модерация, финансы, арбитраж)FilamentMulti-panel: /admin + кабинеты как отдельные панели
API для мобильного приложенияlaravel/sanctum + spatie/laravel-data + dedoc/scrambleScramble генерирует OpenAPI-доку из кода

Эскроу на bavix/laravel-wallet — ключевой паттерн

Классическая схема безопасной сделки без спецпакета «escrow»:

  1. Заказчик пополняет кошелёк (платёжный шлюз → deposit).
  2. При старте сделки — перевод на «кошелёк сделки» (у wallet есть мультикошельки на одну модель) либо freeze суммы у заказчика.
  3. Сдача работы → подтверждение → transfer исполнителю минус комиссия (комиссия — второй transfer на системный кошелёк).
  4. Спор → арбитр делит сумму (два transfer по решению).
  5. Вывод — заявка на выплату, обрабатываемая вручную/через API выплат.

Всё это atomic-операции пакета + DB::transaction(). Писать свою бухгалтерию с нуля не нужно, но тесты на каждый денежный сценарий обязательны (включая гонки — два подтверждения одновременно).

Юридические грабли (влияют на архитектуру)

  • Приём денег «за другого» = агентская схема: нужен договор-оферта, комиссия — доход площадки.
  • «Безопасная сделка» ЮKassa решает часть проблем (деньги у банка, не у площадки) — заложить её API в архитектуру платёжного сервиса с самого начала.
  • Выплаты физлицам → самозанятость (проверка статуса НПД через API ФНС) или ГПХ. Это поле payout_method и проверки в домене «Исполнитель» с первого дня, а не «потом прикрутим».

Ориентировочная декомпозиция (биржа услуг, MVP)

БлокГотовоеСвоё
Auth, профили, ролиBreeze/Fortify + spatie/permissionАнкеты исполнителей
Заказы, отклики, сделкиmodel-states, activitylogДомен: правила откликов, дедлайны
Деньгиlaravel-wallet, шлюзКомиссии, правила холдов, вывод
Чатchatify/musonza + reverbПривязка к сделке, вложения
Поиск/каталогscout + meilisearchРанжирование, фасеты
Отзывы, рейтингиСвоё (просто)
Админка/арбитражFilamentЭкраны споров
Уведомленияnotification-channelsМатрица событий

Итого готовыми пакетами закрывается инфраструктурный слой (~60%), своя работа — доменная логика и UX. Это и есть главная экономия: не писать кошельки, чаты, websockets и права.

Внутренняя база знаний студии