42 lines
3.2 KiB
Markdown
42 lines
3.2 KiB
Markdown
# 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.
|