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

Nova Fontawesome Laravel Package

marshmallow/nova-fontawesome

marshmallow/nova-fontawesome adds a searchable Font Awesome icon picker field to Laravel Nova. Let editors choose icons visually, store the selected class on your model, and render icons consistently across your admin resources. Lightweight and easy to install.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for an admin affordance. A searchable icon picker reads as a one-hour task and is not: icon search, live preview, empty/null handling, class-string validation, Vue asset packaging, and ongoing maintenance of a Nova field component. This package compresses that into a single Composer require. The buy case scales with the number of admin surfaces that need an icon — reuse cost approaches zero, while a custom field's cost repeats per resource.

  • Who owns iconography. Adopting the field is a decision to move icon selection off the engineering backlog and into marketing, ops, and support hands. Frame it as support-load reduction — a recurring stream of "can you swap this icon" tickets becomes self-serve configuration — not as a cosmetic nicety. If you cannot quantify that ticket volume, get a rough count from support before approving; that number is the business case.

  • A design-system commitment, made deliberately. Choosing this field is a soft commitment to Font Awesome as the admin icon vocabulary. It also forces a cheap-now/expensive-later call: store raw FA classes (fa-solid fa-house) exactly as the picker emits them, or store semantic keys and map them to icons in config. Raw classes ship fastest but couple the database to FA's naming, so any FA 6→7 rename becomes a data migration. Semantic keys survive version churn and enable per-tenant or white-label theming at the cost of one translation layer. Decide this at adoption, not by default.

  • Roadmap unlocks in the content model. Once an icon is an editable attribute rather than a hardcoded template concern, a class of engineering-owned features becomes non-engineer configurable: self-serve category and nav customization, per-tenant branding, status/badge configuration, themed customer portals. This is the cheapest enabler for that category; the alternative is usually a bespoke field plus a custom CRUD surface.

  • Upgrade-path budgeting. The package is Nova 5-only, and v3.1.0 added Laravel 13 support. That puts a line item in every future Nova major evaluation and, to a lesser degree, every Laravel major. The mitigating signal: the maintainer is tracking framework releases and merged an outside contributor's compatibility PR, so this is unlikely to be the dependency that pins your framework version — but verify at each major rather than assume.

  • Risk posture for admin tooling. Seven stars, zero dependents, one primary maintainer. That is acceptable for an admin-only, non-critical, easily replaced form field; it is not acceptable on a revenue path. Approving it is a statement that you are comfortable treating this as code you may need to fork — defensible only because the surface area is one field.

  • Scope clarity: this is presentation glue. It stores a class string and does not ship Font Awesome to your frontend, nor validate that a stored class still exists. Budget the frontend rendering and defensive output handling as your work, not the package's.

When to Consider This Package

Adopt when all of the following hold:

  • You already run Laravel Nova 5. The Nova license is a sunk cost, so this is incremental spend — zero, in fact — rather than a platform decision. Pin to v3.1.0 or later if Laravel 13 is in scope, but confirm Nova's own Laravel 13 support first, since Nova is the binding constraint, not this field.
  • Font Awesome is already your icon source — not Heroicons, Lucide, Material, or an in-house SVG set. If the icon system is undecided, this package is not where you decide it.
  • Three or more admin surfaces need an icon choice, so saved effort clearly clears the cost of evaluating, pinning, and potentially vendoring the dependency. A single resource probably does not justify it.
  • MIT licensing fits your policy and you have PHP capacity to fork and patch a single-field package if the maintainer walks away.
  • A low-signal dependency is acceptable for admin-only, non-critical UI.

Look elsewhere when:

  • You are not on Nova 5 — Nova 4, Filament, Backpack, or a bespoke admin panel means the package does nothing for you.
  • You need more than a picker: multi-library abstraction, SVG upload, sprite management, or per-tenant icon-set switching are all out of scope.
  • Procurement requires vendor SLAs, formal security review, or a support contract. There is no vendor here, only a maintainer.
  • The icon field sits on a customer-facing, revenue-critical path where a broken release blocks publishing or checkout.
  • You would rather own a thin internal field than carry any dependency through your Nova upgrade cycle. That is legitimate — a one-field Nova component is not hard to write, it is just not free to maintain.

How to Pitch It (Stakeholders)

For executives: This is a small, MIT-licensed add-on for the Nova admin panel we already license. It lets non-engineers pick icons from Font Awesome themselves instead of filing a ticket, removing a recurring category of low-value engineering requests at zero licensing cost and zero new vendor relationship — no SaaS subscription, no data leaving our systems, no integration contract to negotiate. Sustainability looks reasonable for its size: the latest release added Laravel 13 support from an outside contributor, a positive signal the project is being kept current. The risk is contained by scope — it is a single admin form field we could replace or fork in a day if the maintainer disappeared, and it never touches a revenue path.

For engineering: A Nova 5 field that swaps a text input for a searchable Font Awesome 6/7 picker and persists the chosen class string on a nullable column. One Composer require replaces roughly 1–3 days of custom-field work, including the Vue component and asset packaging. Treat it as owned-by-adoption: pin the version, centralize the field definition in a trait before the third copy, enforce a regex rule on the stored class, render defensively at every output site (never interpolate the raw column), and keep a Text::make('Icon') fallback behind a flag so a broken package release cannot leave editors with an unusable form. Note that it does not ship FA to your frontend or validate the class still exists — that work stays with us.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager