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

Nativephp Sms Reader Bridge Laravel Package

sparkworldke/nativephp-sms-reader-bridge

NativePHP SMS Reader Bridge integrates NativePHP with Laravel to let your app read SMS messages from the device inbox. It provides a straightforward API for querying messages and building SMS-powered features such as verification, notifications, and message-based workflows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict: Functionally well-scoped and Laravel-idiomatic, but adoption is gated by two non-code risks: the package is not yet installable from Packagist by its own release note, and the Android permissions it depends on are Google Play–restricted. Neither is a code-quality problem; both are program-level decisions.

Architecture fit

  • A facade (SmsReader::getMessages(), getMessagesForSenders()) plus an SmsReceived event is the correct shape — device capability expressed as idiomatic Laravel calls and a framework event. Minimal conceptual overhead for a Laravel team.
  • Thin bridge over the Android SMS content provider. The package does not own storage or persistence, so data lifecycle and privacy obligations stay with the consuming app. That is the right boundary, but it also means the package offers no compliance assistance.
  • Android-only by necessity: there is no public iOS SMS-reading API. Any roadmap assuming cross-platform parity is invalid at the outset.
  • JS bridge plus TypeScript definitions is a genuine DX win for NativePHP's hybrid model — PHP-side invocation and JS-side event delivery is exactly the seam where these bridges usually become awkward.
  • Architecture is inherited from the upstream fork rather than designed for this support matrix. Acceptable, but the maintenance surface is now the sum of upstream drift, NativePHP drift, and Android drift.

Integration feasibility

  • Install is currently aspirational — "after the package is submitted on Packagist." Until then this is a path/vcs Composer repository entry, fine for a spike, not fine for shared CI.
  • Surface area is small (2 methods, 1 event, 7 folder filters, 4 query filters). A technical spike is measured in hours.
  • Runtime READ_SMS/RECEIVE_SMS handling is included, which eliminates the most common half-finished-Android-permission failure. Strong signal.
  • Declaring Laravel 11/12/13 and NativePHP Mobile 3/4 is forward-looking. Laravel 13 and NativePHP 4 are not both generally available; absent a visible CI matrix, treat upper bounds as untested claims and pin to what you personally verify.

Technical risk

  • Highest — Google Play restricted permissions. READ_SMS and RECEIVE_SMS are among the most tightly controlled Android permissions; grants are effectively limited to default SMS handlers and a narrow exception list. A general-purpose app that reads SMS will be rejected on submission. Resolve the distribution channel before writing code.
  • Privacy/compliance. Message bodies carry OTPs, 2FA codes, banking alerts, and PII. Handling pulls in GDPR/CCPA obligations, Play Data Safety declarations, and a credible retention story. OTP interception is also a recognized fraud pattern — expect security review scrutiny.
  • Fork/single-maintainer risk. No vendor, no SLA, no published support window. Budget for owning this code within a year.
  • Folder filter fidelity. queued/outbox/draft map to provider type values that are largely vestigial on modern Android (provider writes have been blocked since 4.4). Expect some filters to return empty on real devices; verify per target API level rather than trusting the enum.
  • RCS gap. RCS-delivered messages generally do not appear in the SMS provider. On modern carrier/device combinations, "read the user's messages" silently misses a growing share of traffic.
  • Query shape. limit + since is not pagination. No cursor or offset means no safe way to walk a large inbox incrementally; risk of slow, memory-heavy calls on devices with thousands of threads.

Key questions

  1. What is the distribution channel — Play, MDM/enterprise sideload, F-Droid, internal? If Play is required, has a policy review identified a concrete exception category?
  2. Is there a Play-compliant justification narrative, or is this effectively an SMS-handler-class app?
  3. Is Packagist publication committed with a date? What is the fallback if not?
  4. Is there CI actually exercising Laravel 11/12 × NativePHP 3/4 on physical Android? Which API levels (29/31/34)?
  5. Are bridge calls main-thread/blocking, and what is observed latency on a 5k-message inbox?
  6. Are message bodies ever logged, cached, or persisted by the package?
  7. What is the fork's stated upstream-merge cadence and divergence policy?
  8. Does multipart reassembly handle out-of-order or incomplete parts, and is failure observable?

Integration Approach

Stack fit

  • Targets Laravel 11/12 with NativePHP Mobile 3/4, Android only. Fits greenfield NativePHP apps and existing Laravel apps adding a mobile surface. Does not fit web-only products, iOS-parity requirements, or server-side SMS ingestion.

Migration path

  • Coming from atendwa/nativephp-sms-reader: verify whether the fork declares Composer replace for the upstream, then plan a namespace/facade/event-import find-and-replace. If upstream is unmaintained, this is a low-effort, high-value swap.
  • Until Packagist publication, pin via an explicit VCS repository block with a commit hash — never a branch alias.

Compatibility

  • Laravel 11/12 support is credible; 13 is forward-looking. NativePHP 3 and 4 may differ in bridge contract — support both on paper, pin one in practice.
  • Provider behavior varies materially across Android API levels; define a minimum SDK and test on it, not on an emulator default.

Sequencing

  1. Distribution-channel and Play-policy decision — hard gate, do this first.
  2. Physical-device spike via path repository against a seeded inbox, including permission-denial and permission-revoked paths.
  3. Pin package, NativePHP, and Laravel versions in CI.
  4. Vendor the package internally (or maintain a fork under your own namespace) before any production dependency.
  5. Instrument empty-folder, empty-result, and reassembly-failure paths.
  6. Only then build product surface on top.

Operational Impact

Maintenance

  • Assume you will eventually own it. This is a few hundred lines of glue; vendoring it into the repo and tracking upstream on a quarterly diff is cheaper than depending on unreviewed upstream releases. Do not accept ^1.0 floating updates.

Support

  • User-facing failures are permission and OEM behavior, not PHP exceptions. Support needs a decision tree covering "is SMS permission granted," "is the app battery-unrestricted," "did an OS update reset permissions," and "is the default SMS app relevant here." Non-technical support staff will not infer this.

Scaling

  • Scales with device count, not server capacity. The real cost drivers are per-device query cost and battery drain. Cap limit, prefer narrow since windows, and use the event rather than polling — polling is the fastest way to get an app uninstalled or flagged by the OS.

Failure modes

  • Permission denied or revoked at runtime; user switching default SMS handler; OEM aggressive background killing (MIUI/EMUI) suppressing the receiver; bridge unregistered after a framework upgrade; multipart reassembly gaps; large-inbox timeouts; RCS traffic invisible to the provider; provider differences returning empty folders; and the dominant risk — Play rejection or post-launch delisting.

Ramp-up

  • API surface is learnable in hours. The actual ramp is Android permission policy plus device-matrix reality: days to weeks, not a staffing problem but a research one. Estimate a half-day spike, 3–5 days to a defensible prototype, and 2+ weeks of policy uncertainty before a go/no-go. No new hires required, but you need one person who has shipped a restricted-permission Android app — or a week of reading — before committing roadmap to this dependency.
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.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk