larafast/fastapi
A Laravel package for quickly scaffolding API endpoints and resources, reducing boilerplate so you can build JSON APIs faster with familiar Laravel conventions and tooling.
Architecture fit. larafast/fastapi is a dev-time Laravel code generator: an Artisan command that scaffolds models, CRUD API controllers, and API resources. Architecturally this is low-blast-radius — it emits plain PHP files into the application repository and has no runtime footprint. It fits any conventional Laravel monolith or API service that has not standardized on a different architectural pattern (DTOs, actions, repositories, CQRS). It does not fit teams with strong in-house conventions, because the value proposition is "accept our template," and stale templates become a source of drift rather than leverage.
Integration feasibility. Mechanically trivial: composer require larafast/fastapi (ideally --dev), publish config/stubs, run the generator. The real friction is semantic, not mechanical — the generated output must be reviewed against team standards for validation (FormRequests), authorization (policies/gates), pagination/filtering, mass-assignment safety, and test coverage. The package name collides with the Python FastAPI framework, which is a real discoverability and documentation red flag.
Technical risk. High, and concentrated in provenance rather than runtime:
--ignore-platform-reqs or a fork.Key questions. Which Laravel/PHP versions are actually supported? Does it generate FormRequests, policies, and tests, or only the happy-path controller/resource? Does it emit routes, migrations, and factories? Are stubs publishable/customizable? Is the license permissive enough to fork and vendor? What is the measured time saved per endpoint versus make:model -mcr plus make:resource?
Stack fit. Suitable only as a require-dev convenience on a Laravel 9/10 codebase where the team has no existing scaffolding convention. On Laravel 11+ or on any codebase with an established generator (Blueprint, InfyOm, Apiato, or an internal command), it is redundant.
Migration path. Excellent exit story: because output is committed source, removing the package is a composer remove with no data or runtime migration. The residual cost is auditing already-generated code, not untangling a dependency. This asymmetry — cheap to try, cheap to abandon — is its only strong argument.
Compatibility. Verify the composer.json Laravel/Illuminate constraint ceiling before committing. Expect it to lag. If it requires patching, you have implicitly forked it, which changes the ownership model entirely.
Sequencing.
require-dev, document the stub-ownership model, and assign an owner.Maintenance. Upstream is effectively unmaintained; adopting it means the team owns the templates. Budget a half-day per Laravel major upgrade to validate or patch the generator. Without an assigned owner, it silently rots and starts producing non-conforming code — a worse outcome than no generator.
Support. None beyond the repository. No paid tier, no SLA, no security advisory channel. Treat any discovered issue as internal work.
Scaling. Code generation scales linearly with team size only if the templates are the single source of truth for conventions. With a stale third-party generator, scaling produces divergence: newer engineers copy generated patterns that no longer match house style, and review burden increases. Small teams benefit; large teams need an owned generator.
Failure modes.
Model::preventLazyLoading, typed resources).Ramp-up. Hours for any Laravel developer: one Artisan command and a config file. The hidden cost is unlearning and cleanup — reviewing and correcting generated scaffolding per endpoint can consume more time than writing it, particularly if the output is 60% right. Net productivity gain is plausibly negative for teams with existing conventions and plausibly modest-positive for greenfield teams without them.
Recommendation. Do not adopt as a platform dependency. Run the two-day spike only to mine the stubs for an internal generator; otherwise rely on native Artisan scaffolding (make:model -mcr, make:resource, make:request) or Blueprint. The package's score, staleness, and zero dependents collectively indicate low strategic opportunity — the correct TPM decision is a documented "no" with a lightweight reference-review, not an integration.
How can I help you explore Laravel packages today?