plin-code/laravel-istat-geography
Laravel package for Italian ISTAT geography data, providing regions, provinces, and municipalities (comuni) ready to use in your app. Simple Eloquent integration for addresses, filters, and location-based features.
geography:* artisan commands for downloading/importing boundaries. That removes a multi-week data-sourcing and validation task from the roadmap and replaces it with a dependency review — a strong buy signal for any product shipping Italian addresses, delivery zones, or territorial reporting.regions/provinces tables — a recurring failure mode in agent-assisted Laravel work. laravel/boost is only suggested, so adopting the guidelines costs nothing in production dependencies.guzzlehttp/guzzle requirement removes a version-pin collision point in large monorepos and hands Guzzle selection back to the framework. Lowers the "will this block our next Laravel bump?" risk that PMs get asked about.Adopt when:
tables and models in config. Decide table names before the first migration — renaming later does not migrate existing tables, so this is a one-way setup decision that belongs in the initial architecture review, not in a later refactor.Look elsewhere when:
tables config was previously non-functional; if you built workarounds around hardcoded table names or base model classes, audit them. The relation change is a fix, but anything that type-hinted the vendor's base classes or relied on the old table names is a silent behavior change, not a compile error. Test the relation paths before merging.Upgrade notes for a PM to track: defaults unchanged, no new migration, so the upgrade is low risk for existing installs. The only decision requiring your attention is whether to adopt custom table/model names now — and it must be made before migrations run.
To executives: this is a small, free, well-maintained Laravel package that supplies the official Italian geography dataset — regions, provinces, and municipalities with their ISTAT codes. It converts a data-sourcing project into a dependency we can adopt in a day, and it de-risks the Italian launch by giving us canonical identifiers instead of free-text city names. The new release also lets us fit it into our existing database naming conventions and gives our AI coding assistants accurate guidance about the schema, which reduces the "agent invents its own table" class of bug. No production dependencies added; no breaking changes.
To engineering: v1.5.0 makes the tables and models config keys actually functional — relations now resolve to your configured classes with foreign keys unchanged, and the base migration uses configured table names. Set them before running migrations; changing later won't rename existing tables, and a model-level $table still overrides. Guzzle is no longer a hard requirement (it uses Laravel's Http facade), so Composer resolves Guzzle from your framework version. Laravel Boost guidelines ship in resources/boost/guidelines/core.blade.php; laravel/boost is suggested only. Requirements are Laravel 12–13. Defaults unchanged, no new migration, low-risk upgrade — but grep for hardcoded geography table names and base-class type hints from pre-1.5 workarounds.
How can I help you explore Laravel packages today?