Laravel Breadcrumbs

Define named, parent-linked breadcrumb trails once and render them anywhere with built-in Bootstrap, Tailwind, and JSON-LD templates.

Library
Composer
vv10.1.0
978stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
58/100Fair
Development Activity44
Maintenance28
Community60
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
75/100Good
Architecture74
Code Quality78
Innovation62
Learning Curve85

Laravel Breadcrumbs is the official community-maintained fork of Dave James Miller’s original package, giving Laravel applications a simple, closure-based way to define breadcrumb trails. Instead of building navigation markup by hand on every view, you register named breadcrumbs — with optional parent links and dynamic parameters like an Eloquent model — in a single routes/breadcrumbs.php file, then render the resulting trail with one Blade call.

The package ships with ready-made templates for Bootstrap 4/5, Bulma, Foundation 6, Materialize, Tailwind CSS, UIkit, and JSON-LD structured data for SEO-friendly breadcrumb rich snippets, and supports fully custom Blade templates when the built-ins don’t fit. It tracks Laravel’s own release cycle, with a documented compatibility chart mapping each package major version to the Laravel versions it supports.

What You Get

  • A Breadcrumbs::for() API for defining named, parent-linked breadcrumb trails in a single routes file
  • Built-in render templates for Bootstrap 4/5, Bulma, Foundation 6, Materialize, Tailwind CSS, and UIkit
  • A JSON-LD structured-data template for SEO breadcrumb rich snippets in search results
  • Support for dynamic breadcrumbs parameterized by Eloquent models or other runtime data
  • Route-bound breadcrumbs that automatically link breadcrumb names to Laravel route names
  • A publishable config and view set for full customization of markup and behavior

Common Use Cases

  • Adding a consistent breadcrumb trail across every page of a Laravel admin panel or content site
  • Generating SEO-friendly breadcrumb rich snippets via the JSON-LD template without extra markup work
  • Building nested category or hierarchical navigation (e.g. e-commerce category trees) from Eloquent relationships
  • Styling breadcrumbs to match an existing Bootstrap, Tailwind, or Bulma design system with zero custom CSS

Under The Hood

Architecture: The package registers a ServiceProvider (src/ServiceProvider.php) that binds a Manager singleton, which loads closures defined in routes/breadcrumbs.php and resolves parent chains recursively through Generator.php when Breadcrumbs::render() or ::generate() is called; the Breadcrumbs facade (src/Breadcrumbs.php) is the primary developer-facing entry point that proxies to this manager. Views are resolved through Laravel’s standard view resolution, so swapping the configured view key changes rendering without touching application code.

Tech Stack: It’s a pure PHP/Blade package (~2,750 lines) with no dependencies beyond the Laravel framework itself, following the standard Composer package + Laravel service-provider auto-discovery pattern, and maintains an explicit Laravel-version compatibility matrix (currently Laravel 10.x–13.x map to package v10.x).

Code Quality: Testing is thorough for the package’s size, with 18 dedicated test files (tests/) covering custom managers/generators, recursion, route binding, deferred and multi-file breadcrumb loading, template rendering, and even a test that exercises the README’s own code samples (ReadmeTest.php). CI runs via GitHub Actions on each push, and the README documents a clear deprecation/compatibility policy tied to Laravel’s release cadence.

API Design: The closure-based Breadcrumbs::for('name', fn ($trail, ...$params) => ...) API mirrors Laravel’s own route-definition style, so the learning curve for existing Laravel developers is minimal — defining a breadcrumb and rendering it takes two lines of code, and switching the visual template is a one-line config change.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search