puli/manager
Puli Manager provides the command-line tools for Puli, a PHP resource management system. It lets you initialize and configure repositories, map package resources, publish assets, and inspect resource paths across Composer packages.
Architecture fit
puli/manager is not a Laravel package. It is a framework-agnostic Composer library that owns read/write access to a project's puli.json manifest and the associated .puli/ metadata store. There is no service provider, facade, config publisher, or Artisan command — Laravel fit is zero without bespoke glue.puli/repository (the on-disk key-value metadata store) and puli/cli / puli/discovery. Its job is validating, mutating, and persisting path-mappings and package bindings. That is a narrow configuration-management concern, not an application runtime concern./@vendor/package/resource URLs across package boundaries — is now addressed by Symfony Flex recipes, Composer 2's bin/extra conventions, and Laravel's own Vite manifest plus asset()/resource_path() helpers. The abstraction is obsolete relative to our stack.Integration feasibility
composer require puli/manager), but the transitive graph is a graveyard: webmozart/json, webmozart/key-value-store, puli/discovery, puli/repository are all archived. Composer will resolve, then pin us to PHP 5.x/7.x-era constraints.--ignore-platform-req suppression, which is disqualifying for production.Technical risk
puli.json write can desync the manifest from the .puli/ store with no recovery path.Key questions
puli/* transitively?config/ entries) sufficient, or does runtime resolution occur per-request?Stack fit
puli/symfony-bridge is a DI/templating integration for Symfony and does not transfer.Migration path
path-mapping and binding in puli.json, plus all call sites resolving Puli resource URLs.config/view.php paths, filesystem disk, or public_path().puli/* from composer.json, regenerate autoloads, delete .puli/.Compatibility
Sequencing
Maintenance
Support
Scaling
Failure modes
puli.json and .puli/.composer install when unrelated packages modernize.Ramp-up
/app/views/foo.html, /@vendor/pkg/...) is non-obvious and there is no current documentation to learn from. Expect 2–3 days per engineer for conceptual fluency, with high knowledge-loss risk since nothing can be Googled. Prefer to keep the blast radius small: one or two engineers own the migration, and nobody learns Puli beyond what is needed to remove it.How can I help you explore Laravel packages today?