Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Datagrid Bundle Laravel Package

kibatic/datagrid-bundle

Kibatic DatagridBundle is a Symfony/PHP bundle for building reusable, configurable data grids from Doctrine queries or arrays. Define columns, filters, sorting, and pagination with minimal code, then render clean tables for admin, reporting, and data-heavy screens.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framework-level go/no-go, first and foremost. The scoring metadata calls this a "Laravel/PHP package," but the artifact is a Symfony bundle (description.md and the license header both say Symfony). For a Laravel codebase the only PM decision this supports is reject — no service provider, no config file, no facade, and a hard pull toward Symfony's DI container, Twig, and Doctrine. Do not let a generic "datagrid" name generate a false positive in a Laravel build-vs-buy review.

  • Back-office build vs. buy — but only on Symfony services. If the roadmap includes a Symfony admin/ops surface, this bundle reframes the recurring "sort, filter, paginate, export" work as one configurable component instead of per-screen bespoke code. That is a sprint-capacity decision: days-per-screen versus hours-per-screen, multiplied by however many list views are queued.

  • Server-rendered vs. JS data-table investment. Adopting a Twig-rendered grid is implicitly a decision not to stand up a React/Vue/TanStack table stack for internal screens. That trade-off belongs in the decision record, not buried in an implementation ticket — it constrains who can build admin screens and how they get maintained.

  • Saying "yes" cheaply to ops requests. Ops and support teams repeatedly ask for filtering, sorting, and consistent list behavior. A named, shared grid abstraction lets you answer those requests with a component rather than a negotiation. Without one, every request is a scoping exercise.

  • Standardization of internal tooling. If three or more teams are building admin listings, a shared grid definition (one class per resource, columns/filters/sort declared in one place) is a real consistency win — same interaction model everywhere, one place to fix a bug.

  • Dependency-risk posture. With 14 stars and 0 dependents, selecting this is a decision to be the project's most significant adopter. That is a legitimate risk-appetite call, but it must be made explicitly by someone accountable for maintenance, not silently by whoever writes the Composer line.

  • Use cases where it genuinely fits: internal ops dashboards, support tooling, reporting screens over Doctrine entities — low traffic, low design bar, tolerant users, Symfony/Twig stack already in place.

When to Consider This Package

Consider it when:

  • The codebase is Symfony (5/6/7) with Doctrine entities and Twig — the only viable context. Confirm before spending any further time.
  • There are three or more admin list screens with similar requirements. Below that threshold, hand-rolling is cheaper than any dependency, including a free one, because the integration seam and the ownership tail outweigh the feature savings.
  • Screens are internal-facing: employees, ops, support. Not customer-facing, not accessibility-critical, not high-traffic.
  • The team has limited front-end bandwidth and would rather configure columns in PHP than own a JS table stack.
  • You accept the exit cost. Budget either a recurring fork-maintenance line item or a pin-and-re-evaluate-at-each-major-upgrade line item. MIT licensing makes a private fork legally trivial and operationally survivable.
  • You can run a bounded evaluation first: one non-critical grid, one sprint, behind an internal interface, with a written go/no-go.

Look elsewhere when:

  • You're on Laravel. Full stop. Porting the concept (builder pattern plus renderer) is fine; depending on the bundle is not. Bridging a Symfony bundle into Laravel's container is strictly worse than writing the table yourself.
  • Tables are customer-facing, high-traffic, or accessibility-critical. A near-zero-adoption bundle is the wrong place to discover a keyboard-navigation edge case or a large-dataset performance cliff.
  • You need more than basic grid mechanics — inline editing, persisted per-user column layouts, virtualized scrolling, aggregate/footer rows. At that point you're extending a small library, and you'd be paying the maintenance tax without the leverage.
  • An incumbent front-end stack already exists (Livewire, Inertia, TanStack). Two ways to build the same table is a permanent tax.
  • Your organization applies a meaningful dependency-vetting gate. Single-maintainer, near-zero-adoption dependencies typically fail those gates, and fighting the process costs more than the package saves.
  • This is a long-lived, revenue-critical surface. Maintenance risk dominates feature fit.
  • The release metadata is unverifiable. The future-dated release timestamp is anomalous — if provenance can't be confirmed, treat it as a blocker rather than a detail for engineering to sort out later.

How to Pitch It (Stakeholders)

For executives — one paragraph: Across our internal admin tooling we repeatedly rebuild the same sorting, filtering, pagination, and export logic on every listing screen. A small MIT-licensed Symfony component could standardize that and shorten each screen's build. The financial case is modest and one-directional — the license is free and integration is measured in hours — but the strategic case is weak: the project has roughly 14 stars and no downstream users, so we would be its most significant adopter and would likely end up owning the code. The ask is therefore not "adopt this," but "fund a one-sprint evaluation on one non-critical screen, with an explicit expectation that we may fork it or revert to hand-rolled code." Low downside, bounded upside, cheaply reversible. Separately, note that this is a Symfony component: it is irrelevant to any Laravel service on our roadmap, and any scoring that filed it as a Laravel package is a metadata error worth correcting upstream.

For engineering — the summary: Symfony-native datagrid bundle: Doctrine plus Twig oriented, MIT, with recent releases but effectively no community gravity — 14 stars, 0 dependents, single-maintainer risk, no commercial support, and an anomalous future-dated release tag to verify before trusting it as a stability signal. Proposal: spike it behind an internal DataGrid interface on one admin screen, gated on a Composer resolution check against our pinned PHP/Symfony/Doctrine/Twig versions. If resolution fails or requires downgrading a core dependency, stop. If the abstraction holds, we get consistent list views across back-office tooling and a one-file swap if we ever need to replace it. If it doesn't hold — or if we find ourselves patching the bundle rather than configuring it — we vendor the useful parts under MIT and move on. Either way, the interface boundary is the deliverable; the package is incidental. Load-test a representative grid before any production traffic: query construction (N+1s, large OFFSET pagination, unindexed sorts) is the real risk regardless of package quality. On Laravel services, do not attempt this — reimplement the ~200 lines of needed behavior in Eloquent and Blade instead.

What not to say: don't frame this as a strategic platform choice or a standardization initiative. It does not survive that level of scrutiny, and it doesn't need to.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings