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 Vote Laravel Package

overtrue/laravel-vote

Add voting and rating to Laravel Eloquent models with overtrue/laravel-vote. It provides polymorphic vote relationships, upvote/downvote support, vote totals, and simple traits to attach voting to users and any model, making community feedback and ranking easy to implement.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for engagement features. overtrue/laravel-vote provides a ready-made polymorphic voting/upvote/downvote layer for Eloquent models. It is directly relevant to any roadmap item involving likes, upvotes, reactions, karma, "helpful" signals, or community curation, letting product defer a custom build.
  • Feature scoping for community and content products. Supports prioritization of upvoting on comments, posts, Q&A answers, reviews, or internal feedback boards without designing schema and aggregation logic yourself.
  • Roadmap timing for the Laravel 13 upgrade. The 4.0.0 release adds Laravel 13.x support, so teams planning a framework upgrade can keep voting functionality on the supported path rather than forking or freezing the dependency.
  • Platform baseline decisions. The PHP 8.2 minimum and dropped Laravel 9 support make runtime modernization (PHP upgrade, EOL framework retirement) a prerequisite for adoption — a cross-cutting decision that affects the whole application, not just this feature.
  • Make vs. maintain. Since it's a thin, single-purpose package with an active release cadence, it shifts effort from "write voting logic" to "integrate and style voting UX," which is the higher-value work for product.
  • Risk triage. A major-version bump with only framework/PHP constraint changes (no API redesign) signals low migration effort — useful when deciding whether to upgrade now or defer.

When to Consider This Package

Adopt when:

  • You are on Laravel 10.x–13.x and PHP 8.2+ (the current supported matrix).
  • You need generic, model-agnostic voting (any Eloquent model can be voted on) rather than a one-off likes column.
  • You want upvote/downvote semantics, vote toggling, and per-user vote state handled consistently across features.
  • You want to avoid owning schema migrations, aggregation queries, and edge cases (duplicate votes, vote changes) for a commodity interaction.
  • The team values a small, focused dependency over a heavyweight engagement/social platform.

Look elsewhere or build in-house when:

  • You are still on Laravel 9.x or PHP < 8.2 — 4.0.0 is a hard breaking change; you'd be pinned to 3.4.x with no forward path.
  • You need rich reactions (emoji sets, weighted scoring, sentiment), real-time counters, or feed-ranking algorithms — this is a vote primitive, not a ranking or reactions engine.
  • You need audited, compliance-grade moderation trails for votes, or complex anti-abuse/rate-limiting rules baked in.
  • You require a vendor-supported SLA; this is a community package, so bus-factor and long-term maintenance should be weighed.
  • Your voting model is trivially simple (a single boolean flag) where a dependency adds more surface area than it saves.

How to Pitch It (Stakeholders)

For executives: We can ship engagement features — upvotes, "helpful" signals, community curation — in days instead of weeks by using a maintained, single-purpose Laravel package rather than building voting logic ourselves. The new 4.0.0 release keeps us aligned with current Laravel (through 13.x) and PHP 8.2+, so adopting it now avoids a rewrite later. The main commitment is upgrading our runtime baseline: PHP 8.2+ and Laravel 10+ are required.

For engineering: 4.0.0 is a maintenance-oriented major release. There are no API or behavioral changes to the voting domain — the breaking changes are purely environmental: PHP 8.2 minimum and Laravel 9 dropped (EOL). It adds Laravel 13 support, refreshes the CI matrix (PHP 8.2/8.3/8.4), widens test-tooling constraints (Testbench, PHPUnit 11/12, Mockery), and applies Pint code style.

Recommended action: Upgrade to 4.0.0 if we are already on PHP 8.2+ and Laravel 10+. Treat the PHP/Laravel baseline bump as the gating item in the upgrade plan, verify our test suite against the widened PHPUnit constraint, and confirm no transitive dependency still pins PHP < 8.2. If we remain on Laravel 9, stay on 3.4.x only as a short-term bridge with a dated exit plan. Post-migration, run a focused regression on vote toggling and per-user vote state, then proceed with integration.

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.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus