log1x/crumb
Crumb is a lightweight breadcrumbs package for Laravel. Define navigation trails with a simple fluent API and render them through a Blade component, with straightforward options for customizing markup, separators, and styling to match any theme.
Architecture fit. log1x/crumb is a thin Laravel package that does one thing: collect breadcrumb nodes, then render them through a Blade-friendly layer. It ships a service provider (auto-discovered), a facade/helper surface, a small config file, and a Blade rendering path. That is a deliberately narrow footprint — no models, no migrations, no queue, no external services. Architecturally it slots in as a presentation utility, not infrastructure. The one important framing correction for planning: despite being described as a "Laravel package," its real target host is a Roots Sage theme running Acorn (WordPress), so "integration" means Composer in a theme, not laravel new. A TPM should scope this as a Sage/Acorn dependency with a Laravel-shaped API, and budget engineering time against Acorn familiarity rather than Laravel familiarity.
Integration feasibility. High. The work is: composer require log1x/crumb in the theme, confirm Acorn boots the provider, optionally publish config through Acorn's console, then wire crumbs into Blade views. There is no data layer to design and no backfill. Realistic effort for a team already on Sage: hours, not days. The only genuinely variable cost is where the breadcrumb definitions live — if trails must be derived from WordPress taxonomy/CPT hierarchy, that logic is yours to write and is the bulk of the effort, not the package.
Technical risk. Technically low, strategically moderate:
Key questions for the team.
Stack fit. Sage 10/11 theme + Acorn + Blade + PHP 8.x. It is a good fit if and only if the theme is already Acorn-based; introducing Acorn purely to get breadcrumbs is not justified. Treat it as a leaf dependency: it must not become a place where business logic accumulates.
Migration path. Assume we are coming from hardcoded breadcrumbs in templates or a WordPress SEO plugin's trail. Sequence the migration so the definition of trails is separated from the rendering:
is_singular(), is_tax(), CPT registration) in a thin adapter layer, not scattered across Blade files.Compatibility. Pin deliberately: ^1.1 with the lock file committed, and constrain Acorn and this package together so a routine composer update cannot silently change our compatibility story. Run a CI matrix against Acorn 3.x and 4.x if both are supported anywhere in the estate; that is the cheapest early warning for the next dependency chore. Use composer why-not roots/acorn 4.* as the first diagnostic when an upgrade "doesn't take."
Sequencing.
config(), document each toggle we depend on.Maintenance. Runtime maintenance is effectively zero — no cron, no storage, no network calls. The carrying cost is dependency maintenance and attention: someone must watch upstream, and the realistic outcome is that we eventually absorb the package into our codebase. Decide the fork trigger in advance (e.g., an Acorn major ships and upstream is silent for two quarters) so the decision is cheap and pre-approved rather than a scramble.
Support. MIT, community-only, no vendor, no SLA, single maintainer. That is acceptable for a presentation utility and unacceptable for anything a revenue path depends on. Require a named internal owner and a documented fallback. Do not let it become load-bearing for SEO-critical navigation without that owner.
Scaling. Non-issue on the rendering side; breadcrumb assembly is string work and Blade output. The real scaling concern is freshness, not throughput: on a CMS-driven site, trails derived from content hierarchy go stale when posts move, taxonomies change, or permalinks are edited. If we cache rendered trails, we own invalidation hooks on save/delete/term-change. Budget for that explicitly — it is the most common source of "the breadcrumbs are wrong" tickets, and it is our code, not the package's.
Failure modes to design against.
Ramp-up. A Laravel-fluent developer needs a few hours to be productive and about a day to be safe inside Acorn's console and bootstrapping differences. The learning cost is almost entirely Sage/Acorn context, not this package. Plan onboarding around the theme's Acorn entry point, and write down the debugging order once — confirm Acorn version, confirm package version, confirm provider registered, confirm config loaded — so every future engineer does not rediscover it.
TPM recommendation. Adopt only as a small, isolated convenience inside an existing Sage/Acorn theme, behind an internal builder interface, pinned and lock-committed, with a named owner and a pre-agreed fork/exit trigger. Do not adopt it to justify introducing Acorn, and do not treat the 2023 chore release as active maintenance. If the team has no Acorn footprint, build the ~150-line equivalent instead — it is cheaper than owning this dependency's future.
How can I help you explore Laravel packages today?