Skip to content
This repository was archived by the owner on Jun 15, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

154 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 YapStation

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.

🧱 Architecture (current)

  • 🖥️ Frontend: frontend-next/ (Next.js + React). Proxies API calls via app/api/[[...path]]/route.js and 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).

🗂️ Repo layout

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)

🏁 Quick start (Windows)

  1. Create a root .env with your Supabase credentials (see “Environment variables” below).
  2. Double-click run-yapstation.bat.

It will:

  • verify Supabase connectivity,
  • start FastAPI at http://localhost:7860/docs,
  • start Next.js at http://localhost:3000.

🛠️ Manual start

Backend:

cd backend
pip install -r requirements.txt
python -m uvicorn server:app --host 0.0.0.0 --port 7860 --reload

Frontend:

cd frontend-next
npm install
npm run dev

🔐 Environment variables

🧩 Root .env (used by the backend)

Required

  • SUPABASE_URL
  • SUPABASE_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 @bitai assistant)

🌐 Frontend env

For local dev, copy frontend-next/.env.example to frontend-next/.env.local and keep:

  • BACKEND_URL=http://127.0.0.1:7860
  • NEXT_PUBLIC_API_URL=http://127.0.0.1:7860

📲 Mobile (Capacitor)

See frontend-next/docs/mobile.md.

📄 License

MIT. See LICENSE.

About

YapStation is a modular social media platform built with a C++ core engine, FastAPI backend, and a lightweight web frontend, designed to demonstrate clean architecture and object-oriented system design.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages