roundly-consulting/geolocation-for-laravel
A Laravel package for adding geolocation and location-aware features to your app. Resolve coordinates, calculate distances, and build proximity-based queries and search results with a simple, framework-friendly API.
UpdateDatabaseAction, MaxMind download staging, a rate-limited HTTP client) indicates it owns the local GeoIP database lifecycle — fetching, staging, and refreshing MaxMind data for IP-to-location lookups. That underwrites decisions on: locale/currency/unit defaults, regional content licensing and blackout rules, tax and regulatory routing, shipping/eligibility rules, fraud and risk scoring inputs, and geo-segmented analytics.enums ^1.1.0, http-client-rate-limits ^1.1.0, package-toolkit ^1.3.0, and testing ^1.2.1. This package is one node in a first-party suite, so adopting it means adopting an upgrade cadence across several packages — a real cost to price into a build-vs-buy call.Consider it when:
Look elsewhere when:
On 2.0.4 specifically: this is a maintenance patch with no behaviour change. The dependency floors moved and UpdateDatabaseAction gained test-controlled staging, but hosts still relocate the staging area via TMPDIR or the sys_temp_dir ini setting. Nothing here changes the adoption calculus — no breaking changes, no deprecations, no new capability. Treat it as evidence of active maintenance rather than as a reason to decide.
For executives. This is a small, low-cost component that lets our Laravel applications answer "where is this user?" from a database we host ourselves, instead of paying per lookup to a vendor. It supports regional personalisation, licensing and tax rules, and fraud signals. The trade is straightforward: we take on a scheduled refresh job and a MaxMind licence obligation in exchange for near-zero marginal cost per lookup and no third-party call in the user's request path. Version 2.0.4 is routine maintenance — dependency updates and an internal testability improvement — with no behaviour change and no migration work for us. I would treat adoption as a low-risk, reversible decision, with the one caveat that location accuracy is coarse and we should not build anything revenue-critical on street-level precision.
For engineering. The package manages the GeoLite2 database lifecycle — download, staging, refresh — behind a Laravel-native action, and pulls in Roundly's enums, rate-limited HTTP client, and tooling packages. It is designed to live in a first-party suite, so expect to upgrade it in step with its siblings rather than independently; pin and review the transitive set. 2.0.4 is safe to take: it raises the floors on enums, http-client-rate-limits, package-toolkit (dev: testing) and makes the MaxMind staging directory injectable for tests while keeping host behaviour identical under TMPDIR and sys_temp_dir. Before we commit, we owe ourselves three things: a scheduled update job with alerting on stale or failed downloads, a documented fallback for unknown IPs, and a review of GeoLite2 attribution and redistribution obligations. If those three are cheap for us, this is the right tool; if any of them is expensive, a managed lookup API is the better answer and we should say so early.
How can I help you explore Laravel packages today?