35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# iFarted
|
|
|
|
> Send a friend exactly one thing: **"I farted."**
|
|
|
|
A dead-simple cross-platform mobile app: pick a person, optionally attach your
|
|
location, and send them a push notification that says exactly one thing —
|
|
**"I farted."** They can one-tap fart right back. No typing, no inbox, no feed.
|
|
|
|
Modeled on the 2014 **Yo!** app (context-based messaging) — with monetization in
|
|
from day one.
|
|
|
|
## What it is
|
|
- **iOS + Android** — React Native + Expo + TypeScript, one codebase
|
|
- The fixed message is *"I farted."* — meaning comes from context (who, when, where)
|
|
- Optional **location** attached per message → recipient sees a map pin
|
|
- Custom notification sound; notifications are ephemeral by design (no history)
|
|
|
|
## Find & add friends (all three ways)
|
|
- Unique **@username** + search
|
|
- Opt-in **phone contacts** matching
|
|
- **Invite code + deep link**
|
|
|
|
## Architecture
|
|
| Piece | Stack |
|
|
|---|---|
|
|
| `apps/mobile` | Expo (React Native + TypeScript) client |
|
|
| `apps/server` | Lightweight **Bun** relay → **Expo Push API** → APNs/FCM; SQLite storage (Node-runnable) |
|
|
| `packages/contracts` | Shared API types |
|
|
|
|
## Monetization
|
|
- Free tier with ads (AdMob)
|
|
- One-time **Remove Ads** IAP (non-consumable, restorable)
|
|
|
|
## Status
|
|
Design locked, zero code. Planning notes live in [`memory-bank/`](memory-bank/).
|