eduardoribeirodev/filament-leaflet
A Filament package that adds interactive Leaflet maps to your admin panel. Drop a map field into forms to pick coordinates visually, search locations, and save latitude and longitude without writing custom JavaScript.
Coordinate model cast — so the team buys a solved problem instead of re-implementing Leaflet integration per project.coordinateLabelUsing() callback and the latitude/longitude label fallback let us choose between storing raw coordinates only, or persisting a human-readable label/address resolved by our own reverse-geocoding logic — a product decision about data ownership, third-party API cost, and display quality, now with first-class support either way.textMode(true) and restoring labels for saved results means existing records render legibly in read-only/table contexts; this removes a class of "we need to fix the display of saved locations" backlog items.GeoSearchResult objects) means we can extend selection handling in application code without forking the package.Coordinate cast, and a successful production asset build. No breaking changes and no deprecations, so it can be adopted inside an existing sprint with no migration or upgrade project.Adopt it when:
Look elsewhere when:
For executives: Location picking is a feature nearly every operational tool needs and nobody wants to fund twice. This package gives us a map + address search field in Filament out of the box, so location features ship in days rather than weeks, and we avoid maintaining our own map code. The latest release (v5.2.2) is a maintenance patch — it fixes a real user-facing bug where clicking a search result could save the wrong location, and it makes saved coordinates display with readable address labels. No breaking changes, no migration, no added vendor cost beyond the geocoding and tile providers we already choose and control.
For engineering: Patch release, drop-in upgrade from 5.2.x. Notable behavioral clarifications worth knowing: select values are now scalar JSON while PHP callbacks still receive GeoSearchResult objects (so don't assume the old value shape in custom field logic), textMode(true) is now honored, saved coordinates fall back to a lat/lng label unless you supply coordinateLabelUsing() for a stored address or your own reverse lookup, custom coordinate cast columns are respected, and invalid stored coordinate data is handled more defensively. Leaflet pane stacking (including tooltip panes) is corrected and the asset build passed. Recommended action: bump the dependency, re-run the GeoSearch round-trip test through our Coordinate cast, and verify any custom callbacks against the new value shape. Keep the version pinned and consider a thin internal wrapper around the field so a future maintainer change isn't a migration event.
How can I help you explore Laravel packages today?