catchadmin/plugin
Plugin manager for the CatchAdmin admin framework built on Laravel, providing a modular system to package, install, enable, and remove admin extensions. Handles plugin discovery, configuration, and lifecycle hooks so custom backend features can be added or dropped without touching core code.
Architecture fit. catchadmin/plugin is not a general-purpose Laravel plugin system — it is a component of the CatchAdmin administration framework and inherits its assumptions: a modules/ style directory layout, a service-provider/module registration contract, admin-UI menu and permission seeding, and migration hooks tied to CatchAdmin's auth model. For teams already running CatchAdmin it slots in as a first-class capability. For any other Laravel application the fit is close to zero: the plugin lifecycle, metadata schema, and admin surface would all need to be re-implemented, at which point you are not really integrating this package.
Integration feasibility. Composer-installable and MIT-licensed, which removes legal friction. Everything else is unverified. With zero stars, zero dependents, and no downstream consumers, there is no external evidence of it working in any environment but the author's. There is no community signal on version compatibility with current Laravel or CatchAdmin releases, no issue history to mine for known breakages, and no indication of CI. Treat the first two days as a source audit, not an install.
Technical risk. The risk profile is dominated by what the package is designed to do: accept plugin artifacts, unpack them, write into the application tree, run migrations, and execute third-party PHP. That concentrates several high-severity exposures in one place — path traversal during archive extraction, arbitrary code execution by design, supply-chain trust in whatever registry or URL it fetches from, and schema mutation against a live database. Absent signed artifacts, hash pinning, or a staging gate, this is an internal-tools-only dependency, never internet-facing.
Key questions. Does it resolve plugins from Packagist, a private registry, or an arbitrary URL? Is the install endpoint authorized beyond generic admin auth, and is it CSRF- and upload-validated? What is the supported matrix (PHP, Laravel, CatchAdmin core)? Does a failed install roll back files, autoload, and migrations, or leave the app half-mutated? Is there any signature or checksum verification? Does it have tests, and what does the release cadence look like relative to CatchAdmin core?
Stack fit. Only sensible inside a CatchAdmin deployment on a Laravel version the package actually declares. The admin surface should be restricted to a super-admin role and, ideally, to non-production environments — plugin installation is a deploy-time operation, not a runtime one.
Migration path. Do not take this as an unpinned transitive dependency. Fork it, review the install/uninstall paths line by line, pin to a specific commit, and consume your fork via a VCS repository entry. If you are not on CatchAdmin, do not port it — read it as a reference implementation for the lifecycle pattern and build a narrower version scoped to your own module contract.
Compatibility. Confirm PHP and Laravel constraints against your runtime, verify how it registers service providers and whether it depends on Composer's package discovery or a manual registry, and check that cache/route/config clearing happens after install. Version-lock it alongside CatchAdmin core so a core bump forces a re-review.
Sequencing. (1) Source audit and fork. (2) Pin and vendor. (3) Stand up a disposable staging instance with a real database snapshot. (4) Exercise install, upgrade, uninstall, and a deliberately broken plugin. (5) Put the admin route behind a feature flag and role gate. (6) If you need it in production, front it with an internal mirror of approved artifacts rather than live fetching.
Maintenance. You will own this. Low stars and no dependents mean upstream is effectively a single maintainer, and your fork becomes the supported line. Budget recurring effort for security patches to the extraction and execution paths, which are exactly the code you least want to fall behind on.
Support. Expect Chinese-language documentation and issue responses on the maintainer's cadence. There is no vendor SLA and no community to escalate to. Internal runbooks are mandatory, not optional.
Scaling. Throughput is a non-issue — installs are rare, human-triggered events. The scaling concern is state consistency: plugin enablement lives in both the filesystem and the database, so multi-node deployments need shared storage or a strict "install on one node, deploy everywhere" discipline, plus coordinated cache invalidation.
Failure modes. Partial installs leaving autoload or migration state inconsistent; stale caches after activation; mid-migration failures against production data; disk exhaustion from archive extraction; privilege escalation if a low-privilege admin can reach the install route; supply-chain compromise via a tampered artifact. The uninstall path is usually the least-tested and should get equal scrutiny.
Ramp-up. Near-zero for a team already fluent in CatchAdmin — the concepts map directly onto the framework's module model. For everyone else it is a multi-day read of unfamiliar internals with little documentation to lean on, and the honest recommendation for a non-CatchAdmin stack is to skip the dependency entirely.
How can I help you explore Laravel packages today?