sheikhheera/requent
Requent is a Laravel package for building recurring events and schedules. Define recurrence rules once, then generate upcoming occurrences, check whether a given date matches, and integrate seamlessly with Eloquent models and your existing application.
Architecture fit. Requent sits at the HTTP-to-Eloquent boundary and replaces hand-written controller/query code with a declarative, client-supplied request schema (field selection, relations, filters, transformations). That is a deliberate architectural bet on client-driven querying. It fits a narrow case: a legacy Laravel 5.x application with a large, growing surface of read endpoints, where clients want field selection but a full GraphQL adoption is too heavy. For a greenfield or modern stack, it is a layer you would rather not own — the same capability is available from maintained packages with an active security posture.
Integration feasibility. Composer installation is trivial in principle and near-certain to fail in practice on current stacks. The last release (2017-06-26) predates Laravel 5.6, so its illuminate/* constraints will not resolve against Laravel 8/9/10/11 (PHP 8.1+, Symfony 6). Feasibility without a fork: low. With a maintained fork and a compatibility pass: moderate, but you are now the maintainer of a query engine.
Technical risk: high.
Key questions.
spatie/laravel-query-builder, or plain API Resources with sparse fieldsets an acceptable substitute? In most cases it is, and it is maintained.Assessment: conditional no-go absent a legacy constraint. The 0.57 score is consistent with the evidence — usable idea, unmaintained artifact.
Stack fit.
composer require.Migration path and alternatives. Run a short bake-off before committing:
spatie/laravel-query-builder — filters, sorts, includes, maintained, explicit allowlists; closest drop-in for the "declarative query" need with a safer default posture.If Requent is chosen, isolate it behind an adapter/facade (a single "query gateway" interface) so the engine can be replaced without touching controllers or clients. That inversion is the main thing that makes the decision reversible.
Compatibility work. Pin an exact version and commit the lockfile. Audit composer.json constraints against the target Laravel version. Stand up the app on a pinned PHP 7.4 container image with a documented end-of-life exception. Because upstream ships no releases, dependency scanners will not surface fixes — add it to the manual patch register.
Sequencing.
Maintenance. Ownership transfers to your team the day it is merged. Expect to maintain a fork, carry PHP and Laravel upgrade work, and patch security issues without upstream. Budget this as an ongoing line item, not a one-time integration cost.
Support. No vendor, no maintained documentation, no release notes, and a community too small (0 dependents) for reliable answers. Troubleshooting means reading the package source. This is acceptable for a small, stable, well-understood codebase and unacceptable for a business-critical path without a named owner.
Scaling. The package generates queries dynamically, so cost is a function of client input, not code review. Expect N+1 patterns, missing-index scans, and expensive relation joins under real traffic. Mitigations are mandatory, not optional: allowlisted fields and relations, maximum depth and relation count, hard page-size caps, per-request query budgets, and APM instrumentation on generated SQL. Scaling the PHP tier does not fix a database being hammered by unbounded queries.
Failure modes.
Ramp-up. The codebase is small; a mid-level Laravel engineer can become productive in a few days and fluent in one to two weeks. The real cost is the missing specification: behavior must be reverse-engineered from source and encoded in adapter contract tests and an onboarding note. Plan for that documentation effort explicitly, and keep at least two engineers familiar with the query gateway so the knowledge does not concentrate in one person.
How can I help you explore Laravel packages today?