Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Favicon Laravel Package

beyondcode/laravel-favicon

Generate a complete set of favicons for your Laravel app from a single source image. The package provides an Artisan command and Blade helpers to create and reference favicon files, simplifying setup and keeping your markup clean.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for a commodity asset. Favicon generation is not a differentiator. This package is the "buy" answer: one high-resolution source image in, a full ICO/PNG/Apple-touch/WebManifest set out, plus the <link>/<meta> head markup rendered through a Blade directive. Building or hand-maintaining that set is design-tool busywork the team should not own, and a hand-rolled replacement is roughly a day of work — which is usefully also the cost of exit.
  • Rebrands and multi-brand surfaces. If a rebrand, white-label variant, or per-tenant theme is on the roadmap, this converts favicon output from a one-off design hand-off into a configurable, regenerable artifact. Change the source image, regenerate at deploy, ship. That lowers release friction anywhere you have more than one brand or environment.
  • Environment differentiation. The package's core premise — dynamic favicons driven by environment settings — gives you a cheap, visible signal separating staging, preview, and production without a second codebase or a second deployment. Low effort, immediate recognition win for QA and stakeholders reviewing previews.
  • Framework upgrade planning. Release 1.9.0 is a Laravel 13.x compatibility update from @laravel-shift: constraint widening, no new features, no deprecations, no breaking changes. Its value is that the dependency stays installable across a framework major instead of becoming a surprise blocker mid-upgrade. Treat it as installability evidence, not as evidence of an active feature roadmap.
  • Dependency inventory classification. The right call to record is that this is a convenience-tier dependency, not a strategic platform choice. That classification drives review cadence (re-check at each Laravel major) and blocks scope creep toward PWA icons, CDN asset delivery, or brand-asset management, which are separate solutions.
  • Recorded decision on build-vs-runtime and on Vite. The package references stable, unhashed public paths, which sits outside Vite's hashed-manifest model. That works, but "favicons are a build artifact referenced outside Vite" should be a written decision with an owner, not something a rebrand discovers.

When to Consider This Package

Consider it when:

  • You are on a recent Laravel major (11/12/13) and render server-side HTML. Integration is a Composer require, a published config, one source asset, and one Blade directive in the base layout — hours of effort, not sprints.
  • The blast radius is acceptable. The worst realistic outcome is a wrong or missing browser-tab icon, not lost revenue or a broken checkout. It is low-criticality and trivially reversible.
  • You want the favicon set to be a product-owned, regenerable artifact rather than a designer's export folder that drifts from the brand.
  • You can generate at build/deploy time. This is the single most important criterion. Running generation as a pipeline step removes per-request image decoding and disk writes and makes multi-instance deploys deterministic. On-request generation is self-inflicted scaling risk — every cache-cold request would decode an image and write to disk.
  • Your org tolerates a single-maintainer, no-SLA dependency where fork-and-patch or a one-day replacement is a credible fallback.

Look elsewhere when:

  • You need genuine brand-asset management — CDN delivery, a design-system asset library, full PWA icon sets with maskable icons and splash screens. Use a dedicated image pipeline; do not stretch this package into that role.
  • Your policy demands actively maintained dependencies with a feature cadence and security responsiveness. Activity here is dominated by automated compatibility PRs, with 375 stars, zero dependents, and MIT licensing — weak support depth by construction.
  • The asset build, hosting platform, or CMS already solves favicons and emits the icon tags. Adding a runtime dependency to a solved problem is pure overhead.
  • Infrastructure can't support it without extra work: containers without GD or Imagick fail at first generation, not at composer require — a late, runtime-surfacing failure; read-only or serverless filesystems break the public-path write unless generation moves to build time; and low memory_limit can exhaust on a large source image.
  • You're committed to Vite's hashed-manifest model and don't want unhashed public paths referenced outside it. Workable, but must be a conscious decision — and you must check the rendered head for duplicate <link rel="icon"> tags against framework or Vite defaults.

Preconditions to state explicitly in the runbook, not implicitly: an image driver (GD or Imagick) present in every environment including CI and the production image; write access to the output path, or generation moved into the deploy step; and one square, high-resolution source asset (not SVG — it fails at generation) kept outside the generated output directory.

How to Pitch It (Stakeholders)

For executives. This is a small, low-risk convenience utility, not a strategic platform decision. It turns one brand image into the complete favicon set and the markup that references it, so rebrands and new product surfaces stop being a design-to-developer hand-off. Release 1.9.0 adds Laravel 13 compatibility only — no new features, no migration work, no breaking changes, so there is nothing to schedule. Recommendation: adopt it where favicons aren't already solved, classify it as convenience-tier, and put a review line item on each Laravel major upgrade. The downside is bounded: cost of exit is trivial because the functionality is replaceable with a hand-rolled command in about a day.

For engineering. Idiomatic Laravel — service provider, publishable config, facade, Blade directive — with no schema, no queues, no external service, no event surface. Pin it with a caret constraint and start on 1.9.0, the only release claiming Laravel 13 support; starting on 1.8.0 manufactures a future upgrade for nothing. Three preconditions belong in the runbook: an image driver present in every environment including CI and the production image; write access to the output path, or generation moved to the deploy step; and a single high-resolution square source asset versioned outside the generated output. Before merging, review the 1.8.0→1.9.0 diff to confirm it is constraint-and-CI only, and confirm there's a CI matrix actually exercising Laravel 13 rather than a speculatively widened constraint. Wire the directive into the base layout only, and diff the rendered head for duplicate or conflicting icon tags against Vite or framework defaults. Add a CI assertion that the driver loads, the output path is writable, and the generated set ships inside the deploy artifact — that covers nearly every failure mode. The upgrade cliff to watch is intervention/image v2→v3, not Laravel. Don't extend this package toward PWA icons or asset management; if it ever becomes load-bearing for multi-tenant theming, that's a signal to re-platform, not to harden it.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package