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.

Project under MIT License.
Design by