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

Expo Laravel Package

laravel-notification-channels/expo

Laravel notification channel for sending push notifications through Expo. Add Expo push support to your Laravel app using familiar notification classes, with token handling and customizable message payloads.

View on GitHub
Deep Wiki
Context7

Expo Notifications Channel for Laravel

Frequently asked questions about Expo
How do I install the Expo notification channel in a Laravel app?
Run composer require laravel-notification-channels/expo. The service provider is auto-discovered, so no manual registration is required. Then add a routeNotificationForExpo() method to your Notifiable model that returns the user's Expo push token, and add expo to the via() array of the notification class.
Which Laravel and PHP versions does this package support?
The channel is built for modern Laravel applications using the native notification system, and the typical stack fit is Laravel 9 through 12 on PHP 8.1 or newer. Exact version constraints are defined in the package's composer.json and should be checked before upgrading. Treat compatibility claims as unverified until you confirm them against composer.json and your lock file.
How do I send a push notification to an Expo token?
Create a standard Laravel notification class and return expo from its via() method. Define a toExpo() method that builds and returns the Expo message, and implement routeNotificationForExpo() on the notifiable model to supply the device token. The channel then delivers the message through Expo's push API.
Can I customize the payload with title, body, data, sound, badge, or channelId?
The message object supports common Expo push fields such as title, body, data, sound, badge, and Android channel identifiers, so payloads are customized inside the toExpo() method. Support for every newer Expo field, including access-token security options, should be verified against the package source for your installed version. Keep payload data small and avoid putting sensitive information in push content.
Does the package remove unregistered or invalid Expo tokens automatically?
No. The channel is transport-only and does not manage your device-token table. Expo reports problems such as DeviceNotRegistered in send responses and receipts, so your application should inspect those responses, delete stale tokens, and stop sending to them. How errors are surfaced by this channel specifically should be confirmed in the source or tests.
Does it support Expo push receipts, or only the send endpoint?
The channel focuses on sending notifications to Expo's push endpoint; receipt polling is generally left to application code. A successful send means Expo accepted the message, not that the device received it. For reliable delivery tracking, add a job that queries the receipts endpoint and reconciles the results.
Does it batch messages up to Expo's 100-per-request limit?
Batching is not documented as a feature of this channel, and it likely issues one HTTP call per notification token. If you send high volumes, check the source or profile a test run before assuming Expo's batch limit is used. For large audiences, consider queuing and chunking sends in your own application code.
Does the channel support Expo access tokens for enhanced push security?
Enhanced push security with Expo access tokens is an open question for this package and is not clearly documented in the overview. Verify support in the package source and the Expo API version you target before relying on it in production. If it is unsupported, you may need to extend the channel or send those requests directly.
Should I queue Expo push notifications with ShouldQueue?
Yes. Implementing ShouldQueue on the notification class is the standard approach so push delivery happens on your existing queue workers rather than during the request. The Expo channel composes with other channels, so the same notification can also write to the database or send mail. Make sure your queue retry and failure handling will not spam devices with duplicate pushes.
Is laravel-notification-channels/expo production-ready and maintained?
It is a small package in the laravel-notification-channels family with thin adoption signals, roughly 69 stars and no reported dependents, so bus factor and release cadence are the main risks. Version 2.5.0 is a dependency-constraint release that widens Guzzle support, which suggests a maintainer is present but does not establish a support policy or roadmap. It is reasonable for low-risk push delivery, but pin the version, review the source, and be prepared to fork or wrap the channel if Expo's API changes.
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.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections