# Progress — iFarted ## Current Status: Design locked, zero code (greenfield) No application code exists yet. All major product/architecture decisions resolved. Ready to scaffold. ## What Works - Nothing application-wise yet. - Full requirements + architecture captured in Memory Bank (6 core files + `research/yo-app.md`). ## Decisions Made (all user-confirmed) - Target platforms: iOS + Android. - Core action: send another user an individual push notification containing **"I farted."** (fixed phrase, zero typing); optional per-message location. - **Identity & discovery: all three** — unique @username + search · phone/contacts (opt-in) · invite code/deep link. - **Backend: Bun** (Node-compatible) **+ Expo Push API**; SQLite storage; no Firebase Functions/Firestore. (Bun feasibility confirmed — plain HTTPS/JSON; install still pending on dev box.) - **Product design: Yo! (2014) pattern** — researched (Wikipedia + CNET); adopted context-based messaging, text+audio notification, contact-list home with tap-to-send + one-tap fart back, **ephemeral (no inbox/history)**. See `memory-bank/research/yo-app.md`. - Monetization: ads (AdMob) + **one-time non-consumable Remove Ads IAP**. - Mobile stack: React Native + Expo + TypeScript; EAS Build for iOS from this Linux box. ## What's Left to Build (MVP roadmap) 1. Repo setup: `git init`, README, `.gitignore`, commit memory-bank. 2. Scaffold monorepo: `apps/mobile` (Expo TS), `apps/server` (Bun + Hono + bun:sqlite), `packages/contracts` (shared types). 3. Install Bun; implement relay server per systemPatterns REST API (register/tokens/farts/search/contacts/invites/block + rate limiting). 4. Device-to-device fart end-to-end: two dev builds, Expo Push API, custom sound, location payload. 5. Client screens per productContext (onboarding incl. 3 add-friend paths, home list, fart detail + map, settings). 6. Ads (AdMob banner) + Remove Ads IAP + gating + restore. 7. Permissions/privacy polish (purpose strings, privacy labels). 8. Alpha on real devices (both platforms). 9. Store assets + compliance review → TestFlight + Play internal testing. ## Remaining Minor Open Items Audio asset · Remove Ads price/lib · ad placement confirmation · final branding · deploy target (see activeContext.md). ## Known Issues / Risks - **iOS review:** Yo was initially rejected for being "too simple" → have the context-based messaging explanation ready; keep copy clean. - **Harassment/spam:** Yo was hacked + spammed in 2014 → strict auth, no unauthenticated PII, rate limits + block (baked into API design). - **No business model killed Yo** → monetization is in from day one (ads + IAP). - iOS builds can't run on this Linux box → EAS cloud build (or a Mac) required. - Android push requires a Firebase project for FCM client credentials even with Expo Push API (secret `google-services.json`, injected at build). ## Evolution Log - **2026-09-09 (s1)** — Memory Bank initialized; requirements captured; stack recommendation (RN + Expo + TS) accepted. - **2026-09-09 (s2)** — Yo! app researched (`memory-bank/research/yo-app.md`); Bun feasibility answered (yes); decisions locked: identity = all three mechanisms, backend = Bun + Expo Push API, product = Yo-style context-based messaging with ephemeral farts. Memory-bank core files updated.