44 lines
3.9 KiB
Markdown
44 lines
3.9 KiB
Markdown
# Progress — iFarted
|
|
|
|
## Current Status: Design locked, zero app code — repo live
|
|
No application code exists yet. All major product/architecture decisions resolved. **Repo initialized & pushed** (session 3). Ready to scaffold.
|
|
|
|
## What Works
|
|
- **Git repo live** at `https://git.2re.top/2re/iFarted` (public/open, owner `2re`). Initial commit `8fec909` (`README.md`, `.gitignore`, `.clinerules/`, full `memory-bank/`). Local `main` tracks `origin/main`; push over SSH key (`torrey@nommesen.com`), no password.
|
|
- 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~~ ✅ **done** — initial commit pushed to `git.2re.top/2re/iFarted` (session 3).
|
|
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 (s3)** — Git repo initialized & pushed: `git init -b main`, `README.md` + `.gitignore` added, memory-bank + .clinerules committed (`8fec909`), remote `2re/iFarted` on git.2re.top (public) populated via SSH key. Memory-bank updated to match.
|
|
- **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.
|