orchid/crud
Orchid CRUD is a screen-based toolkit for building admin panels and CRUD interfaces in Laravel. Define screens, fields, and layouts in PHP to create customizable back-office apps with forms, filters, sorting, and actions, all within your Laravel codebase.
orchid/crud is not a standalone CRUD library — it is the screen-generation layer of Laravel Orchid (screens, layouts, fields, columns, filters, actions). The decision it actually informs is "do we make Orchid our admin platform?" Once that is yes, this package is the cheap marginal add-on that turns each new entity into a declarative screen instead of a hand-built controller/view pair. Evaluated alone, it is not a decidable question.orchid/platform itself supports Laravel 12 before committing a date, because CRUD cannot outrun its host.hide method lets teams declaratively gate action visibility per role or record state — hiding "Refund," "Approve," or "Impersonate" from users who shouldn't see them. Useful evidence in security reviews and reduces hand-maintained screen logic. PM caveat: hiding is not authorizing. The server-side permission check must still exist; hide is UX and information-disclosure hygiene, not the control.displayInNavigation null-user fix changes behavior for menus rendered without an authenticated user — relevant wherever tenant-scoped navigation, guest-reachable admin routes, or staff impersonation exist. Owners of those flows should be told it shipped and re-verify them.Consider it when:
Look elsewhere when:
Due diligence before committing: confirm which Orchid Platform version pairs with CRUD 4.4.0 and that that version supports Laravel 12; re-test guest, tenant-scoped, and impersonated navigation; pilot hide on one screen to confirm it composes with existing permission gating rather than conflicting (it is opt-in — no migration, no behavior change until adopted, so it can safely defer past the upgrade window); and explicitly record the alternative you are declining and why.
For executives: This is a maintenance release of the open-source admin layer behind our internal tools — no license cost, no breaking change, no new operational burden. Two things matter commercially. First, Laravel 12 support clears a dependency that was blocking a framework upgrade, keeping us on a supported runtime for security patching. Second, it gives us a clean, declarative way to hide sensitive admin actions from users who shouldn't see them, lowering the cost of meeting least-privilege expectations. The risk profile is unchanged and worth stating plainly: community-maintained, small contributor base, no commercial SLA, and a package with essentially no downstream dependents — so we would be an early, self-supporting consumer. Our real exposure is expertise concentration: a handful of engineers understand the screen/layout/field layer. Mitigate with a named owner, internal pattern documentation, pinned and version-locked dependencies, and an admin smoke test. That is a staffing and documentation task, not a reason to change direction.
For engineering: 4.4.0 is a minor, non-breaking release from 4.3.0 with three changes — an opt-in hide method for conditional action visibility (existing screens behave identically), a fix for request()->user() being null in displayInNavigation (this one does change behavior on guest, tenant-scoped, and impersonated navigation — for the better, but test it), and Laravel 12 compatibility. Upgrade is a composer bump plus a smoke test; no deprecations, no config changes, no migrations. Before committing to Laravel 12, verify Orchid Platform itself supports it. Then pilot hide on a single screen, confirm it interacts correctly with existing permission gating, and roll out incrementally. If we are migrating from bespoke Blade/Livewire admin rather than from Orchid 4.3.x, scope that as re-platforming, not a library swap — screen-by-screen reimplementation plus an explicit mapping from our authorization model onto Orchid permissions, with per-screen acceptance criteria. Keep Orchid and CRUD version-locked, review both on Laravel's annual cycle, and make sure at least two engineers can work in the screen abstractions.
How can I help you explore Laravel packages today?