3 KiB
3 KiB
Active Context — iFarted
Last updated: 2026-09-09 (session 2)
Current State
- Greenfield. No app code, no git repo yet. Workspace:
.clinerules/,memory-bank/(6 core files +research/yo-app.md). - Stack (locked): React Native + Expo + TypeScript (accepted earlier).
- This session's decisions (locked by user):
- Identity & discovery = all three: unique @username + search · phone/contacts (opt-in) · invite code/deep link.
- Backend = lightweight Bun + Expo Push API (user asked "is Bun possible?" → yes, answered + recorded in techContext; Bun not yet installed on this box).
- Product design = Yo! pattern (user: "research how they handled it and do that") → see
memory-bank/research/yo-app.md. Key adoptions: fixed phrase w/ zero typing, notification text+audio, contact-list home with tap-to-send + one-tap fart back, ephemeral (no inbox/history), context-based messaging framing (also our App Review explanation), username addressing.
Recent Changes (this session)
- 2026-09-09: Researched Yo! (Wikipedia + CNET via Wayback). Created
memory-bank/research/yo-app.md. Answered the Bun feasibility question (yes). Locked identity (all 3), backend (Bun + Expo Push API), product model (Yo-style) and rewrote the memory-bank core files to match.
Remaining Open Decisions (small, non-blocking)
- Audio asset: the fart notification sound file (must be <30s for iOS; on-brand, not too loud/gross for reviewers).
- Remove Ads: price point (~$1.99 suggestion) + library (expo-iap vs RevenueCat).
- Ad placement: default = AdMob banner on home; decide whether an interstitial after send is worth the UX/review cost.
- Branding: final store name (working: iFarted), icon, screenshots, store copy, in-app copy tone pass.
- Server deployment target (cheap VPS/fly.io/Railway) + invite deep-link domain once branding is set.
Next Steps
git init+ repo hygiene (README,.gitignore), commit memory-bank.- Scaffold monorepo:
apps/mobile(Expo TS) +apps/server(Bun + Hono + SQLite) +packages/contracts(shared API types). - Install Bun on this box; stand up the relay server with the REST API from systemPatterns.
- Prove device-to-device fart end-to-end (two dev-build devices, Expo Push API, custom sound).
- Implement client screens per productContext (onboarding incl. 3 add-friend paths, home, fart detail + map, settings).
- Wire ads + Remove Ads IAP + gating + restore.
- Permissions/privacy polish (purpose strings, privacy labels).
- Alpha → store submissions (EAS + TestFlight/Play internal).
Important Patterns / Preferences to Preserve
- Tiny, single-purpose product — resist feature creep; the Yo research (research/yo-app.md) is the reference for "does this serve the fart notification?".
- Ads first, Remove Ads IAP second; single gated ad component.
- Expo managed workflow + config plugins;
app.jsonas source of truth. - Server code stays Bun and Node-runnable.
- One TS codebase for both stores; platform differences only where push/permissions/sound demand it.