toneflix-code/social-interactions
A Laravel package for adding social interactions to your models. It provides likes, comments, follows, bookmarks and reactions out of the box, with polymorphic relationships, configurable models and simple traits you can drop into any Eloquent model.
toneflix/social-interactions is a drop-in Laravel package for the "social graph" mechanics most products eventually need (likes/reactions, follows, and related interaction records). The PM decision it unlocks: do we spend sprint capacity building polymorphic like/follow tables, counters, and pivot integrity ourselves, or adopt a maintained package and spend that capacity on differentiating features? For most teams the differentiator is what gets liked and why, not the join table underneath it.Adopt when:
toneflix-code → toneflix) and namespace change suggest an actively reorganizing maintainer, which is a maintenance risk to record, not a blocker.Look elsewhere or build in-house when:
Migration note for stakeholders: 2.0.0 requires composer remove toneflix-code/social-interactions then composer require toneflix/social-interactions:^2.0, followed by replacing the ToneflixCode\SocialInteractions namespace with Toneflix\SocialInteractions in imports, published config, and any local overrides. Treat this as an engineering task with a scheduled window, not a routine composer update.
To executives: We can ship engagement features — likes, follows, reactions across posts, products, and profiles — in days instead of weeks by adopting a small, single-purpose Laravel package rather than building and maintaining the underlying data model. It's a commodity component, not a differentiator, so buying it redirects engineering time to what customers actually notice. The catch: the new 2.0 release is a maintenance-only release — no new features, just a rename and a requirement that we be on the newest Laravel and PHP. There is no product value in upgrading on its own; we should upgrade when we do the framework upgrade, and bundle it there. The package is maintained by a single vendor that recently renamed itself, so we should adopt it with an explicit exit plan.
To engineering: Adopt as a narrow dependency behind our own interaction service/interface so the namespace rename is a one-file change, not a codebase-wide search. Pin the version. Prefer 2.x only once Laravel 12/13 and PHP 8.3+ are in place; on older frameworks the package stops at 1.1.1, which is now a dead-end branch — that constraint should be visible in the platform roadmap. Verify the migrations' index coverage and counter performance against our expected interaction volume before launch, and confirm the published config and any overridden models survive the namespace change. Budget the upgrade as a discrete ticket with a test pass over interaction creation, deletion, and any aggregated counts, since the release carries no feature changes to justify regression risk.
How can I help you explore Laravel packages today?