βA conversation that leaves no trace.β
Inspired by the fugue state β a temporary amnesic condition β Fugue is a secure, in-memory, peer-to-peer chat where nothing persists.
| Feature | Description |
|---|---|
| π Account-Based Access | Users sign up and log in with username + password. Sessions persist via secure cookies until logout. |
| π― Interest Matching | Select multiple interests; chat pairing prioritises shared interests with optional "extend search" fallback. |
| π Real-Time Sync | WebSocket-powered live messaging with automatic pairing and partner presence events. |
| πͺ Leave Any Time | Leave chat without logging out β return to the lobby with a single click. |
| π§Ό Ephemeral by Design | Messages live only in memory β nothing saved after disconnect. |
| π¨ Dark Mode UI | Clean Tailwind UI with responsive layout. |
| π³ Docker-Ready | Dev & prod Dockerfiles included. |
| π CI/CD Pipeline | Automated testing, building, and deployment via GitHub Actions. |
- Node.js v18+
- PostgreSQL (local or remote). The default dev DSN expects a local database named
fugue_app. - Docker (optional, for container testing)
# Clone the repo
git clone https://github.com/umarmahmoodshk/fugue-app.git
cd fugue-app
# Backend deps
npm install
# Frontend deps
npm install --prefix client# Create the local database (optional if you supply DATABASE_URL)
createdb fugue_appCreate a .env in the project root if you want to override defaults:
DATABASE_URL=postgres://user:password@localhost:5432/fugue_app
SESSION_SECRET=super-secret# Start the backend (ensures schema automatically)
npm run dev
# Option A: run the Vite dev server (hot reload)
npm run dev --prefix client
# visit http://localhost:5173
# Option B: build the client once and let Express serve it
npm run build:client
# reload http://localhost:8080Sign up with a username/password, pick interests, then start matching. Use the Leave button to exit a chat without logging out.
docker build -f Dockerfile.dev -t fugue-dev .
docker run -p 3000:3000 fugue-devKeep frontend running via
npm run devinclient/.
docker build -f Dockerfile.prod -t fugue-prod .
docker run -p 3000:3000 fugue-prodπ Visit http://localhost:3000 β frontend + backend in one container!
Based on the Trinity Bootstrap workflow:
| Branch | Pipeline Action |
|---|---|
dev |
β Run tests β ποΈ Build dev image |
main |
β Run tests β ποΈ Build prod image β π Push to GHCR |
π See: .github/workflows/ci.yml
fugue-app/
βββ client/ # React + Vite frontend
β βββ src/ # Components, hooks, styles
β βββ vite.config.js # Dev server config (host: 0.0.0.0)
βββ index.js # Node.js + WebSocket backend
βββ package.json # Backend dependencies
βββ Dockerfile.dev # Dev container (backend only)
βββ Dockerfile.prod # Production container (full app)
βββ .gitignore
βββ .github/workflows/ci.yml
- No data persistence: All state is in-memory (server + browser).
- No logs: Backend never stores messages after disconnect.
- Anti-screenshot: UI blurs on logout.
- No tracking: Zero analytics, cookies, or telemetry.
ποΈ Fugue respects your right to forget.
- Fly.io (1-command deploy)
- Render
- AWS ECS
This is a learning project aligned with the Trinity Bootstrap DevOps workflow.
Feel free to:
- β¨ Improve UI/UX
- π§ͺ Add unit tests
- π Add cloud deployment scripts
- Automatic user pairing system
- Room-based chat management
- Connection health monitoring
- Graceful disconnect handling
- Multi-stage Docker builds for minimal image size
- Non-root user execution for security
- Environment-based configuration
- Cloud Run with WebSocket support
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Built as part of the Trinity Bootstrap project
- Real-time functionality powered by WebSockets
- Deployed on Google Cloud Platform
- Continuous deployment via GitHub Actions
β Star this repo if you found it helpful!
βWe met in the fog. We spoke. We vanished.β
β Fugue v1.0
β Currently deployed on Google Cloud Run: Try Fugue Live
