victoire/sitemap-widget
victoire/sitemap-widget is a Laravel/PHP package for adding a sitemap widget to your application. It helps generate and display sitemap links, making site structure easier for users and search engines to discover.
Package classification is wrong for the stated stack. Despite being catalogued as a "Laravel/PHP package," victoire/sitemap-widget is a Symfony bundle (Victoire\WidgetSitemapBundle) built for the Victoire CMS — a French, widget-based page-builder CMS running on Symfony. It is not installable into a Laravel application and provides no Laravel service provider, facade, config publishing, or Artisan surface. This is the single most important finding in the evaluation and should stop any assumption that it is a drop-in Laravel dependency.
Architecture fit: poor outside Victoire, plausible only inside it. The bundle registers a page-builder widget — an editor-droppable block that renders a sitemap of the site's pages into a Twig template. Its value is entirely derived from the Victoire widget registry, the Victoire page/tree model, and Victoire's rendering pipeline. It has no standalone domain logic worth extracting. Outside a Victoire install, the reusable surface is essentially one Twig template and a small query over a page tree — roughly a day of reimplementation.
Integration feasibility: low. Composer install would pull Victoire core packages; the bundle expects Victoire's bundle registration order, its widget annotation/discovery conventions, and the Victoire admin UI to configure it. There is no documented standalone mode. With 2 stars, 0 dependents, and a last release of 2019-08-09, there is no evidence of an active consumer base to validate any integration path.
Technical risk: high and largely unmitigable.
symfony/*, doctrine/*, twig/twig) will conflict with a modern root composer.json and may pin the whole application to EOL components.sitemap.xml generator. If the actual requirement is SEO sitemap generation, this package is the wrong artifact entirely.Key questions for the requester:
Recommendation: reject for new work. Treat as legacy-context-only. If a Victoire install already depends on it, it is a maintenance liability to be scoped for replacement, not a component to build on.
Stack fit. For a Laravel codebase: no fit. There is no adapter layer worth writing — a Symfony bundle's widget registration has no meaningful mapping onto Laravel's service container or Blade. Do not attempt a bridge. For a Symfony codebase without Victoire: no fit either, because the widget is meaningless without the Victoire builder. Only a Victoire CMS install is a viable host.
Recommended replacement paths, by actual need:
spatie/laravel-sitemap) or Symfony equivalent (presta/sitemap-bundle, dteoh/sitemap-bundle), or generate from the route table in a scheduled job. ~1–2 days.Migration path (if a Victoire install already has it). Inventory first: confirm whether the bundle is declared in composer.json directly or pulled transitively; grep templates for the widget's render block; identify which pages embed the widget. Then replace behind a feature flag: build the equivalent Twig partial against the same page-tree query, swap the widget slot for a static include or a lightweight custom widget, verify output parity, then remove the dependency and run composer why/composer update --dry-run to confirm the transitive constraint set relaxes.
Compatibility checklist before any code is written. Pin and verify: PHP version floor in composer.json, Symfony constraint, Twig constraint, Doctrine ORM/DBAL constraint, and whether the bundle uses annotations vs attributes for widget discovery. Run composer require --dry-run in a branch against the actual root project — a constraint conflict here is a fast, cheap kill signal and should gate the whole evaluation.
Sequencing.
Maintenance. Effectively unowned upstream. A 2019 release with 2 stars means no expectation of security patches, Symfony compatibility fixes, or PHP 8.x support. Adopting it transfers full maintenance to the adopting team: they inherit a vendored bundle they must fork to keep alive. Budget for a fork-and-own arrangement or plan removal — there is no third option.
Support. No vendor, no commercial backing, no meaningful issue-tracker throughput. Internal engineers will be the only support channel. Onboarding docs are likely thin and in the original author's French-language context (Victoire's ecosystem is French-origin), which adds a small but real ramp cost for English-only teams.
Scaling characteristics. The widget renders a page tree on each render — fine for sites with tens or low hundreds of pages, problematic for large content sets, especially uncached in an admin-preview context. Verify whether the page-tree query is cached and whether it respects publication status, locale, and access restrictions. Multi-site and multi-locale behaviour is unverified and a likely source of bugs.
Failure modes to watch.
Ramp-up. For a team without Victoire experience: high relative to value. Understanding the widget registry, the page model, and the Twig rendering conventions is days of effort for a component that produces a link list. For a team already on Victoire: low — the widget is a familiar pattern. Ramp cost is entirely a function of existing Victoire fluency, which should be confirmed before any estimate is committed.
Bottom line for the roadmap. Score 0.23 and the evidence behind it are consistent: abandoned, unmaintained, single-ecosystem, zero adoption. Fund a native implementation (likely 1–2 engineering days) rather than an integration, and record the rejection so it is not re-evaluated next quarter.
How can I help you explore Laravel packages today?