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

balajidharma/laravel-reaction

Add like, love, and custom reactions to Laravel Eloquent models with balajidharma/laravel-reaction. Simple traits and APIs let you attach reactions, count them, and check user reactions, making engagement features easy to integrate.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on engagement features. Reactions (like/love/clap/etc.) on user-generated content are commodity functionality. Building in-house means a polymorphic reactions table, per-user uniqueness constraints, toggle/un-react semantics, configurable reaction types, and the tests around all of it — roughly 1–2 engineer-weeks plus permanent maintenance. This package compresses that to days of integration. v2.0.1's Laravel 13 support is the signal that this stays a buy rather than a build for the next platform cycle.
  • Platform upgrade sequencing. A 1.0.6 → 2.0.1 jump alongside "Add Laravel 13 support" is a major-version bump. That makes this a gate on the Laravel 13 upgrade roadmap: we can only move the app forward once this dependency (and its siblings) has a 13-compatible release. Treat it as a checklist item in the upgrade epic, not a background detail.
  • Feature roadmap: engagement surface. Enables shipping reactions on posts, comments, reviews, articles, or internal content without a dedicated squad. Common candidates: community/UGC products, knowledge bases, internal social feeds, marketplace listings, support threads.
  • Scope boundary decision — make it explicitly. The package stores and queries reactions; it does not give you denormalized counters, cached counts, trending/ranking, or notification fan-out. Decide now whether the aggregation layer is (a) in scope for the same milestone or (b) deferred. Under-scoping this is the most common way this dependency disappoints.
  • Analytics and data-model decisions. Co-locating all reactions in one polymorphic table gives a single source of truth for "what content gets reacted to and with what mix," which is materially cheaper to instrument for engagement dashboards than per-entity counters scattered across tables.
  • Risk posture. Single-maintainer OSS dependency handling a non-differentiating feature. Acceptable risk because the blast radius is small: the data lives in our database and the abstraction is thin, so exit cost is low. That trade-off should be recorded, not assumed.

When to Consider This Package

Adopt when:

  • You need a standard, configurable reaction set attached to Eloquent models and don't want to own polymorphic relation code.
  • You are on a supported Laravel version, or are actively planning the Laravel 13 upgrade — v2.0.1 is the version that keeps this dependency from blocking that move.
  • The team is small and the feature is not a differentiator; integration speed beats bespoke control.
  • Your reaction semantics are simple: one reaction per user per subject, toggleable, enumerable in config.

Look elsewhere (or build) when:

  • You need high write volume — millions of reactions per day — with denormalized counters, cache-coherent totals, and hot-path reads. That requires an architecture this package deliberately doesn't provide.
  • You need real-time reaction streams, live counts, or feed-ranking integration.
  • You need reactions on non-Eloquent or event-sourced data.
  • You require vendor support SLAs, a security response commitment, or a named maintainer team.
  • You're pinned to an older Laravel major — the 2.x line follows Laravel 13 and should be assumed to drop earlier framework versions. Stay on 1.0.6, pin it, and don't let the upgrade ride along silently in a composer update.

Before adopting v2.0.1 specifically: confirm the supported Laravel/PHP matrix in the 2.x release notes rather than inferring it from a one-line changelog, and verify whether any breaking changes accompanied the major bump. A bare "add Laravel 13 support" note on a major version is the exact case where you read the full changelog and diff before merging.

How to Pitch It (Stakeholders)

To executives: This is a low-cost way to put an engagement feature on the roadmap without adding headcount or a quarter of engineering time. It's a commodity capability — we're buying speed, not strategy. Risk is contained and reversible: reaction data lives in our own database, and if the package is ever abandoned, replacing it is a short, well-bounded task. The v2 release also means this won't be the thing that stalls our Laravel 13 platform upgrade.

To engineering: Actively maintained and now targeting Laravel 13 — a good sign for a small package. Integration is a trait plus a migration, so it stays out of the way. Two things to own on our side: (1) treat the 1.x → 2.x move as a real major-version upgrade — verify the framework support matrix and breaking changes before bumping; (2) the aggregation, caching, and counting layer above it is ours, not theirs. Keep the abstraction thin and the exit path obvious.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
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