francescomalatesta/laravel-amplitude
Laravel Amplitude provides a simple integration for sending analytics events from Laravel applications to Amplitude, with a clean API for tracking user activity and custom events.
identify vs. track) conventions in one place rather than scattering ad-hoc HTTP calls across controllers. That's a low-cost forcing function for a data contract you'll need regardless of vendor.Consider it when all of the following hold:
app/, or accept that you are the maintainer. With 12 stars and an old Laravel-era footprint, expect zero upstream support and likely incompatibility with Laravel 10/11+ without patches.Look elsewhere — or write ~150 lines yourself — when:
To executives (one paragraph): We evaluated a small open-source Laravel package for sending backend events to Amplitude. The strategic value is not the package — it's the capability: today our funnel metrics depend on browser events we know under-count asynchronous activity like payments and renewals. Establishing a server-side event path lets us trust activation and retention numbers before we use them to prioritize the roadmap. Recommendation: fund a 1–2 day engineering spike using this package as a reference, and decide separately whether we standardize on Amplitude direct or add a routing layer. Do not take a long-term dependency on this specific package — it is unmaintained (12 stars, low health score), and the cost to build the equivalent is trivial. This is a small, low-risk decision that unblocks a high-value one.
To engineering (short): Thin Laravel service provider + facade over Amplitude's HTTP ingestion API. Two risks: (1) it's unmaintained and likely predates the current Amplitude API version and modern Laravel — verify endpoints and framework compatibility before adopting; (2) no queueing, retry, batching, or failure observability, so events vanish silently on 4xx/5xx or timeouts. Suggested path: vendor the ~150 LOC into app/ (or a first-party Analytics service) behind an interface, dispatch via queued jobs with retries and an idempotency key, and add a test-mode/no-op driver so we can assert events in feature tests. Keep the interface destination-agnostic so swapping in Segment or a warehouse loader later is a config change, not a refactor. Treat the package as a spec, not a dependency.
How can I help you explore Laravel packages today?