codeat3/blade-maki-icons
Blade Maki Icons provides ready-to-use Blade components for the complete Maki icon set, letting you drop clean SVG map and UI icons into Laravel views with a simple tag, customizable size, color, and attributes, no extra setup required.
Build vs. buy for commodity assets — resolved on cost, not on features. The real alternatives are hand-maintained SVG partials in the repo, an internally owned Blade icon library, or a paid icon subscription. All three carry recurring cost — upkeep, PR review, licence review — for artwork that is genuinely a commodity. codeat3/blade-maki-icons collapses that to a single pinned composer require. Building only wins if you need bespoke or brand-restyled glyphs, which a fixed open-source set cannot provide.
A decision about how icons ship, not a feature bet. This is infrastructure: versioned with the app, server-rendered, reviewed in pull requests, deployed with the release. Frame it in roadmap reviews as design-system hygiene with a maintenance-cost payoff rather than a headline capability — it will not move a user metric, and it should not be sold as if it will.
Unblocks map, geolocation, and logistics surfaces. Concrete areas this accelerates: store and venue locators, delivery and fleet-tracking dashboards, POI pickers, travel and hospitality interfaces, and any map legend or marker taxonomy. If the roadmap carries a "find a location near me" surface, this is a same-sprint dependency rather than a design-project blocker.
Roadmap input: framework-upgrade readiness. Release 1.10.0 exists for exactly one reason — widening the constraint to permit Laravel 13. The PM-relevant takeaway is not "new icons," it is that this dependency would otherwise have pinned the platform at Composer resolution. Track it in the upgrade workstream as an unblocker, and treat future maintainer lag as a schedule risk to the platform roadmap, not a cosmetic nit.
A dependency-register entry, not an architecture-review gate. Blast radius is deliberately small: no routes, migrations, config, queues, or background services. If it breaks, an icon renders blank — visibly, harmlessly, and not on a checkout path. The exit (vendor the SVG directory, or fork the thin wrapper) is measured in days. That asymmetry argues for permissive adoption with light governance.
A forcing function for icon consolidation. Adopting this raises one question the roadmap should answer once: how many icon sets does the product ship today? If the answer is more than two, the actual decision is whether Maki becomes the sanctioned vocabulary for map and POI contexts — or becomes a third parallel set design has to reconcile.
Scope discipline as the real constraint. Maki is Mapbox-originated and map/POI-oriented; it is not a general UI icon system. Approving it for navigation, forms, and media controls guarantees a second icon dependency within a quarter — the exact fragmentation the adoption was meant to prevent.
Adopt when:
Look elsewhere when:
Questions to settle before the decision meeting:
illuminate/support to ^11/^12?maki prefix — or our internal wrapper name — collide with an existing design-system namespace?To executives. This is a near-zero-cost, low-risk adoption that retires an ongoing engineering chore — hand-managing map and location icons — in favour of a versioned, open-source set rendered directly from our templates. No licence fee, no vendor contract, no lock-in: the icons are open source and the wrapper is thin enough to fork or replace within days. Timing matters more than the feature. Release 1.10.0 is a maintenance-only update adding Laravel 13 support, which means this dependency stays current with our platform rather than becoming the thing that blocks our next framework upgrade. Recommendation: approve adoption for map and location surfaces, and approve the 1.10.0 bump as part of the platform-upgrade workstream. No budget impact, no headcount impact.
To engineering. Version 1.10.0 is a compatibility release with a single change — widening the framework constraint to permit Laravel 13. No API changes, no renamed components, no removed icons, no deprecations. From 1.9.0 this is a routine composer update; for anyone blocked on Laravel 13 it is the unblocker, not an optional bump. Architecturally the package is inert: a service provider registering Blade components backed by static SVG data, with no routes, migrations, config, or runtime services. Three guardrails. First, pin the version in composer.json — the icon set itself changes between releases, so an unpinned minor bump can silently alter glyphs in shipped UI. Second, wrap the vendor prefix in one internal component that owns sizing, colour, accessibility, and fallback, so a future swap is one file rather than a codebase-wide find-and-replace; land the wrapper before adoption spreads, since retrofitting an abstraction negates the benefit. Third, add snapshot tests on icon-heavy pages and a view-compile check in CI — together they catch both silent visual drift and component-registration collisions. When sequencing the Laravel 13 upgrade, bump this package in the same change set and run a dry-run resolve first; a single laggard constraint elsewhere in the graph defeats the release regardless of what this package permits. Confirm PHP version parity with Laravel 13 before committing to a date.
To design. You get a consistent, licence-clear glyph vocabulary for map and POI surfaces, delivered through the same component system as the rest of the UI, with sizing and colour controlled by your existing utility classes. The trade-off to accept explicitly is that Maki is a fixed third-party set — the drawings are not editable, only the container is. If a future brand refresh requires bespoke map iconography, that is a separate design investment, and the internal wrapper component keeps swapping the underlying set a contained change. The one thing design must own is scope: Maki stays the sanctioned set for map and location contexts, and we do not let it drift into a general UI icon role where it will under-deliver.
How can I help you explore Laravel packages today?