
Grant discovery and AI chat on the go — companion mobile app to the RAG platform.
NGO professionals discover grants on the go across seven content domains — opportunities, deadlines, donor news, sample proposals, eBooks, articles, and profiles — with parity to the WordPress-powered web experience, not a stripped “mobile lite” catalog.
Flutter Provider architecture calls mobapi.fundsforngospremium.com for catalog APIs and the shared Rust backend for streaming AI — Launch/credentials flows mirror web so one membership story spans surfaces.
Eight paginated Provider domains, OTP and session restore via SharedPreferences, cached PDF proposals, flutter_html rendering for long grant bodies, and SSE chat that enforces the same JWT and subscription tiers as the Rust RAG backend.

ChangeNotifiers for each catalog slice with lazy init and infinite scroll listeners.
Email OTP, password flows, and JSON session blobs in SharedPreferences with secure wipe on logout.
flutter_cached_pdfview and flutter_downloader with progress surfaces matching NGO expectations for proposals.
flutter_html + cached_network_image for rich descriptions offline-tolerant where cached.
Full-site search with type filters pushing to the correct detail routes.
Streams from Rust backend with the same rate limits and tier headers as web SSE proxies.
iOS and Android builds share widgets, download pipelines, and search — reducing duplicate QA while still passing store review for background downloads and push where enabled.
iOS and Android builds share widgets, download pipelines, and search — reducing duplicate QA while still passing store review for background downloads and push where enabled.
Same WordPress→JWT→Rust session semantics as the Next.js client — tier limits and daily message caps enforced server-side so the mobile app cannot bypass premium gating with a forked API.


Eight parallel domains needed straightforward ChangeNotifier boundaries without boilerplate explosion.
Shared auth with web avoided a second identity system that would drift subscription state.
flutter_downloader gave NGO users visible progress for large proposal PDFs on slow connections.
SSE parity with web meant mobile could ship AI without WebSocket complexity.
We take on a small number of projects at a time. If the problem is hard, we're interested.