YapStation is a real-time social app with a Next.js web UI (and Capacitor mobile wrappers) backed by a FastAPI API and Supabase persistence.
- 🖥️ Frontend:
frontend-next/(Next.js + React). Proxies API calls viaapp/api/[[...path]]/route.jsand rewrites/ws/*to the backend for real-time. - ⚡ Backend:
backend/(FastAPI on port 7860) with REST + WebSockets. - 🗄️ Data: Supabase (Postgres + Storage). Local development expects Supabase credentials in a root
.env. - 📱 Mobile:
frontend-next/android/+frontend-next/ios/(Capacitor hosts the same Next UI in a WebView).
YapStation/
backend/ FastAPI server + Supabase integration
frontend-next/ Next.js app + Capacitor native projects
docs/ Design notes + schema docs
run-yapstation.bat Starts backend + frontend (Windows)
run-backend.bat Starts FastAPI on :7860
run-frontend.bat Starts Next.js on :3000
.env Local secrets (do NOT commit)
- Create a root
.envwith your Supabase credentials (see “Environment variables” below). - Double-click
run-yapstation.bat.
It will:
- verify Supabase connectivity,
- start FastAPI at
http://localhost:7860/docs, - start Next.js at
http://localhost:3000.
Backend:
cd backend
pip install -r requirements.txt
python -m uvicorn server:app --host 0.0.0.0 --port 7860 --reloadFrontend:
cd frontend-next
npm install
npm run devRequired
SUPABASE_URLSUPABASE_KEY(anon/publishable key)
Optional
SUPABASE_SERVICE_KEY(enables privileged server operations like Storage uploads; keep secret)JWT_SECRET(session cookie signing)- Password reset email:
SMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASSWORD,MAIL_FROM FRONTEND_URL(used for CORS and password-reset link base)- BitAI:
GROQ_API_KEY(enables the@bitaiassistant)
For local dev, copy frontend-next/.env.example to frontend-next/.env.local and keep:
BACKEND_URL=http://127.0.0.1:7860NEXT_PUBLIC_API_URL=http://127.0.0.1:7860
See frontend-next/docs/mobile.md.
MIT. See LICENSE.