Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Addressable Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Multi-address support without per-entity schema churn. The package's core pattern — a polymorphic 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.
  • Build vs. buy vs. copy. Because this is a small, single-purpose package, the real product question is not "should we depend on it?" but "is the polymorphic address trait the shape we want to own?" Reading it is cheaper than evaluating three SaaS address-verification vendors; adopting it wholesale is a separate (and weaker) call.
  • Default-address and address-lifecycle semantics. Any package of this shape forces a product answer: is there one default per type (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.
  • Localization and international expansion. Whether address fields are free-text or structured (country, region, postal code, line1/line2) determines whether you can later bolt on tax calculation, carrier rating, or address validation. The package gives you a schema starting point; the product decision is how strictly to model it.
  • Feature sequencing. An address book is usually a prerequisite for checkout, shipping estimates, multi-location inventory, and customer self-service. If those are on the roadmap, this pattern is worth resolving early rather than retrofitting after Orders has a single flat shipping_address column.
  • Reuse across domains. One attachable address model means customer support, billing, and logistics all read the same records — a data-consistency decision with real operational value.

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.

When to Consider This Package

Reasonable to look at when:

  • You are starting a Laravel application and need addresses attachable to more than one model, and you want a known-good shape for the migration and trait rather than designing it from scratch.
  • You are building an MVP, internal tool, or prototype where speed matters more than dependency assurance.
  • You want to compare the polymorphic single-table approach against alternatives (separate user_addresses / company_addresses tables, or a JSON column) before committing.
  • You plan to fork and own the code, in which case the package is effectively a well-organized snippet.

Look elsewhere — or build in-house — when:

  • The feature is on a revenue path (checkout, shipping, tax). A package with no dependents, no visible release cadence, and one star has no meaningful maintenance, security-response, or upgrade history to rely on.
  • You need address validation, normalization, geocoding, or carrier integration. This package is a persistence layer; it will not do that work, and you will be pairing it with a real vendor anyway.
  • You require multi-tenancy isolation, soft-delete/audit semantics, or address snapshotting for orders — you will end up overriding most of it.
  • Your team has policy constraints on dependency provenance, license review depth, or minimum maintenance signals (releases, CI, issue activity). MIT licensing helps, but license alone is not due diligence.
  • You only ever need a single address per entity. A polymorphic relation is unnecessary indirection; two columns on the parent table are simpler and easier to query.

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.

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings