Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Flora Laravel Package

qruto/laravel-flora

A lightweight Laravel package that adds expressive filtering, sorting, and searching to Eloquent queries. Flora helps you build clean, maintainable API endpoints and data tables with minimal code, keeping controllers and models simple and readable.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: Flora is a developer-experience / scaffolding tool, not a runtime library. It is invoked via an artisan command, sits entirely outside the request lifecycle, and its only durable artifacts are composer.json/composer.lock mutations and any published config. That means the architectural blast radius at runtime is effectively zero — it can be adopted or removed without touching application code. Fit is strongest for greenfield Laravel projects and for standardizing a "blessed" package set across a team; it is weak for mature applications where the package set is already deliberate and reviewed.

Integration feasibility: High on paper — one composer require --dev line and one artisan invocation. The friction is environmental rather than conceptual: interactive prompts, network access to the registry, and the fact that it shells out to Composer means it inherits whatever Composer context it is given (PHP version, auth, platform requirements). It needs to be evaluated in a throwaway branch with a clean git tree.

Technical risk:

  • Supply chain: The tool itself is small, but its behavior is to pull in a curated set of third-party packages. You are trusting the maintainer's judgment on that set, and every run expands the dependency surface. Mitigate by reviewing the resulting composer.json diff as a required gate.
  • Maintenance risk: 130 stars, last release 2024-04-13, and a single-maintainer pattern. Laravel ships a major roughly annually, so compatibility drift is likely rather than hypothetical. The 1.33 score corroborates this.
  • Determinism: Default installs may resolve to "latest," producing machine-to-machine and run-to-run drift. This is the most under-appreciated risk for a tool whose entire value proposition is "one command."
  • Abandonment: If abandoned, the tool keeps working until a Laravel/PHP incompatibility. Exit cost is low, which caps the downside — you delete a dev dependency and keep the packages.

Key questions:

  • Which Laravel and PHP versions are supported, and is there a CI test matrix? Does it support the current Laravel major?
  • What exactly is in the default package set, and can it be customized or version-pinned?
  • Is there a genuinely non-interactive mode (flags, --no-interaction) suitable for containers and CI?
  • What does flora:update actually do — a scoped update or a broad composer update — and is there a dry-run or diff preview?
  • Is there a config file to pin versions, or does it always pull latest?
  • Does it mutate anything beyond Composer files (.env, config, service providers), and is that reversible?
  • Maintainer responsiveness and bus factor; are there active forks?

Integration Approach

Stack fit: Laravel 8+/PHP 8.x projects as a dev dependency only. Explicitly exclude it from production images, deploy pipelines, and anything that auto-commits. Treat it the same as Pint or a dev-only profiling tool.

Migration path: Do not retrofit mid-flight on an active service. Two viable paths:

  • Greenfield: Evaluate on a spike repo, capture the full Composer delta, and if accepted, bake the post-Flora state into your internal starter/template repo so new services are deterministic. Flora becomes a one-time input, not a standing dependency.
  • Existing apps: Skip the install. Use the repository only as a reference catalog of the maintainer's package picks, and apply them manually via PR so each addition gets an explicit review.

Compatibility: Pin an exact version in require-dev with a committed lock, verify its composer.json constraints against your Laravel and PHP versions before adoption, and re-check against each Laravel major. Because it is dev-only, conflicts surface in dev/CI rather than production — but when they surface, they break installation for the entire project, since it edits the root composer.json.

Sequencing:

  1. Spike: Fresh Laravel app + flora:install on a disposable branch; capture the full Composer diff, published config, and any non-Composer file mutations.
  2. Review: Security and license scan on the delta; decide which of the auto-added packages you actually want and which to drop.
  3. Templatize: Promote the approved end-state into your starter template rather than having every developer run Flora ad hoc.
  4. Optional: Retain Flora only as an "update review" aid for the maintainer-owned set, gated behind a PR with human approval.
  5. Re-evaluate: Re-assess in two quarters against Laravel's next major.

Operational Impact

Maintenance: This is the dominant cost and the deciding factor. Low stars, a single maintainer, and a release that is already stale against Laravel's ~annual major cadence mean you should plan for pinning or forking indefinitely. Because it is a thin artisan wrapper rather than deep framework code, a fork is cheap — budget a small recurring (quarterly) check that it still installs cleanly on the current Laravel major.

Support: Community-only, best-effort, no SLA. Assign a single internal owner (dev-experience/platform engineer), not the whole team. Document the "why" in the repo, since the tool deliberately obscures what it installs — the next engineer will not know where those twelve packages came from.

Scaling: Scales fine along the number of developers axis — one extra dev dependency, negligible CI cost. It scales poorly along the number of projects axis if everyone runs it locally, because each invocation resolves fresh versions and produces divergent composer.lock files. That is the real operational trap: it trades initial speed for long-term drift. The fix is to re-run the command in exactly one place (template generation) and never per-environment.

Failure modes:

  • Interactive prompt hangs in a non-TTY CI runner → job timeout. Forbid Flora in CI or enforce a non-interactive mode.
  • Registry/network failure mid-install → partially mutated composer.json. Require a clean git tree and a diff review; never run it in a step that auto-commits.
  • Version conflict between an auto-added package and existing root constraints → whole-project install failure, since it edits the root manifest.
  • Silent scope creep → the default set pulls packages with their own transitive dependencies; supply-chain exposure grows without a recorded decision.
  • Broad update behavior → flora:update can move multiple minor/major versions unreviewed if it delegates to a full Composer update.
  • Upstream abandonment → hard failure only at the next Laravel major; exit cost is low.

Ramp-up: Very low for an individual developer comfortable with artisan (sub-hour). The real ramp-up is organizational, not technical: teams must learn what the command actually does, because it hides a multi-package install behind a single verb. That is a code-review and governance practice problem more than a training one.

Net read: Low-risk, low-ceiling tool. Use it as an evaluation input and a one-time template generator; do not make it a standing dependency in developer workflows or CI.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox