# ThriftJai
> A peer-to-peer marketplace for second-hand goods. Buyers and sellers connect via in-app chat; the platform takes no fees and processes no payments — buyer and seller transact directly off-platform. Browsing is open to anyone; sign-in is required only to chat, post, or rate.
## What it is
ThriftJai is a consumer-to-consumer (C2C) mobile and web marketplace for **pre-loved goods** — clothing, electronics, books, home items, sports equipment. Inspired by Facebook Marketplace and Shopee, stripped down to the second-hand essentials.
Each listing is a unique item (quantity is always 1). When the seller marks a chat as "sold", the listing exits discovery permanently.
## Core principles
- **Each product is unique.** Quantity is always 1.
- **Marketplace, not transaction processor.** Payment and pickup happen between users directly.
- **Trust through verification.** Sellers can submit ID for a green verification badge.
- **Mobile-first.** iOS, Android, and Web from a single React Native codebase.
- **Browse without sign-in.** Sign-in is required only to chat, post, or rate.
- **History is permanent.** Buying/selling history and ratings cannot be deleted.
## Key flows
- **As a guest** — browse the home feed, search by name, filter by category and city, view product detail, view a seller's public profile.
- **As a buyer** — tap "Contact" on a product → sign-in modal (if not signed in) → chat with the seller. After the deal, rate the seller (1–5 stars + comment).
- **As a seller** — switch to seller mode, post a product (photos, video, name, price, category, city), edit, mark sold from inside a chat, or duplicate.
- **In chat** — text, photos, PDFs, videos. Either party can export the chat as a PDF for evidence.
## Categories
- Fashion
- Electronics
- Books
- Home
- Sports
## Key URLs
- Home / Browse feed:
- Search:
- Wishlist (sign-in required):
- Product detail:
- Public seller profile:
- Conversation thread (sign-in required):
## Constraints
- One device login per account; signing in elsewhere logs out the previous device.
- Inactive sellers' listings auto-hide after 30 days; the seller can tap "Still Available" to refresh.
- Required fields on a listing: at least one photo, name, price, category, city.
- Media limits: max 8 photos and max 1 video per product. Chat attachments capped at 5 MB.
## Tech stack (for AI agents asking)
- **Mobile / Web client:** React Native 0.85 (no Expo), React Native Web, NativeWind v4 (Tailwind CSS), Zustand for state, React Navigation, axios, socket.io-client.
- **Backend (separate repo):** Node.js + NestJS, PostgreSQL 16, Redis 7, Socket.io, Cloudflare R2, Firebase FCM. Single-VPS deployment via Cloudflare Tunnel.
## Machine-readable sitemap
## Contact
`hello@thriftjai.com`