- What is Scribe used for in Laravel?
- Scribe is a dev-time Laravel package that generates API documentation for humans from your codebase. It produces a pretty single-page HTML doc with code samples and a Try It Out tester, plus Postman collections and OpenAPI v3.0.3 or v3.1.0 specs. It can extract parameters from FormRequests or validation rules and generate sample responses from API Resources or Transformers.
- How do I install Scribe in a Laravel project?
- Install it as a Composer dev dependency, publish config/scribe.php, and run php artisan scribe:generate. Then publish the generated output. Scribe does not sit in the runtime request path, so there is no production runtime footprint.
- Does Scribe support Laravel 13 and PHP 8.4?
- Recent release notes show active investment in Laravel 13 compatibility and PHP 8.4 support. Check the exact package version and changelog for your supported Laravel and PHP matrix before upgrading. This is particularly relevant if you are planning a major Laravel upgrade.
- How does Scribe extract request parameters from FormRequests and validation rules?
- Scribe reads FormRequests or validation rules to infer request parameter details. For codebases that hide request shapes behind custom DTO layers, you may need explicit BodyParam, QueryParam, or Response attributes. The extraction quality depends on how idiomatic your Laravel conventions are.
- Can Scribe generate OpenAPI and Postman collections?
- Yes. Scribe generates an OpenAPI spec, with support for v3.0.3 or v3.1.0, and also exports a Postman collection. Treat the OpenAPI output as a contract only after validating it, because precision depends on annotations and response-call configuration. For SDK generation or gateway import, plan extra annotation and spec-validation work.
- Are Scribe response calls safe to run in production?
- Do not point response calls at production unless you have explicitly made them safe. Scribe can call endpoints to capture sample responses, and those calls can mutate data or require credentials in the wrong environment. Use a safe staging environment and service account, or start with static extraction only.
- How do I run Scribe in CI and host the generated docs?
- Add Scribe generation as a single build step in your Laravel CI pipeline. The package has no runtime footprint, and generated HTML can be hosted on S3, GitHub Pages, or an internal developer portal. If response calls are enabled in CI, ensure the target environment is safe and credentials are scoped.
- When is Scribe a poor fit for a Laravel codebase?
- Scribe is a weak fit when request and response shapes are hidden behind custom DTO layers, non-standard transformers, or multi-service aggregation. It is strongest for idiomatic Laravel monoliths or a small number of Laravel services using FormRequests and API Resources. In less conventional codebases, expect to invest in annotations, custom extraction strategies, or static endpoint definitions.
- How is Scribe maintained and what risks should I consider?
- Scribe is MIT-licensed, widely starred, and actively released, with a documented 5.0 migration path. The main maintenance risk is concentration around a single primary maintainer, though release cadence and community PRs mitigate that. Ignore dependents metadata like zero as an adoption signal without a pilot.
- What is a safe migration path from manual API docs to Scribe?
- Start with a low-risk pilot: install Scribe as a dev dependency, generate docs for representative endpoints with response calls disabled, and compare against your current documentation source. If you already use manual Markdown, Postman collections, or Swagger-PHP annotations, avoid a big-bang migration and migrate endpoint groups incrementally. For non-Laravel services, keep a separate OpenAPI source rather than forcing Scribe to cover them.