catchadmin/core
CatchAdmin Core is the foundation package for the CatchAdmin Laravel admin framework, supplying shared utilities, base classes, and infrastructure for building backend management systems. It supports rapid CRUD scaffolding and permission handling, though community adoption remains limited.
catchadmin/core sits at the center of CatchAdmin, a batteries-included Laravel admin framework: RBAC, menus, module registration, base controller/model classes, SQL-to-CRUD codegen, import/export, and upload components. The buy decision is not "should we add a library" but "should we adopt an admin framework and its conventions." Choosing it commits the product to Laravel 10/11 + PHP 8.3+ on the backend and Vue 3 + Element Plus on the frontend.CREATE TABLE → backend module, routes, menu entry, Vue list/dialog form) compresses new-entity delivery from days to hours for standard back-office resources. That changes how you sequence a roadmap: breadth of admin surfaces (orders, catalogs, users, reports) becomes cheap; bespoke UX and complex workflows remain expensive.modules/{ModuleName}/ with Installer.php, a service provider, and routes/route.php gives a clean vertical-slice unit. Roadmaps can be organized and shipped as independently installable modules (php artisan catch:module:install --all), which supports phased rollouts, per-tenant module enablement, and pricing/packaging tiers if the product is sold.1 with 1 = Enabled / 2 = Disabled, creator_id tracking, $dataRange for data-permission filtering — get baked into schemas and reports. Decide early whether those semantics match your product's audit, timezone, and multi-tenancy requirements; changing them later is a migration project.AsyncTaskInterface, $importMaxNum caps, template/history support) and export (sync and async, wired to catch-table's exports prop) are pre-built. This supports roadmap items like bulk onboarding, data migration for new customers, and scheduled reporting without separate build work — or lets you explicitly defer them.Consider it when:
CatchController / CatchModel, module layout, Route::adminResource, //next markers) across the codebase, including for engineers who join later.Look elsewhere when:
catchadmin/core presumes its module layout, base classes, and frontend composables. Retrofitting it into an existing Laravel app with its own structure is high-friction and hard to reverse.web, specific tool versions, .env-driven DB config, and catch:module:install. Fine for greenfield, awkward inside an existing monorepo or CI-controlled provisioning.For executives — one paragraph: CatchAdmin Core is a free (MIT) accelerator for building internal admin and back-office software on Laravel. Its value is speed: a new data-management screen that would typically take a sprint can be generated from a database table in hours, and features we would otherwise build — user permissions, menus, bulk import/export, file uploads — come included. The cost is low in license fees but real in two areas: it locks us to a specific technical stack, and it is an early-stage project with a very small community and a single maintainer, last updated in September 2024. Recommendation: pilot it on one internal module with a defined exit path, not an org-wide standard. Budget for the possibility that we maintain a fork ourselves.
For engineering leads:
This is an opinionated framework, not a utility package. Adopting it means declare(strict_types=1) everywhere, thin controllers extending Catch\Base\CatchController, models extending Catch\Base\CatchModel with $table/$fillable/$fields/$form/$searchable/$dataRange, Route::adminResource for CRUD, Unix-integer timestamps and soft-delete columns, status enums starting at 1, and a Vue side built on catch-table, useCreate/useShow, and inject('closeDialog'). Upside: strong conventions, SQL-to-CRUD generation, module isolation, and pre-built import/export/upload. Downside: convention lock-in, thin community support (5 stars, 0 dependents), and no recent releases — so we own upgrade and security triage. Mitigations: pin the version, keep domain logic out of framework base classes, and isolate the framework seam behind our own services so a fork or replacement stays cheap.
Ask and success criteria for the pilot: One module, one quarter. Success = a production admin resource shipped, measured against a hand-built baseline for hours-to-first-screen and defect rate; plus a documented answer on fork ownership and an upgrade path. Failure = either the conventions fight our domain model, or the maintenance burden exceeds the velocity gained. Decide the wider rollout on that evidence, not on the framework's feature list.
How can I help you explore Laravel packages today?