devrabiul/laravel-geo-genius
Laravel GeoGenius adds IP geolocation, automatic timezone detection and conversion, locale detection with translation and number helpers, plus a country picker with phone formatting and validation. Livewire-ready, cookie/header based, and easy to drop into any Laravel app.
geo:add-timezone-column command plus convertToUserTimezone() makes per-user timezone a first-class, persistable field rather than a browser-only guess — useful for notifications where the browser is absent (email, queues, cron).geo:translations-generate and geo:translate-language* commands are a real accelerator for the mechanical part of a localization push (extract strings, seed locale files, batch-translate). Treat this as a kickoff tool, not a substitute for human review of customer-facing copy.Adopt when:
Look elsewhere when:
CF-IPCountry, CloudFront). Those are cheaper at scale and eliminate a third-party runtime dependency. IP geolocation is inherently approximate — VPNs, corporate proxies, and carrier NAT will mislabel a meaningful slice of users, so anything that must be correct (tax, legal jurisdiction, content restrictions) needs user confirmation, not inference.initIntlPhoneInput() and emits them through unescaped Blade output — your CSP and supply-chain review will want to see that.Recommendation framing: time-boxed pilot, feature-flagged, one market, with a written exit criterion (fallback rate, API failure rate, or maintenance inactivity) that returns you to CDN headers or MaxMind.
To executives (one paragraph): We can cut roughly two to three sprints of engineering from our international launch by adopting an existing MIT-licensed Laravel package that resolves a visitor's country, timezone, and locale, and supplies a validated country-aware phone field. Cost is zero in license fees; the spend is integration and review time. The risk is vendor-shaped rather than technical: it's a small, single-maintainer open-source project, so we're proposing to pilot it behind a feature flag in one market, wrap it in our own interface so it's swappable, and set explicit kill criteria. Downside if it fails is days, not quarters; upside is pulling the localization roadmap forward by a month or more.
To engineering (the ask): Integrate via our own adapter, not the global helper, so we can swap providers without touching call sites. Pin the version. Cache aggressively and confirm behaviour when the external IP APIs are unreachable. Review the CDN asset injection against our CSP and pin or self-host those assets. Add tests around fallback and localhost handling, and document that this replaces browser-locale guessing — it does not replace real phone verification.
The one decision I need: approval for a scoped pilot with a two-week integration budget and the stated exit criteria, not a permanent architectural commitment.
Open items to resolve before sign-off: current rate limits and terms of the IP APIs and the auto-translate service; whether a DPA is required for public IP egress; who owns the fork if upstream stalls; and confirmation that no regulated data path (tax, KYC, legal jurisdiction) depends on inferred location.
How can I help you explore Laravel packages today?