sinemacula/laravel-sse
A Laravel package for Server-Sent Events (SSE) that makes it easy to stream real-time updates from your app to browser clients. Simplify live notifications, progress updates, and event broadcasting with minimal setup.
Real-time UX without a WebSocket tier. This package provides first-class Server-Sent Events responses in Laravel, which lets you ship one-way live updates (notifications, job progress, dashboards, log tails, AI token streaming) over plain HTTP. The product decision it unlocks is "do we need bidirectional real-time or just server→client push?" — if the answer is push-only, SSE removes the need to stand up and operate a WebSocket service (Pusher/Ably/Reverb), which is typically a multi-week build plus ongoing infra and vendor cost.
Build vs. buy vs. adopt. The alternative is hand-rolling text/event-stream responses in a controller — doable in ~50 lines, but the fiddly parts (correct headers, data:/event:/id:/retry: framing, multi-line payload chunking, proxy buffering pitfalls, connection teardown) are exactly where homegrown implementations rot. This package converts that into a supported dependency, which is a good trade when SSE is incidental to your product rather than core.
Roadmap signal: Laravel 13 support (v1.1.0). This is the release's only change, and for a PM it is the most decision-relevant kind of release: it tells you the maintainer is tracking framework majors and intends the package to survive your next Laravel upgrade. Concretely it means (a) the package is viable for teams planning or running a Laravel 13 upgrade in the next 6–12 months, and (b) you can put it on a roadmap that spans a framework upgrade without scheduling a replacement project. It also gives you a support-window data point when comparing against alternatives that lag behind new Laravel majors.
Use cases to evaluate against your backlog: live status/progress for long-running jobs (queues, exports, imports), in-app notification bells without polling, streaming LLM/completion output, ops dashboards and tail views, and cheap "poll replacement" for read-only feeds. Notably not chat, collaborative editing, or anything requiring client→server messages — those remain WebSocket territory.
Scope check. The release contains no new API surface, no deprecations, and no breaking changes, so it does not change the functional fit of the package — only its longevity. Do not let it reprioritize feature work; treat it as a dependency-health update.
Adopt when most of these hold:
max_execution_time, load balancer idle timeouts, and whether you need X-Accel-Buffering: no in front of nginx).Look elsewhere when:
To executives: We're evaluating a small open-source Laravel add-on that lets our web app push live updates to users over ordinary HTTP instead of standing up a separate real-time messaging service. That substitutes a recurring vendor/infra line item and a multi-week build with a low-cost dependency. Its new v1.1.0 release adds support for the next major Laravel version, which is the signal we care about: the maintainer is keeping pace with the framework, so adopting it won't create an upgrade trap a year from now. Cost is minimal; the main commitment is engineering discipline around long-lived connections in our hosting setup.
To engineering: sinemacula/laravel-sse gives us SSE responses in Laravel's response pipeline. v1.1.0 is a compatibility release — Laravel 13 support only, no API changes, no deprecations, no breaking changes — so it's a safe minor bump with no migration work. Before we standardize on it, we should validate: (1) it supports our current Laravel version, not just 13; (2) our web server and any CDN/proxy are configured to disable response buffering and allow long idle connections; (3) our FPM worker pool and timeouts can absorb the expected concurrent stream count, or we run it under Octane; (4) we wrap it behind a thin internal interface so the dependency stays replaceable. If those check out, it's a reasonable build-vs-adopt trade for push-only features.
How can I help you explore Laravel packages today?