nuwave/lighthouse
Lighthouse is a GraphQL framework for Laravel that combines the best ideas of both ecosystems. It handles common tasks with ease and offers flexibility when you need it, letting you serve a GraphQL API directly from your Laravel app.
webonyx/graphql-php plus your own pagination, filtering, auth, and nested-mutation plumbing. Lighthouse converts most of that into declarative schema directives (@paginate, @whereConditions, @can, @hasManyThrough, @lazyLoad), so the buy decision mostly reduces to "how much of our API surface is CRUD-shaped?" If it is, the payback is fast.@hide/@show/@feature, usable on types, arguments, and input types since v6.46), which means you can ship schema for a future capability and dark-launch it to a subset of consumers or environments.@upsert/@upsertMany, @bind (route-model-binding analogue), and @can authorization let you promise mobile/web clients "one round trip, atomic writes" — a genuine product differentiator versus chatty REST. The SaveAwareArgResolver interface and nested-mutation fixes in v6.69.x indicate this path is actively hardened, not decorative.reports.proto, client-awareness contexts, operation_id in query metadata) supports per-operation reporting — useful if you sell API access and need usage metering or per-tenant dashboards.MocksResolvers), and deployment pipeline as the rest of the app — reducing the marginal headcount needed to run an API program.Adopt when most of these hold:
.graphql file is the source of truth, reviewable in PRs, and usable to generate client types via lighthouse:ide-helper.Look elsewhere or pause when:
spawnia/lighthouse (discussion #2767). This is a maintainer-continuity and package-name migration event. Composer package renames mean changelog, security advisories, and dependency-tracking tooling all change URLs. Mitigate by pinning a known-good minor and assigning an owner to track the migration before committing to a multi-year contract.One-liner for executives: Lighthouse is a mature, MIT-licensed GraphQL framework that turns our Laravel models into a typed API through schema directives, letting us ship client-facing API features in days instead of sprints while staying inside the stack we already run and hire for.
The business case:
@api-marked stability boundary). The two risks to name honestly are the planned repository move to spawnia/lighthouse and the absence of commercial SLAs — both mitigated by pinning versions, sponsoring maintainers, and naming an internal owner for upgrades.What we are asking for: Engineering sign-off on Lighthouse as the GraphQL layer, a pinned minor version with a documented upgrade cadence tied to Laravel majors, a modest maintainer sponsorship, and a named owner to track the repository migration and confirm the package name we standardize on before we publish it in our internal platform docs.
How can I help you explore Laravel packages today?