38 lines
3 KiB
Markdown
38 lines
3 KiB
Markdown
# 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):**
|
|
1. **Identity & discovery = all three:** unique @username + search · phone/contacts (opt-in) · invite code/deep link.
|
|
2. **Backend = lightweight Bun + Expo Push API** (user asked "is Bun possible?" → **yes**, answered + recorded in techContext; Bun not yet installed on this box).
|
|
3. **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)
|
|
1. **Audio asset:** the fart notification sound file (must be <30s for iOS; on-brand, not too loud/gross for reviewers).
|
|
2. **Remove Ads:** price point (~$1.99 suggestion) + library (expo-iap vs RevenueCat).
|
|
3. **Ad placement:** default = AdMob banner on home; decide whether an interstitial after send is worth the UX/review cost.
|
|
4. **Branding:** final store name (working: iFarted), icon, screenshots, store copy, in-app copy tone pass.
|
|
5. Server deployment target (cheap VPS/fly.io/Railway) + invite deep-link domain once branding is set.
|
|
|
|
## Next Steps
|
|
1. `git init` + repo hygiene (README, `.gitignore`), commit memory-bank.
|
|
2. Scaffold monorepo: `apps/mobile` (Expo TS) + `apps/server` (Bun + Hono + SQLite) + `packages/contracts` (shared API types).
|
|
3. Install Bun on this box; stand up the relay server with the REST API from systemPatterns.
|
|
4. Prove device-to-device fart end-to-end (two dev-build devices, Expo Push API, custom sound).
|
|
5. Implement client screens per productContext (onboarding incl. 3 add-friend paths, home, fart detail + map, settings).
|
|
6. Wire ads + Remove Ads IAP + gating + restore.
|
|
7. Permissions/privacy polish (purpose strings, privacy labels).
|
|
8. 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.json` as 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.
|