// the find
expo/expo-server-sdk-node
Server-side library for working with the Expo push notification service using Node.js
Official Node.js SDK for sending push notifications through Expo's push service. Handles batching, chunking, and receipt polling which are the annoying parts of working with Expo's API. Aimed at backend developers building mobile apps with Expo/React Native.
- Chunking and batching helpers are genuinely useful - Expo's API has payload size limits and this handles that bookkeeping for you
- TypeScript types are included and the codebase is small enough (~2 files of substance) that you can read the whole thing quickly if something breaks
- Receipt handling is documented clearly in the README with the two-phase ticket→receipt flow explained, which trips up most people the first time
- Actively maintained by the Expo team with renovate auto-updating deps and a real CI pipeline
- No retry logic or backoff built in - if Expo's service returns a 5xx or rate limit, you're on your own to implement that
- Receipt polling is your problem entirely; the SDK gives you the tools but there's no scheduler or queue abstraction, so you'll write the same cron job boilerplate everyone else writes
- The token validation via isExpoPushToken is a regex check only - it won't catch tokens that have been invalidated server-side until you go through the full send+receipt cycle
- Error handling in the README examples uses console.error as placeholders, which will mislead junior devs into shipping code that silently swallows DeviceNotRegistered errors instead of cleaning up stale tokens