inisiatif/common
Shared Laravel utilities for Inisiatif Zakat Indonesia: a Branch model, UUID and integer primary key traits, branch relations, Eloquent repository and tagged-cache abstractions, contracts, and common exceptions for consistent apps.
Branch model, HasBranch trait, and HasBranchInterface directly support products where data must be segmented by regional office, distribution channel, or organizational unit—common in zakat collection/distribution workflows, donor management, branch dashboards, and regional reporting.ResourceInterface, ModelRepositoryInterface, and EloquentAwareRepositoryInterface support a consistent repository/DDD-style approach. This is useful when multiple squads or services need a shared convention for data access and model behavior.TaggableCacheAware and the cache-aware repository contracts support decisions around read-heavy endpoints, dashboards, and branch listing caches. This can justify prioritizing cache-tagging work where repeated queries are costly.Consider adoption if:
Look elsewhere if:
For executives: “This is an internal Laravel foundation package that can reduce duplicate work across branch-aware services. It gives us shared building blocks for regional/branch data, repository conventions, UUID handling, and caching, so teams do not rebuild the same plumbing in every application. The strategic value is standardization and faster delivery of branch-heavy features, not external market differentiation. The main risks are that it is proprietary, has very low external adoption, and needs an internal owner. I recommend a contained pilot in one service, with success measured by reduced boilerplate, faster feature delivery, and lower maintenance effort.”
For engineering: “The package provides concrete shared infrastructure: a Branch model and migration, HasBranch for branch relationships, UuidPrimaryKey and IntegerPrimaryKey traits, AbstractRepository plus repository contracts, TaggableCacheAware for tagged caching, and domain exceptions for consistent error handling. The tradeoffs are low community validation, limited documentation, proprietary licensing, and the v3 namespace migration from Inisiatif\Package\Contract\... to Inisiatif\Package\Common\Contracts\.... Next steps should be: pilot it in the most branch-heavy service, map existing models to ResourceInterface, validate repository overhead versus direct Eloquent, test cache tagging on a real dashboard endpoint, and assign a long-term owner before broader adoption.”
Call to action: “Approve a time-boxed pilot in donor management or branch operations, with a clear go/no-go review covering migration effort, developer experience, performance impact, and ownership. Do not position this as a general-purpose open-source dependency; position it as a controlled internal platform bet.”
How can I help you explore Laravel packages today?