Lighthouse

What Lighthouse is
Lighthouse is a free framework for serving GraphQL from an existing Laravel application. It uses GraphQL Schema Definition Language (SDL) to describe data, with server-side directives for adding behavior. The default endpoint is `/graphql`, which GraphQL clients can use. Lighthouse reuses Laravel concepts and code, including Eloquent models, and can build optimized database queries. Built-in directives support creating records, resolving relationships, query constraints, pagination, and Laravel validation for fields and arguments. Developers can create custom directives, and the `@can` directive family can use Laravel Policies to limit field operations. The framework supports Laravel authentication mechanisms, including Sanctum, and subscriptions for sending server updates to clients. Parsed queries can be cached with Laravel cache stores or local PHP files using OPcache; Automatic Persisted Queries are supported with Apollo compatibility. Installation uses Composer in a Laravel project. Lighthouse is also configurable for Lumen, though its service providers must be registered individually. It is self-hosted and free; GraphQL tooling such as GraphiQL is not included.
Who it suits
Lighthouse suits developers building GraphQL APIs on Laravel or Lumen who want to use Eloquent models and Laravel conventions. It is a self-hosted option, so the application environment must be managed by its users.
What it does well
- Free to install in a Laravel or Lumen project.
- Built-in directives handle relationships, pagination, and validation.
- Supports Laravel authentication, including Sanctum.
- Caches parsed queries and supports persisted queries.
- GraphQL clients can use the default `/graphql` endpoint.
What to know first
- GraphiQL and other GraphQL tools are not included.
- Federation is experimental and cannot serve as a gateway.
- Subscriptions do not expire automatically.
- Lumen service providers require individual registration.
Limits
Lighthouse is free to install in a Laravel or Lumen project. Federation is experimental and cannot serve as a gateway; subscriptions also need a configured storage TTL or Pusher channel existence webhook to avoid remaining active indefinitely.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Lighthouse | Installable PHP package · requires a Laravel or Lumen project | Free |
As lighthouse-php.com lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Open the Lighthouse PHP website.
- Create or use a Laravel project, or configure a Lumen project.
- Install the package with Composer using `composer require nuwave/lighthouse`.
- Configure the GraphQL schema and use the default `/graphql` endpoint with a GraphQL client.
- Add separate GraphQL tooling if needed; the documentation shows GraphQL Playground as a package option.
Verdict
Lighthouse brings GraphQL schema directives and data access features into Laravel applications, with Lumen configuration also documented. Consider the tooling gap, experimental federation support, and subscription-expiry setup when deciding whether it fits your project.
Questions
How much does Lighthouse cost?
The Lighthouse plan is free.
What does Lighthouse run on?
It is a self-hosted PHP package for a Laravel or Lumen project.
How do I install Lighthouse?
The installation uses Composer: `composer require nuwave/lighthouse`.
Does Lighthouse include GraphiQL?
No. The installation documentation says GraphQL tooling such as GraphiQL is not included.
Does Lighthouse support authentication and authorization?
It supports standard Laravel authentication mechanisms, including Sanctum. Its `@can` directive family can use Laravel Policies to restrict field operations.
Can Lighthouse serve as a federation gateway?
No. Federation support is experimental, is not enabled by default, and cannot serve as a federation gateway.
Facts from Lighthouse's own pages
- Authentication
- It supports standard Laravel authentication mechanisms and can use Laravel Sanctum for API authentication. · lighthouse-php.com, 8 Oct 2026
- Authorization
- The `@can` directive lets Lighthouse use Laravel Policies to restrict field operations. · lighthouse-php.com, 8 Oct 2026
- Caching
- Parsed GraphQL queries can be cached using Laravel cache stores or local PHP files with OPcache. · lighthouse-php.com, 7 Oct 2026
- CRUD and relationships
- Built-in directives support operations such as creating records and resolving Eloquent relationships. · lighthouse-php.com, 7 Oct 2026
- CSRF mitigation
- The optional `EnsureXHR` middleware blocks GET requests and POST requests that can be created using HTML forms to mitigate CSRF attacks. · lighthouse-php.com, 8 Oct 2026
- Custom directives
- Developers can implement custom directives to add reusable behavior to schema definitions. · lighthouse-php.com, 7 Oct 2026
- Data access features
- Built-in directives support Eloquent relationships, pagination, and query constraints. · lighthouse-php.com, 8 Oct 2026
- Developer tooling
- The installation documentation says Lighthouse does not include GraphQL tooling such as GraphiQL and shows GraphQL Playground as a separate package. · lighthouse-php.com, 7 Oct 2026
- Eloquent
- It works with existing Eloquent models and creates optimized database queries out of the box. · lighthouse-php.com, 7 Oct 2026
- Federation limitation
- Federation support is marked experimental, is not enabled by default, and cannot serve as a federation gateway. · lighthouse-php.com, 8 Oct 2026
- GraphQL endpoint
- The default GraphQL endpoint is `/graphql`, and the docs say any GraphQL client can use it. · lighthouse-php.com, 8 Oct 2026
- Install
- The docs install Lighthouse in a project with Composer using `composer require nuwave/lighthouse`. · lighthouse-php.com, 8 Oct 2026
- Installation
- The tutorial installs Lighthouse in a Laravel project with Composer using `composer require nuwave/lighthouse`. · lighthouse-php.com, 7 Oct 2026
- Laravel and Eloquent
- It works on an existing Laravel application and uses Eloquent models to create optimized database queries. · lighthouse-php.com, 8 Oct 2026
- Laravel integration
- It builds a GraphQL server on top of an existing Laravel application and is designed to reuse Laravel concepts and code. · lighthouse-php.com, 7 Oct 2026
- Lumen support
- The docs explain how to configure Lighthouse for Lumen and note that its service providers must be registered individually because Lumen does not support auto-discovery. · lighthouse-php.com, 8 Oct 2026
- Pagination and validation
- Schema directives include pagination and Laravel validation for GraphQL fields and arguments. · lighthouse-php.com, 7 Oct 2026
- Persisted queries
- Automatic Persisted Queries are supported with Apollo compatibility and are enabled by default when query caching is enabled. · lighthouse-php.com, 7 Oct 2026
- Plugins and tooling
- The resources page lists plugins including Lighthouse Sanctum and a Redis broadcaster, and recommends GraphiQL and GraphQL Voyager packages. · lighthouse-php.com, 8 Oct 2026
- Purpose
- Lighthouse is a framework for serving GraphQL from Laravel. · lighthouse-php.com, 8 Oct 2026
- Schema approach
- It uses GraphQL Schema Definition Language to describe data and server-side directives to add functionality. · lighthouse-php.com, 7 Oct 2026
- Schema definition
- It uses GraphQL Schema Definition Language (SDL) and server-side directives to describe data and add functionality. · lighthouse-php.com, 8 Oct 2026
- Subscription limit
- Subscriptions do not expire automatically; the docs recommend configuring a storage TTL or using a Pusher channel existence webhook. · lighthouse-php.com, 8 Oct 2026
- Subscriptions
- GraphQL subscriptions can use the Pusher driver or Laravel Echo driver. · lighthouse-php.com, 8 Oct 2026
Where Lighthouse stands on Freedom251
- GraphQL Tools#17 of 32