mahdimajidzadeh/ds
RTL/Persian-first UI kit for Laravel Livewire that extends Flux UI, adding Persian typography and digits, Jalali dates, Toman/Rial pricing, and e-commerce components like product cards, quantity steppers, and countdowns.
majid-ds sits in the category of reusable data-structure/utility code (trees, graphs, collections, traversal helpers). The PM decision it informs is whether your team hand-rolls recursive category trees, dependency resolution, or nested-set logic in application code — or adopts a small third-party abstraction. The default should be "buy" only when the primitives map to a named roadmap item.Collection, Arr, or query-builder features. Those remain the baseline; this package must justify itself over and above the framework.Consider adoption when:
Collection and HasRecursiveRelationships-style patterns handle poorly or verbosely.0.x dependency pinned with a caret-to-tilde constraint and locked in composer.lock.compare/v0.3.1...v0.4.0 link with no enumerated changes — treat that as a documentation gap and a review gate, not a green light. Someone must read the diff before upgrading.Look elsewhere when:
Illuminate\Support\Collection, Arr, SplStack/SplQueue, or a well-established package (spatie/laravel-collection-macros, nicmart/tree, clue/graph). Prefer the standard library and the most-maintained option.Release-readiness verdict for v0.4.0: pre-1.0 minor bump with an empty changelog. Consistent with normal 0.x churn (possibly including breaking changes). Evaluation status: pilot only. No production adoption without a diff review, a passing test suite against your Laravel version, and a documented adapter boundary.
For executives (one paragraph): We are evaluating a small open-source PHP library that provides ready-made data-structure helpers for Laravel. The business case is engineering efficiency, not product differentiation: it can replace custom recursive code for hierarchy-heavy features like category trees and permission inheritance, which typically reduces bug surface and shortens delivery time on internal and admin features. The cost is near zero (MIT-style licensing, no vendor contract), and the risk is contained by pinning the version and wrapping it behind our own interface so it can be removed in days. Recommendation: approve a time-boxed spike on one non-critical module; do not approve broad adoption until the library reaches a stable 1.0 or demonstrates sustained maintenance.
For engineering leads: This is a 0.x package. v0.4.0 shipped with only a diff link — no changelog, no migration notes. Treat the upgrade as potentially breaking. Concrete asks: (1) one engineer reads the v0.3.1...v0.4.0 diff and summarises it; (2) we add a contract test that runs against our supported Laravel/PHP matrix; (3) all usage goes through our own TreeRepository-style interface so the dependency is swappable; (4) we pin exactly and let Dependabot/Renovate surface future bumps for review rather than auto-merging; (5) we benchmark against Collection-based implementations on realistic data before committing. If the diff shows API churn without documentation, we hold at v0.3.1 or decline.
For the product team: No user-visible impact. This is an enabling decision that affects how fast we can ship hierarchy-based features and how much custom code we own. It does not change scope or dates on its own.
How can I help you explore Laravel packages today?