polifonic/addressable
Polifonic Addressable is a Laravel package that adds polymorphic address support to Eloquent models. Attach reusable addresses to users, companies, or any model via a simple trait and manage them through an intuitive API.
morphMany address relation attached via a trait — is the modeling decision behind letting Users, Companies, Orders, Warehouses, or Store Locations each own N addresses from a single addresses table. That is a roadmap-level decision (address book, "ship to different location," billing vs. shipping separation), not just an implementation detail.billing, shipping) per entity? What happens to historical orders when an address is edited or deleted — snapshot or reference? These decisions affect invoicing, tax, and audit requirements.shipping_address column.Caveat on evidence: with 1 star, 0 dependents, and a near-zero composite score, this should be treated as a reference implementation or internal starting point, not a vetted third-party dependency. The decision it informs is legitimate; the artifact itself carries almost no adoption signal.
Reasonable to look at when:
user_addresses / company_addresses tables, or a JSON column) before committing.Look elsewhere — or build in-house — when:
Practical evaluation step: read the migration and trait directly. If they are under a few hundred lines and the schema matches your needs, replicate them with your own tests and migration ownership. That converts an unsupported dependency into a maintained internal one at roughly a day of effort.
For executives: This is a small, MIT-licensed building block for storing multiple addresses per customer, company, or order in a Laravel codebase. It is not a vendor relationship and carries no licensing cost. The strategic value is in the data model it demonstrates — one address book serving billing, shipping, and operational locations — which unblocks checkout, shipping estimates, and multi-location features. Recommendation: do not adopt it as a production dependency given its near-zero adoption and no maintenance history; instead have engineering reuse the pattern internally so we keep full ownership and support obligations.
For engineering: The package provides a polymorphic address model attachable to any Eloquent model via a trait, plus migrations and a minimal API for creating and retrieving addresses. Adopting it directly means inheriting untested code with no dependents, no release process, and no upgrade path. Proposed alternative: vendor the migration and trait into our own Addresses module, add feature tests for default-address selection and order snapshotting, and treat it as first-party code. Estimated effort is one to two days, and it removes a long-term dependency risk while preserving the design.
Bottom line: the pattern is worth adopting; the package is worth reading, not installing.
How can I help you explore Laravel packages today?