VeryFastChat is a real-time chat app where anyone can create a room, share a link instantly, and keep conversations going with persistent chat history.
Anonymous use is supported by default. Sign-in is optional and adds persistent room ownership, profiles, and cross-device access.
- Web:
https://veryfastchat.vercel.app - API:
https://veryfastchat-api.onrender.com
- Create and join rooms via shareable link — no account required
- Real-time messaging via Supabase Realtime
- Persistent rooms with saved chat history
- Host moderation: lock, unlock, end room, delete messages
- Optional authentication with email/password and Google OAuth
- User profiles with display name and avatar
- "My Rooms" dashboard for authenticated users
- Rate limiting per action (create, join, send)
- Optional Sentry error tracking for API and web
- PWA support with offline fallback
- Dark / light / system theme
| Layer | Tech |
|---|---|
| Web | Next.js 14 (App Router, TypeScript) |
| API | FastAPI (Python 3.11+) |
| Database & Realtime | Supabase (Postgres + Realtime) |
| Auth | Supabase Auth (email/password, Google OAuth) |
| Rate Limiting | Upstash Redis (in-memory fallback) |
flowchart LR
U["Users"] --> W["Next.js Web App<br/>Vercel"]
W --> A["FastAPI API<br/>Render"]
W --> S["Supabase<br/>Auth + Realtime"]
A --> S
A --> R["Upstash Redis<br/>(optional)"]
apps/
web/ Next.js frontend
api/ FastAPI backend
docs/
blueprint.md Architecture & data model
deployment.md Deployment guide (Render, Fly.io, Docker)
production-checklist.md Launch checklist
- Supabase is already provisioned and connected for this project
- Production is live:
- Web:
https://veryfastchat.vercel.app - API:
https://veryfastchat-api.onrender.com
- Web:
- Local verification is green:
- Backend:
83/83tests passing - Frontend:
37/37Playwright tests passing
- Backend:
- CI is configured with GitHub Actions for backend tests and frontend builds
- Scheduled production monitoring is configured with GitHub Actions
cd apps/api
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
cp .env.example .env # fill in Supabase credentials + SESSION_SECRET
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd apps/web
npm install
cp .env.example .env # fill in Supabase + API URL
npm run devOpen http://localhost:3000
make api # start API with hot reload
make web # start Next.js dev server# Backend
cd apps/api && pip install -e ".[dev]" && pytest
# Frontend
cd apps/web && npx playwright test/.github/workflows/ci.yml- Runs
pytestfor/Users/srujayreddy/Projects/VeryFastChat/apps/api - Runs
next buildfor/Users/srujayreddy/Projects/VeryFastChat/apps/web
- Runs
/.github/workflows/monitoring.yml- Checks the production web app every 30 minutes
- Checks
GET /healthon the production API - Uses only public endpoints, so no GitHub secrets are required
- Web: Vercel
- API: Render
- Full instructions: docs/deployment.md
| Doc | Purpose |
|---|---|
| Blueprint | Architecture, data model, API contract |
| Deployment | Deploy to production |
| Production Checklist | Pre/post-launch verification |
This project is licensed under the MIT License. See LICENSE.