konnec/vue-eloquent-api
Konnec Vue Eloquent API bridges Laravel Eloquent models and Vue front ends, exposing clean, query-ready JSON endpoints with filtering, pagination, and relation loading out of the box. Scaffold APIs faster and keep your Vue client in sync with your database schema.
Architecture fit
konnec/vue-eloquent-api is a thin integration layer intended to expose Laravel Eloquent models directly to a Vue frontend — conceptually a shortcut that replaces hand-written API Resources, controllers, and client-side fetch wrappers with package-generated conventions. It fits only a specific shape of application: a Laravel-backed JSON API consumed by a Vue SPA (or Vue components embedded in Blade) where the team has already standardized on Eloquent as the domain layer and does not need a separate BFF or GraphQL boundary. It is a poor fit for multi-consumer APIs (mobile, partner integrations), for teams using API Platform/OpenAPI-first design, or where the frontend is decoupled from Eloquent's schema naming.
Integration feasibility
Mechanically low-effort: composer require, publish config, register a service provider, and wire the Vue side. There is no infrastructure dependency (no queue, no external service, no schema migration expected). The real cost is not installation but validation — confirming what it actually generates, what routes it registers, and whether its output composes with the existing JsonResource / FormRequest / policy layer or bypasses it.
Technical risk High, and concentrated in provenance rather than code:
composer.json constraint that lags Laravel releases converts this into an upgrade blocker within 12–18 months.Key questions
JsonResource/ResourceCollection, or does it demand exclusive ownership of the API surface?Stack fit Appropriate only for a Laravel + Vue monorepo-adjacent setup where the same team owns both ends and the model layer is treated as the contract. If our frontend is TypeScript-strict, check whether the generated client ships types; if not, we absorb that cost. Confirm the Vue major version before anything else — a Vue 2-only client is a non-starter on a Vue 3 codebase.
Migration path Do not rip out existing resources. Introduce it as an additive path behind our own seam:
JsonResource.This is the single highest-leverage decision in the assessment. Given the adoption signals, the package should never become load-bearing.
Compatibility
Verify against composer.json constraints and run an install in a scratch branch against our exact PHP/Laravel pair before any design work. Check for collisions in route registration and service-provider boot order. If we already use Laravel's resource layer, confirm the two can coexist — most failures here are not bugs but duplicate ownership of the same concern.
Sequencing
Maintenance Budget for owning it. With 0 dependents and 2 stars, upstream fixes for our specific issues are unlikely to arrive on any timeline we control. Practical posture: pin an exact version, vendor or fork, and assign a named owner. Track upstream commits monthly; assume the fork becomes canonical.
Support No community, no SLA, no documented escalation. Internal knowledge will live with whoever ran the spike — force that into written runbook form during the pilot, not after.
Scaling The package itself is not a scaling bottleneck; the queries it generates are. Watch for N+1 across relationship serialization, unbounded payloads on models with many columns, and missing pagination defaults. Instrument query counts per endpoint in the pilot and compare against the hand-written baseline. If it serializes whole models by default, response size grows with schema, not with UI need — a real cost at scale.
Failure modes
Ramp-up Low learning curve — the concept is familiar to any Laravel/Vue developer — but the effective ramp-up includes reading the source, since documentation for a package at this adoption level is likely thin or stale. Plan for half a day of source reading per engineer, and treat the spike output as the real documentation.
Recommendation Pilot only, behind an abstraction seam, in a non-critical internal surface, with an explicit fork-and-own decision at the end of the first sprint. The score and adoption signals do not support treating this as a standard dependency; they support treating it as a code sample we are evaluating for adoption into our own codebase.
How can I help you explore Laravel packages today?