runn/core
runn/core is the foundational package for the Runn ecosystem, offering shared abstractions, utilities, and base classes for Laravel/PHP applications. It helps developers build modular, maintainable features and extend Runn components with less boilerplate.
runn/core is a framework-agnostic PHP primitive/utility library (base value objects, collections, data structures) rather than a Laravel integration. The decision it informs is whether to adopt an external base layer for entities/DTOs or write a thin internal package (~hundreds of LOC) we own. Primitive layers are the highest-leverage, lowest-differentiation code in the product — the cheapest thing to write and the most expensive thing to replace.Illuminate\Support\Collection, Symfony Serializer/Validator, and spatie/laravel-data. Introducing a parallel object model creates two dialects in one codebase — a velocity tax paid on every PR, not a one-time cost.Caveat: this assessment is drawn from package metadata (stars, dependents, license, description) rather than a code audit. Confirm actual API surface before any final call.
Consider it when:
Look elsewhere when:
spatie/laravel-data, Illuminate Collections, and Symfony components are better maintained, better documented, and cheaper to hire for.To executives: This is a foundational PHP utility library — value objects and data structures, not a user-facing feature. The economics are weak: modest scaffolding savings against meaningful lock-in risk on the layer that's hardest to change later, plus an LGPL-3.0 license that needs legal sign-off if we ever distribute software. Recommendation: do not adopt as a core dependency. It's a single-maintainer project with no downstream users and no evident release cadence. If a team wants the patterns, fund a 1–2 week internal spike to implement the small subset we actually need, under our license and our ownership. Same benefit, no vendor risk.
To engineering: The library offers DDD-flavored primitives, but we already have functional equivalents in Illuminate and Symfony. Adopting it means two object models in one codebase plus a fork we'd have to own and patch. If the patterns are genuinely useful, read them and reimplement the small pieces we need rather than depending on them — that also removes the LGPL distribution question entirely. If any team still wants to proceed, the ask is: name an internal owner, define the fork policy, and confine it to a single greenfield service.
How can I help you explore Laravel packages today?