Тема
Библиотеки по категориям
Все пакеты — бесплатные (MIT/Apache, если не отмечено иное). Формат: пакет — что даёт — заметка.
Права, роли, аутентификация
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-permission | Роли и permissions | Стандарт де-факто; UI — filament-shield |
| silber/bouncer | Альтернатива с abilities | Когда права зависят от сущности («может править этот пост») |
| lab404/laravel-impersonate | Вход под пользователем | Для поддержки; есть Filament-плагин |
| owen-it/laravel-auditing | Аудит изменений моделей | Или spatie/laravel-activitylog (проще) |
Медиа и файлы
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-medialibrary | Коллекции файлов, конверсии, responsive images | Уже стандарт студии |
| intervention/image | Обработка изображений (v3) | GD/Imagick |
| spatie/laravel-image-optimizer | Автосжатие загружаемых картинок | Бинарники jpegoptim/pngquant в Docker-образ |
| spatie/browsershot + spatie/laravel-pdf | Скриншоты/PDF через headless Chrome | Красивые PDF из Blade-шаблонов |
| barryvdh/laravel-dompdf | PDF без Chrome | Проще в деплое, хуже с CSS |
| protonemedia/laravel-ffmpeg | Видео: конвертация, превью, HLS | Обёртка FFMpeg |
| league/flysystem-aws-s3-v3 | S3-совместимые хранилища | Selectel/VK Cloud/Yandex Object Storage — S3-протокол |
SEO
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-sitemap | Генерация sitemap (в т.ч. crawl) | Уже по спекам студии |
| artesaos/seotools | title/meta/OpenGraph/Twitter из контроллеров | Либо свой SeoService (по спекам) |
| spatie/schema-org | Типизированный JSON-LD билдер | Вместо ручных массивов Schema.org |
| ralphjsmit/laravel-seo | SEO-поля моделей + Filament-интеграция | Быстрый вариант «SEO-вкладка в админке» |
| spatie/laravel-feed | RSS/Atom | Для блогов/новостей |
Поиск
| Пакет | Что даёт | Заметка |
|---|---|---|
| laravel/scout + Meilisearch | Полнотекст, опечатки, фасеты | Meilisearch — OSS, один Docker-контейнер; дефолт |
| Typesense (+ scout-драйвер) | Альтернатива Meilisearch | Тоже OSS |
| teamtnt/tntsearch | Поиск без отдельного сервера (SQLite-индекс) | Малые проекты |
| PostgreSQL FTS (tsvector + GIN) | Без внешнего сервиса | Уже отработано в catalog (см. specs/migrations.md) |
Данные, Eloquent-утилиты
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-sluggable | Слаги из полей | Кириллица → Str::slug сам транслитерирует |
| spatie/eloquent-sortable | sort_order из коробки | drag&drop в Filament-таблицах |
| spatie/laravel-tags | Теги (с типами и переводами) | |
| kalnoy/nestedset | Деревья (nested set) | Категории с глубокой вложенностью |
| staudenmeir/laravel-adjacency-list | Деревья через рекурсивные CTE | Современная альтернатива nested set |
| spatie/laravel-translatable | Переводы полей в JSON-столбце | Для 2–3 локалей |
| astrotomic/laravel-translatable | Переводы в отдельной таблице | Много локалей / поиск по переводам |
| spatie/laravel-model-states | Конечные автоматы статусов | Заказы, сделки, модерация |
| spatie/laravel-model-status | Простая история статусов | Когда автомат избыточен |
| spatie/laravel-settings | Типизированные настройки в БД | Вместо таблицы options «на коленке» |
| laravel/pennant | Feature-флаги (first-party) | Постепенные релизы |
| spatie/laravel-query-builder | Фильтры/сортировки API из query string | Стыкуется со spatie/laravel-data |
| spatie/laravel-data | DTO + валидация + трансформация | Замена ресурсов и FormRequest-дублей |
Деньги
| Пакет | Что даёт | Заметка |
|---|---|---|
| brick/money | Корректная арифметика денег | Никогда float; minor units |
| cknow/laravel-money | Обёртка moneyphp для Laravel | Casts, форматирование |
| bavix/laravel-wallet | Кошельки, переводы, холды | База эскроу для бирж → marketplace.md |
| laravel/cashier-stripe / cashier-paddle | Подписки | Не для РФ-платежей |
Гео
| Пакет | Что даёт | Заметка |
|---|---|---|
| clickbar/laravel-magellan | PostGIS: типы, casts, ST_* билдеры | Дефолт для PostGIS-проектов (как catalog) |
| matanyadaev/laravel-eloquent-spatial | Spatial-типы для MySQL | Если проект на MySQL |
| spatie/geocoder | Геокодинг через Google | Для РФ лучше DaData/Яндекс → ru-specific.md |
Realtime, очереди, надёжность
| Пакет | Что даёт | Заметка |
|---|---|---|
| laravel/reverb | WebSocket-сервер (first-party) | Бесплатная замена Pusher; + laravel-echo на фронте |
| soketi | Standalone Pusher-совместимый сервер (Node) | Если Reverb не подходит |
| laravel/horizon | Дашборд и супервизор Redis-очередей | Обязателен при активных очередях |
| spatie/laravel-schedule-monitor | Контроль выполнения cron-задач | «Молчаливо умерший» scheduler — частая авария |
| spatie/laravel-health | Health-чеки (БД, redis, диск, очереди) | Эндпоинт для watchdog/Caddy |
| spatie/laravel-backup | Бэкапы БД+файлов по расписанию | + уведомления о сбоях |
Импорт/экспорт, документы
| Пакет | Что даёт | Заметка |
|---|---|---|
| maatwebsite/excel (Laravel Excel) | Импорт/экспорт xlsx/csv | Тяжёлый, но самый функциональный |
| spatie/simple-excel | Потоковые csv/xlsx | Большие файлы без OOM — для ETL |
| league/csv | Низкоуровневый CSV | Максимальный контроль |
Формы, безопасность периметра
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-honeypot | Антиспам-ловушка без капчи | Первый рубеж на все публичные формы |
| propaganistas/laravel-phone | Валидация/формат телефонов (libphonenumber) | Правило phone:RU |
| Cloudflare Turnstile (обёртки) | Капча без Google | Google reCAPTCHA в РФ нестабильна |
| spatie/laravel-csp | Content-Security-Policy заголовки | Периметр |
| spatie/laravel-cookie-consent | Баннер согласия на cookies |
Чаты, социальное
| Пакет | Что даёт | Заметка |
|---|---|---|
| munafio/chatify | Чат с готовым UI (Livewire-стиль) | Быстрый старт, кастомизация ограничена |
| musonza/chat | Headless-чат (диалоги, участники, сообщения) | Свой UI поверх |
| overtrue/laravel-like / laravel-follow | Лайки, подписки | |
| cybercog/laravel-love | Реакции (эмодзи-набор) | |
| cybercog/laravel-ban | Баны пользователей |
API
| Пакет | Что даёт | Заметка |
|---|---|---|
| dedoc/scramble | OpenAPI-дока автогенерацией из кода | Без аннотаций; вместо ручного Swagger |
| spatie/laravel-data | DTO/ресурсы/валидация | Один класс на вход и выход |
| laravel/sanctum | Токены | |
| knuckleswtf/scribe | Дока с примерами запросов | Альтернатива Scramble, больше ручного |
Отладка и качество (dev-only)
| Пакет | Что даёт | Заметка |
|---|---|---|
| laravel/telescope | Запросы, джобы, почта, исключения | Уже в стеке |
| barryvdh/laravel-debugbar | Панель профилирования | Только local |
| laravel/pulse | Прод-метрики (slow queries, jobs, usage) | Лёгкий мониторинг без Grafana |
| larastan/larastan | PHPStan для Laravel | Уровень 6+ на новых проектах |
| laravel/pint | Форматирование | Стандарт студии |
| pestphp/pest | Тесты | Читабельнее PHPUnit |
| rectorphp/rector (+ driftingly/rector-laravel) | Автоматические апгрейды кода | Ускоряет переход между мажорами Laravel |
| barryvdh/laravel-ide-helper | Автодополнение моделей в IDE | ide-helper:models -M |
| beyondcode/laravel-query-detector | Ловит N+1 в dev | Дополняет правило «N+1 — баг» |
Прочее полезное
| Пакет | Что даёт | Заметка |
|---|---|---|
| spatie/laravel-sluggable, -tags, -settings… | См. выше | У Spatie 300+ пакетов: перед своим велосипедом смотреть spatie.be/open-source |
| spatie/period | Работа с интервалами дат | Брони, расписания |
| spatie/opening-hours | Графики работы («пн-пт 9-18») | Каталоги организаций |
| spatie/laravel-responsecache | Кеш целых ответов | Альтернатива своему PageCache-middleware |
| spatie/laravel-login-link | Кнопка «войти как админ» в dev | Ускоряет разработку |
| archtechx/enums | Хелперы для PHP enum (values(), options()) | Для Filament-селектов |
| blade-ui-kit/blade-icons (+ blade-heroicons) | SVG-иконки как Blade-компоненты | По спекам студии — только SVG, не emoji |
| wire-elements/modal | Модалки для Livewire | |
| livewire/volt | Однофайловые Livewire-компоненты | Мелкая интерактивность без JS-сборки |