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

Technical Evaluation

Architecture fit. The most important finding for this assessment is a framing error that must be resolved before any engineering time is spent: kibatic/datagrid-bundle is a Symfony bundle, not a Laravel package. It depends on the Symfony kernel, bundle registration in bundles.php, the Symfony DI container, and typically Twig and Doctrine ORM/DBAL. None of that maps cleanly onto Laravel's service providers, Eloquent, and Blade. If the target application is Laravel, architectural fit is effectively zero and the correct decision is "no." If the target is a Symfony application, the fit is conventional and unremarkable — it plugs into the container and Twig pipeline like any other bundle. Everything downstream in this document assumes the Symfony case; the Laravel case terminates here.

Integration feasibility. Mechanically simple in the correct stack: composer require, Flex auto-registration or a manual bundle entry, a small YAML config tree, and per-resource grid classes. The real gate is Composer resolution against our pinned PHP, Symfony, Doctrine, and Twig versions. With 0 dependents there is no reference corpus — no blog posts, no example repos, no downstream codebases to validate assumptions against. We would be the most significant adopter of this package by a wide margin, which changes the risk profile from "dependency selection" to "de facto stewardship."

Technical risk. This is the dominant factor and it is high. The package has 14 stars, 0 dependents, and an opportunity score of ~27.7 — signals of a project with essentially no community gravity. Stewardship appears to be a single small consultancy (Kibatic), so bus factor is one. The reported last release of 2026-10-23 is future-dated, which is anomalous; it must be verified as a real tag versus a mistagged dev branch or metadata error before it is treated as a stability or activity signal. Test coverage and CI status are unknown and, based on the pattern of small bundles in this cohort, likely thin or absent. MIT licensing is the primary mitigation: legal risk is near zero and forking is trivially permitted.

Key questions.

  • Which Symfony and PHP versions are actually declared in composer.json, and does it resolve against our pinned versions without downgrading a core dependency?
  • Is this decision being made for a Symfony codebase at all, or has a Symfony bundle been mis-filed against a Laravel stack in the intake process?
  • Does the bundle hard-require Doctrine ORM, or is the data source abstracted? If hard-required, what is the integration cost given our persistence layer?
  • Who maintains it, what is the issue-response latency, and is there any commit activity between tagged releases?
  • What is the actual latest stable tag, and what is the provenance of the future-dated release?
  • Do any transitive dependencies carry open CVEs, and does our dependency-vetting gate accept single-maintainer, near-zero-adoption packages?
  • What is the query-building strategy — Doctrine Paginator, custom DQL, or raw SQL — since that determines our scaling ceiling?

Integration Approach

Stack fit. Viable only inside a Symfony application running Doctrine entities and Twig templates. For a Laravel codebase, reject outright. Do not attempt to bridge a Symfony bundle into Laravel's container; the shim cost will exceed the value of the grid by a wide margin. The one defensible Laravel path is treating this repo as a reference implementation — reading its grid/column/filter abstractions and reimplementing the roughly 200 lines we actually need against Eloquent and Blade. That is a design-input decision, not an adoption decision, and should be scoped as such.

Migration path. In Symfony, treat this as greenfield adoption rather than migration. There are no documented migration guides, no community examples, and no dependents to learn from, so we own the mapping of existing queries and templates onto the bundle's grid-definition API. If replacing an incumbent (omines/datatables-bundle, APYDataGridBundle, or hand-rolled repository-plus-Twig tables), run a side-by-side parity comparison rather than a cutover — the incumbent may well win on features and support even if this is cleaner to configure.

Compatibility. Gate the entire effort on a Composer resolution spike against our exact version matrix. If resolution fails, requires a core dependency downgrade, or requires us to pin a Symfony minor, stop — a 14-star package does not justify constraining the platform. Also confirm the bundle boots cleanly on our Symfony major and that its Twig templates render under our template configuration.

Sequencing.

  1. Confirm the stack. Establish whether the target service is Symfony or Laravel. If Laravel, close the evaluation and record the outcome; no further work.
  2. Resolution spike on an isolated branch: composer require, kernel boot, config load. Timebox to half a day.
  3. Single non-critical grid: one read-only listing over a low-risk entity, with two or three sortable columns and one text filter. Evaluate API ergonomics, template flexibility, and generated query behavior against the status quo.
  4. Go/no-go review with explicit criteria: feature parity, query performance, and — critically — whether we are configuring the bundle or patching it. Any patching is a fork signal.
  5. Adopt with intent: if adopted, pin exact versions, vendor the fork, document the fork-maintenance ownership, and wrap the bundle behind an internal DataGrid interface so replacement is a one-file swap.
  6. Shelve otherwise: capture findings in the decision record so the next team does not re-run this evaluation.

Operational Impact

Maintenance. Assume we will own this code. With 14 stars and no dependents, upstream has no incentive to prioritize our issues or to ship timely fixes for Symfony major-version breaks. The realistic posture is either a recurring fork-maintenance line item or a hard pin to a Symfony minor with re-evaluation at each major upgrade. MIT makes a private fork legally clean and operationally survivable, which is the strongest argument in the package's favor.

Support. No commercial support, no vendor SLA, no paid tier. Kibatic is a small consultancy, not a support organization. The escalation path is GitHub issues with an unknown response latency, and we are unlikely to be a priority customer given our negligible adoption footprint relative to their client work.

Scaling. Data grids are query-heavy by construction. Expect N+1 risks per row, large-OFFSET pagination degradation on deep pages, and sort/filter combinations that silently bypass indexes. The binding question is not package quality but query strategy — how the bundle composes queries against Doctrine. Load-test one representative grid with production-shaped data volumes before any production traffic. If it paginates in PHP rather than in SQL, that is a hard stop for anything beyond small tables.

Failure modes.

  • Abandonment: no releases, no security patches; a future Symfony major eventually blocks the upgrade path and forces either a fork or a rewrite under time pressure.
  • Silent breaking changes: small projects frequently ship breaking changes in patch or minor versions. Pin exact versions and read the diff before bumping.
  • Query performance cliffs: filters producing unbounded queries or unindexed sorts, discovered in production rather than in the spike.
  • Supply-chain surprise: the future-dated release warrants verifying tag provenance and release mechanics before trusting it.
  • Abstraction leakage: the grid class becomes load-bearing in controllers and templates, making the "swap it out" exit more expensive than estimated. The internal interface boundary is the mitigation, and it must be built in the spike, not deferred.

Ramp-up. The API surface is small and Symfony-fluent engineers should reach productivity in roughly one to two days, mostly spent reading source since documentation is thin. The onboarding cost is not the risk. The risk is the long-tail ownership of an under-adopted dependency, which is a permanent, low-grade tax on the team that adopts it — and the reason the ask should be framed as a bounded one-sprint spike with an explicit fork-or-revert expectation, not as a standardization initiative.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource