Namaste Ji by Ayushman Dash

Docs / frontend-plan.md · mirrored from the repo

Consumer Frontend — approved build plan (2026-07-13)

Status: approved plan, execution in progress. This is the working plan for standing up the consumer app plane. The design it produced lives in FRONTEND.md (decisions FE-1…FE-10) — read that first; this file tracks the remaining execution and the founder’s non-code action list.

Grounded in a 6-dimension web-research pass (framework, Play Store, App Store, India auth/OTP, analytics/push, competitor UX), July 2026, partially adversarially verified. Key findings + sources are embedded in FRONTEND.md; time-sensitive claims are marked ⚠ re-verify (§5 below).

1. Execution status

  • Research + stack decision (React Native + Expo — rationale in FRONTEND.md §2)
  • docs/FRONTEND.md written — the app-plane design doc (now incl. FE-11 web-first universal app + FE-12 bootstrap auth)
  • Web-first v1 BUILT (branch feat/consumer-web-v1, 2026-07-18): 4 commits — services/consumer-api (Better Auth username+admin, internal admin routes, debug/bindings check) · BO Users page (Operators + App Users tabs, consumer:manage) · apps/consumer universal Expo app (login/settings, i18n day 0 + lint gate, deploy-app.yml) · feed slice (playlist contract, catalog queries, seeded feed, snap UI, profile) — all verified in the browser against the real local catalog. Test user: test / Namaste@123.
  • docs/consumer/STYLE-GUIDE.md + mockup — ⚠ awaiting founder validation; the immersive styling pass is gated on it.
  • docs/APP-STORE-OPS.md — the publishing playbook (content spec in §3 below)
  • Remaining cross-reference updates (§4 below: ARCHITECTURE §8, FRAMEWORKS, AGENTS, TODO)
  • Staging one-time setup (deploy-app.yml header): infra deploy → D1 id, Pages project + custom domain, staging secrets, WAF rate-limit rule on /api/auth/*
  • Native (iOS/Android) targets: EAS project + dev build on the iPhone — after the web beta settles

2. The decisions in one screen (details in FRONTEND.md)

AreaDecision
FrameworkRN + Expo, New Architecture, Hermes, EAS Build/Submit/Update (FE-1); size + cold-start CI budgets (FE-2)
Placementapps/mobile; Android targetSdk 36 / minSdk 26; iOS via EAS dev builds on founder’s iPhone; low-end Android test device before beta
FeedCached KV playlists + on-device re-rank with the same @namaste-ji/feed rank() (FL-1); FlashList v2 + expo-image (BlurHash); overnight WiFi prefetch; hybrid WhatsApp share (FE-3)
AuthBetter Auth on Workers+D1; Truecaller one-tap → WhatsApp OTP → SMS-last funnel; iOS phone-OTP-only (avoids Sign-in-with-Apple); 90–180-day sliding sessions (FE-4)
i18nDay 0: i18next + ICU, typed keys, en/hi/hi-Latn, no-raw-strings lint in CI (FE-5)
AnalyticsStatsig (exposures + key conversions only, behind a port; PostHog plan-B) + Workers Analytics Engine for the raw firehose; Sentry crashes (FE-6)
Pushexpo-notifications client + direct FCM v1 fan-out from Workers; ritual must not depend on push (FE-7)
Deep linksPlain App Links/Universal Links; no attribution SDKs (FE-8)
RetentionMorning push in user language → home-screen widget (FE-9) → ritual continuity (no gamified streaks) → cold-start perf
WebMinimal Worker-served share-landing on namasteji.org (watermark → install funnel; Play Instant is dead)
PrivacyNo ATT, no ads, no IDFA; opaque analytics IDs; opt-out toggle (FE-10); DPDP-clean from launch (full obligations May 13, 2027)

3. APP-STORE-OPS.md — content spec (next doc to write)

Operational playbook, checklist-style, with ⚠ re-verify markers + source URLs:

Google Play (personal account — no entity yet):

  • Account: $25 one-time; ID verification; post-Nov-2023 personal accounts need a closed test with 12 testers opted-in 14 consecutive days + production-access application (~7-day review) before production. Use as structured friends/family beta. Personal→org transfer later via official workflow.
  • Tech: AAB + Play App Signing mandatory; targetSdk 36 from Aug 31, 2026 (⚠).
  • Forms: Data safety (phone number/account mgmt; app interactions/analytics; crash logs; encrypted-in-transit; deletion offered); privacy policy URL (hi+en); in-app account deletion + public web deletion URL; 18+ target-audience declaration.
  • Review risks: Spam/Minimum-Functionality (template greeting apps are the target class — reviewed build must open into a populated personalized feed, festival intelligence, offline, polished share). GenAI policy does NOT apply (distribution-only app, no in-app generation) — answer questionnaire as distributor.
  • Timeline: ~4–6 weeks account→production. Create the account now — fixed latency.

Apple App Store (individual — $99/yr, ~24–48h verify; in-place org conversion later):

  • Review risks: 4.3(b) wallpaper-class scrutiny — review notes + first-run must foreground personalization/offline/vernacular/festival-calendar/share; category Lifestyle or Social. 1.1.5 religious content — Heimdall veto is the mitigation; reviewers browse on non-India IPs (no geo-blocks/empty states).
  • Pre-submission requirements: in-app account deletion; logged-out usability; static-OTP demo login (whitelisted number → fixed code) in review notes; privacy nutrition labels + app privacy manifest; age-rating questionnaire (expect 4+); deselect EU storefronts (skips DMA/DSA + individual-address publication).
  • No ATT prompt needed (first-party analytics, no IDFA). EAS Update compliant under DPLA 3.3.1(B) — fixes only, never post-review feature unlocks.
  • Timeline: 1–3 weeks first submission → approval incl. one rejection round-trip (~25% of submissions get rejected).

DPDP checklist: itemized hi/en consent at phone collection; 90-day rights handling; 72h breach plumbing; deletion flow (doubles as store requirement); track SDF designation.

4. Cross-reference updates (pending)

  • ARCHITECTURE.md §8: mark “Frontend stack” resolved → FRONTEND.md (FE-1).
  • FRAMEWORKS.md: §1 frontend row (consumer = RN + Expo → FRONTEND.md); §8 adoption stance (Better Auth / Statsig now scheduled for the consumer surface).
  • AGENTS.md: status snapshot + repo layout (planned apps/mobile).
  • TODO.md: insert a “Consumer frontend” track (mirror FRONTEND.md §13 build order).
  • docs/README.md: index FRONTEND.md (planes table, FE-* IDs) + APP-STORE-OPS.md (operations table) + this plan file.

5. Claims to re-verify at execution time (research verification was cut short)

  • Play: API-36 deadline date (Aug 31, 2026); 12-tester/14-day rule details; personal→org account-transfer policy.
  • Apple: current 4.8 (Sign in with Apple) wording; 4.3(b) category list; age-rating questionnaire requirements.
  • Auth: Better Auth current version + D1 dialect status; WhatsApp auth-template INR rate (~₹0.115); Truecaller SDK business terms; TRAI DLT cost/lead time.
  • Analytics: Statsig-under-Amplitude pricing/continuity; Analytics Engine limits.
  • (Verified already: the isomorphic-TS-ranker claim, RN-platform-text vs Flutter-owned text engine, Play Instant shutdown, India Android-version distribution.)

6. Founder action list (non-code, all fixed-latency — start in parallel)

  • Create Google Play personal developer account ($25) — longest pole (verification + 12-tester/14-day closed test gate).
  • Enroll Apple Developer Program, individual ($99/yr).
  • Order a low-end Android test device (3–4 GB RAM Redmi/Infinix class, ~₹7–10k).
  • Contact Truecaller for Business re SDK terms (gates the Android one-tap primary).
  • Incorporation when ready → unlocks TRAI DLT (SMS OTP fallback) + org store accounts + org WhatsApp Business sender.