libriciel/sf-breadcrumbs
libriciel/sf-breadcrumbs is a lightweight breadcrumb package for PHP applications, offering a simple API to define, manage, and render navigational trails with minimal configuration. It helps keep page hierarchy clear and site navigation consistent across views.
{label, url} items from the current route or menu tree, render a semantic <nav> with the terminal crumb as plain text, and optionally emit JSON-LD BreadcrumbList for SEO. That is hours of work for a first-party helper or Blade component, not a sprint. Adopting a dependency here buys almost nothing because the problem is small and fully bounded.libriciel/sf-breadcrumbs is a Symfony bundle: bundle registration, Symfony DI container and compiler passes, Twig templating, Symfony routing and RequestStack. Laravel has no bundle concept and uses Blade, its own router, and its own middleware pipeline. A successful composer require would not mean a working integration — a common false positive, since Laravel pulls individual symfony/* components but will never boot a Symfony bundle.Adopt only if all of the following hold:
Look elsewhere (or build in-house) if:
Bottom line: a very low-signal, single-purpose, copyleft package in the wrong ecosystem. The correct PM call is to treat it as a reference implementation — read it for the resolver contract and edge cases — then build the small thing ourselves.
For executives (one paragraph): We evaluated an open-source breadcrumb bundle for our navigation work. Recommendation: do not adopt. It is a Symfony-only component with zero adoption and no dependent projects, and it carries an AGPL-3.0 license that would impose strong copyleft obligations on anything we ship — a legal and strategic risk for a feature that costs us only a few engineering hours to build ourselves. There is no purchase cost, no vendor lock-in, and no roadmap impact to declining it. Action: close out the evaluation and add "breadcrumbs" to the backlog as a minor UI task.
For engineering (summary):
BreadcrumbList JSON-LD. Estimate in hours, not sprints; a first-party port is roughly 200–400 lines with a handful of tests.<x-breadcrumbs> Blade component rendering <nav aria-label="Breadcrumb"> with aria-current="page" on the terminal crumb, and a separate opt-in JSON-LD emitter. Wire it into the layout layer so new screens inherit it automatically.How can I help you explore Laravel packages today?