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 Icon Picker Laravel Package

nevadskiy/nova-icon-picker

A Laravel Nova field that adds an icon picker to your admin panel, letting you search and select icons from supported icon sets and store the chosen icon name on your models. Simple to install and configure for Nova resources.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Admin UX investment: This field lets non-technical editors pick icons from a visual, searchable grid instead of typing CSS class names or filing a developer ticket. That directly supports decisions to reduce admin friction on navigation builders, category/taxonomy screens, menus, dashboard tiles, badges, and status labels — the kind of internal-tool polish that rarely justifies a full build but compounds across every content-entry workflow.
  • Build vs. buy (narrowly scoped): For a Nova-standardized team, this replaces a small custom Vue picker effort with an MIT-licensed, single-field dependency. The honest framing is "adopt or fork," not "adopt and forget" — a Nova field is roughly one PHP class plus one Vue component, so the build-vs-buy math is really a maintenance-ownership question, not a capability question.
  • Use-case fit / scoping: Best where icons are cosmetic or organizational metadata. It stores a plain string, so it slots into an existing schema with one nullable column and no migration risk. That makes it a low-ceremony enabler for an admin workflow that is already planned.
  • Roadmap weight: This is an enabler, not a differentiator. Fund it as a line item inside an admin-experience or content-modeling initiative; do not let it drive roadmap priority on its own, and do not let it become a reason to introduce Nova.
  • Risk and ownership: 3 stars, 0 dependents, last release September 2023, no CI-testable UI without a Nova license. If the workflow becomes important, budget explicit internal ownership (pin the version, add it to the upgrade checklist, pre-approve a fork into packages/). Treat it as vendored code from day one.
  • Data-contract decision: If icons matter beyond presentation — they feed a public API, a mobile app, or a theme — decide now to store your own canonical icon_key slug and treat this picker's output as presentation-only. That single decision keeps you free to delete the package without touching downstream consumers.
  • Alternative threshold (a real product decision): For a handful of icons, Nova's built-in Select plus a small preview field is a ten-line, zero-dependency option that survives every Nova upgrade. This package earns its place only when the set is large enough that a flat dropdown becomes unusable — that is its sole real advantage, and the PM should force that question before adoption.

When to Consider This Package

Adopt-or-spike when all of the following hold:

  • The product already runs Laravel Nova on a supported version (treat Nova 4.x as the assumed target; the 2023-09-26 release predates Nova 5, so budget a compatibility spike before committing).
  • There is a repeated, already-planned need to attach icons across multiple resources — not a one-off.
  • The icon set is large enough that a dropdown is unusable, and constrainable to a known library your frontend actually loads.
  • Icons are presentation-level, or you are willing to keep a separate canonical slug column.
  • The team accepts internal ownership: exact version pin, upgrade-checklist entry, and a fork contingency. Speed matters more here than ecosystem maturity, and MIT + narrow scope make inspection and replacement genuinely cheap.

Look elsewhere when:

  • The app is not on Nova, or the team is weighing Nova alternatives — introducing Nova for this package is not justified.
  • Icon management is a core product capability: large curated libraries, advanced search, SVG upload, accessibility guarantees, theming, or vendor SLAs. This field does none of that.
  • The organization mandates actively maintained dependencies with broad adoption, recent releases, and security responsiveness. Three stars, zero dependents, and a stale release are material adoption risks, and the absence of a Nova license in CI usually means zero automated coverage of the picker itself.
  • Only a few icons are needed — use Nova's Select plus a preview field.
  • You need a stable data contract and cannot add a separate slug column.

Regardless of path, run a time-boxed spike in a non-critical admin screen first. The one non-negotiable acceptance criterion: confirm the emitted wire format (CSS class string like fa-solid fa-user vs. a slug like user) by saving once and reading the raw database value. Getting this wrong fails silently — blank glyphs, no validation error, no exception — and it is the single most common way this integration goes wrong.

How to Pitch It (Stakeholders)

  • Executive summary: A low-cost, low-scope admin UX improvement for Laravel Nova applications. It gives administrators a point-and-click, searchable icon selector and can save a small amount of custom development. It is an internal utility, not a strategic platform dependency, and should be budgeted and governed accordingly: pinned version, named owner, cheap exit.
  • For engineering: MIT-licensed Nova form field with a deliberately small blast radius — one PHP class, one Vue component, one nullable string column, no service/queue/API surface. It fails in a form, not in the checkout flow. Validate against the current Nova version, read the Vue component to confirm the stored value format before writing the migration, mirror the allowed icon list server-side in a Form Request with Rule::in(...), route all rendering through an escaping helper (never {!! !!}), and cover what you can in CI — attribute round-trip through create/update and correct escaping — since UI assertions need a Nova license. If "the field doesn't appear," it's almost always nova:publish and asset caches, not code.
  • For product: Use it where icon selection measurably improves admin efficiency or content quality — navigation, categories, dashboards, menu builders, badges. Expect a short spike to prove the wire format and the icon-set/frontend match, then ship it behind a feature flag or canSee callback so a broken picker degrades to a hidden field rather than a broken admin. Do not promise a curated custom icon set without engineering confirming whether it requires a fork and JS rebuild.
  • Recommendation: Run a time-boxed spike in a non-critical admin screen with create → save → index → render verified end-to-end. If it works on the current Nova stack, adopt with a fork/vendor contingency and a canonical-slug fallback for any non-cosmetic use. If it doesn't, fall back to Select + preview for small sets, build a minimal internal replacement, or defer the feature — all three are acceptable outcomes, and knowing which one you're choosing is the actual deliverable.
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings