blemli/swissstreets-for-filament
Filament integration for the SwissStreets package, adding Swiss street and address data to your admin panel forms and tables. Search, select, and autocomplete official Swiss street names directly inside Filament resources.
Address::cascade('address_id') now exposes the same UX controls at the cascade level as the single-field version. This directly supports decisions about how much friction to accept in address entry, especially for delivery, KYC, and signup flows where bad addresses create downstream cost.->nearMe() / ->near() put the nearest towns first and load them before typing. This is a measurable UX decision: you can A/B whether proximity ordering reduces time-to-complete and abandonment versus alphabetical or static ordering.->nonresidential() and ->freetext() turn “do we support commercial addresses and unlisted addresses?” into a configuration decision rather than a custom build. freetext() puts the add-address form on every step; an unlisted house number, street, or foreign town becomes a manual register row and is selected across all three selects. That is a product-level fallback path for incomplete address data.cascade(). The migration is narrow: replace that argument with ->nonresidential(). This should be scheduled as a small dependency upgrade, not treated as a redesign.Look elsewhere if:
For executives: This package improves address capture in checkout and onboarding by guiding users through a structured cascade, ordering nearby towns first, and allowing a manual fallback when an address is not listed. The business impact is fewer invalid addresses, less failed delivery or rework, and higher form completion. It avoids building and maintaining an address database in-house. The v0.8.0 release expands the cascade-level capabilities and includes one small breaking change: the second positional argument to cascade() is removed in favor of ->nonresidential(). Migration effort is low.
For engineering: Adopt as a Laravel package with a fluent API. v0.8.0 makes AddressCascade feature-equivalent to the single-field API: proximity ordering, non-residential filtering, and freetext manual registration across all three selects. The breaking change is contained: replace the removed second positional argument with ->nonresidential(). Because the package is pre-1.0, pin the version and review release notes on upgrade; consider an internal adapter if address entry becomes a critical path.
How can I help you explore Laravel packages today?