lampager/lampager-laravel
Laravel integration for Lampager, adding efficient cursor-based (seek) pagination to Eloquent and the query builder. Paginate large datasets with stable, reversible ordering and a simple API, avoiding offset performance issues in Laravel apps.
OFFSET paging or cursor paging. This matters for feeds, activity streams, search results, and any list that must stay stable while rows are inserted or deleted.OFFSET N performance cliff on large tables, so adopting it is a scalability decision, not just a UI one.Consider it when:
Look elsewhere when:
paginate()/cursorPaginate() already covers simple cases.Note that v0.6.1 is a maintenance and compatibility release: it contains no new features, no breaking changes, and no deprecations. Its significance is support-matrix signaling (PHP 8.5, Laravel 11+ tests, Laravel 13 docs, Laravel 14 allowed), which reduces upgrade risk but does not change the product fit.
For executives (one paragraph): Lampager is a small, focused library that makes list-based features — feeds, search results, activity logs — load reliably and cheaply at scale. It replaces custom pagination code we would otherwise write and maintain ourselves, and the new release shows the maintainer is keeping pace with PHP 8.5 and Laravel 11 through 14, which lowers the risk of it blocking a future framework upgrade. It is a pre-1.0, single-maintainer open-source dependency, so the decision is low-cost to adopt and low-cost to reverse, but it should not be treated as vendor-supported infrastructure.
For engineering: Adopt via Composer; it integrates with existing query builders rather than replacing them. v0.6.1 is a compatibility-only release — PHP 8.5 support, ResourceTest fixes for Laravel 11+, Laravel 13 documentation, and a permissive Laravel 14 constraint — with no API changes, so upgrading from v0.6.0 carries no migration work. Where requirements are simple (single-direction, page-numbered lists), prefer Laravel's native pagination and skip the dependency; where ordering is complex or bidirectional cursors are required, this package removes a meaningful amount of hand-written edge-case handling.
How can I help you explore Laravel packages today?