About
The motivations and philosophy behind the OI Laravel packages
About
Why These Packages Exist
The OI Laravel packages were born out of recurring friction in day-to-day Laravel development. Rather than copying the same boilerplate from project to project, each package extracts a well-scoped solution into a reusable, well-documented library.
The goals are simple:
- Solve a real problem — no packages for the sake of packages
- Stay out of the way — minimal configuration, sensible defaults
- Compose well — each package works standalone; none requires the others
- Be maintainable — clean code, full test coverage, clear documentation
The Packages
Each package answers a specific, recurring need — closing the gap between PHP models and TypeScript frontends, wrapping a verbose external API in an expressive interface, attaching notes or files to any model without a bespoke table, making database state portable, and more.
For the complete, up-to-date catalogue with a one-line summary and a link to each package, see the Ecosystem overview.
Philosophy
These packages follow the Laravel convention of preferring explicitness over magic and convention over configuration. They integrate naturally into existing Laravel applications without requiring significant structural changes.
Beyond individual features, the whole ecosystem is built to a single in-house
standard — identical naming, configuration, testing and release conventions, a
spatie/laravel-data boundary, and a bundled AI-assistant skill for every
package. That standard is documented in
Conventions & Workflow.
All packages are open source, actively maintained, and welcome contributions.
Contributing
Found a bug or have an idea? Contributions are welcome on GitHub. See Contributing & support for how each repository is set up and how to get involved.