nucleos/maps-bundle
Symfony bundle for adding interactive maps to your application. Configure map providers, render maps in Twig, and place markers and locations, keeping map setup centralized so pages can display geographic data with minimal effort and configuration.
What the package actually is. nucleos/maps-bundle is a Symfony bundle, not a Laravel package. Its scope is narrow and presentation-layer: it renders a map (marker/coordinate data → HTML/JS map widget) inside a Symfony application, primarily via Twig templating and Symfony DI configuration. That single fact dominates the evaluation, because the stated context is a Laravel/PHP stack.
What changed in 3.7.0 (2026-05-01). One PR, one contributor, zero issues closed. The change is Add support for willdurand/geocoder-bundle 7 — a dependency-compatibility bump widening the supported range of the optional geocoder integration. No new rendering features, no provider abstraction, no breaking changes, no deprecations, no API surface changes. For our purposes this is a maintenance signal, not a capability change: the project is still receiving compatibility updates, and it is still being maintained by essentially one person.
Architecture fit. Weak-to-moderate as a direct dependency in a Laravel codebase. A Laravel app has no bundle registration mechanism, no Twig-by-default view layer, no Symfony DI container to load the bundle's service definitions, and no AbstractBundle/Bundle kernel integration. Adopting it "as-is" would require a Symfony kernel running inside or alongside Laravel — an architectural mismatch far out of proportion to the value of rendering a map. Fit improves dramatically if the target stack is Symfony (or a hybrid where Symfony components are already bootstrapped), in which case this is a clean, purpose-built fit. 3.7.0 sharpens this: the release is entirely about tracking a Symfony bundle major version, which is further evidence the package's center of gravity is the Symfony ecosystem and its release cadence is driven by Symfony dependency churn, not by map-rendering feature demand.
Integration feasibility. Two realistic paths:
willdurand/geocoder-bundle behind an interface. Reimplement in a Laravel package of our own (Blade component + config file + service provider + published JS assets), roughly 1–3 days of work for a simple map widget. This gets us the domain insight with zero coupling and full control. The geocoder integration is worth reading specifically, because it is the one place the bundle demonstrates a seam we would want to replicate as a Laravel contract.Technical risk.
@core23 authored the sole change. The project's continuity is that individual's attention. Nothing in 3.7.0 suggests a maintainer bench is forming.willdurand/geocoder-bundle major versions mean customizing the output (custom markers, clustering, provider swap) may require forking.Key questions.
willdurand/geocoder-bundle 7 — i.e., does 3.7.0 unblock us or is it irrelevant?willdurand/geocoder-bundle, so geocoding is a composable dependency, not a built-in capability — clarify whether that is sufficient for our needs.2026-05-01 date is now corroborated by a second data point. Treat it as a consistent metadata convention rather than an error, but still validate version resolution against actual repository tags.Stack fit. Poor against a pure Laravel stack; good against a Symfony stack. Concrete gaps in Laravel: no auto-discovery of bundle service definitions, no Twig view engine by default, no Symfony form/asset component assumptions satisfied, and no geocoder-bundle wiring. A Laravel adapter would be a shim we own and maintain — effectively a fork with extra steps. 3.7.0 does nothing to narrow this gap; it widens the set of Symfony-side dependencies we would need to satisfy.
Migration path (if we choose pattern extraction, which I still recommend).
config/maps.php, a service provider, a Blade component (<x-map :markers="$markers" />), published JS/CSS assets via Vite, and an optional geocoding adapter behind our own interface — mirroring the seam the bundle uses for willdurand/geocoder-bundle, but as a Laravel contract.nucleos/maps-bundle; document the provenance (including the version reviewed, 3.7.0) so future maintainers know where the patterns came from.Migration path (if direct adoption is forced by an existing Symfony subsystem).
~3.7.0); register the bundle in config/bundles.php; publish/verify its config; confirm asset pipeline compatibility (AssetMapper vs. Webpack Encore vs. Vite); validate against the installed Symfony and Twig major versions.willdurand/geocoder-bundle 7 is present and consistent across the estate — 3.7.0 is precisely the release that makes that combination supported, so this is the one scenario where upgrading is clearly positive.Compatibility work required before any commitment.
composer.json at the 3.7.0 tag: PHP constraint, symfony/* constraint range, Twig major, asset component requirement, and the new willdurand/geocoder-bundle constraint.Sequencing.
composer.json and templates, review PR #963, verify tag history.Given 5 stars, 0 dependents, and a single-contributor release, I would not schedule a direct-adoption path unless a Symfony runtime already exists. 3.7.0 does not change that calculus; it only tells us the dependency bump is a live option for a Symfony shop. The expected value of the dependency itself remains low; the expected value of the reference implementation is moderate.
Maintenance. Direct adoption creates a dependency we cannot influence and a small upstream unlikely to prioritize our issues. 3.7.0 reinforces the shape of this: releases happen, but they are reactive to Symfony dependency majors and land as single-PR, single-author events. With zero dependents, we would be a de facto beta tester. Every Symfony/PHP upgrade becomes a coordination problem where the bundle may lag. Pattern extraction converts this into code we own — more upfront cost, far lower long-term maintenance variance.
Support. No meaningful community, no Stack Overflow corpus, no third-party tutorials. Support is "read the source." That is acceptable for a ~200-line rendering concern and unacceptable for anything load-bearing. Budget for one engineer to become the internal owner in either path.
Scaling. The package's stated scope is simple map rendering. Expect limits around: large marker counts (client-side clustering is not a given), server-side geocoding/tile proxying, and caching of rendered fragments. Geocoding is delegated upstream to willdurand/geocoder-bundle, so our geocoding throughput and failure semantics are governed by that dependency, not this one — factor it into capacity planning separately. If our roadmap includes heatmaps, routing, or high-density datasets, plan to outgrow the bundle and design the internal abstraction so the renderer is replaceable.
Failure modes.
willdurand/geocoder-bundle 7; if our Symfony estate is pinned to an older geocoder-bundle, adopting 3.7.0 forces a coordinated upgrade, and adopting an older maps-bundle forces the reverse.2026-05-01 date now appears consistently across two records, so treat the anomaly as convention rather than error; still validate version resolution against actual repository tags.Ramp-up. Low for the map-rendering domain itself (a competent PHP engineer is productive in under a day). High for the Symfony-bundle-in-Laravel bridge, which is where most of the effort and all of the resentment would go. Pattern extraction keeps ramp-up at "read one small package and its Blade equivalent."
Recommendation. Do not add nucleos/maps-bundle as a runtime dependency in a Laravel codebase. Use it as a design reference for a small first-party map component (1–3 engineer-days), and reserve direct adoption for a scenario where a Symfony runtime is already present, the map requirement is genuinely simple, and the estate is already on willdurand/geocoder-bundle 7. 3.7.0 is a routine dependency-compatibility release: it is mildly reassuring as a maintenance signal and materially irrelevant to the Laravel decision. Reassess if upstream gains dependents, a maintainer bench, or a documented provider abstraction.
How can I help you explore Laravel packages today?