Rig — это PHP-фреймворк для создания реактивных интерфейсов без использования Node.js, сборщиков фронтенда и написания отдельных API. Логика, состояние и шаблоны компонентов объединяются в одном PHP-файле, а браузер автоматически обновляет DOM при изменении данных.

Шаблоны компилируются в дерево AST, которое исполняется как на сервере, так и в браузере с помощью рантайма весом 21 КБ в gzip. Это обеспечивает идентичную работу выражений и типов данных. Серверное состояние передается между запросами в виде подписанных HMAC-SHA256 снимков.

Фреймворк предоставляет атрибуты для управления состоянием: #[Client] для данных в браузере, #[Computed] для вычисляемых свойств и #[Shared] для обмена данными между компонентами. Поддерживается ленивая загрузка данных через #[Lazy] и работа с событиями через SSE-соединение.

Инструмент rig dev автоматически разворачивает среду разработки, включая PostgreSQL, миграции, очередь задач и планировщик. Система поддерживает горячую замену кода (HMR), сохраняя состояние интерфейса при правках. Для работы требуется PHP 8.1 или новее.

В состав Rig входят встроенные механизмы для валидации, работы с файлами, отправки почты и фоновых очередей на файловой системе. Команда rig build выполняет предварительную компиляцию компонентов и проверку настроек перед выкладкой проекта на продакшен.