https://github.com/fabiconcept/secret-room
A sleek, fully responsive Next.js 15.2.1 app built for real-time, anonymous chatting â fast, private, and mobile-ready.
https://github.com/fabiconcept/secret-room
anonymous anonymous-chat anonymous-message chat-application dark-web-sites secret-chat
Last synced: about 1 year ago
JSON representation
A sleek, fully responsive Next.js 15.2.1 app built for real-time, anonymous chatting â fast, private, and mobile-ready.
- Host: GitHub
- URL: https://github.com/fabiconcept/secret-room
- Owner: fabiconcept
- Created: 2025-03-06T12:49:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-12T15:07:21.000Z (about 1 year ago)
- Last Synced: 2025-05-12T15:29:30.065Z (about 1 year ago)
- Topics: anonymous, anonymous-chat, anonymous-message, chat-application, dark-web-sites, secret-chat
- Language: TypeScript
- Homepage: https://secret-room-orpin.vercel.app
- Size: 1.9 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# đ Secret Room - Frontend
**Secret Room** is a fully anonymous, real-time chat app that lets users create temporary servers and invite others to join without revealing their identity. This is the **frontend**, built with **Next.js**, **TypeScript**, **Tailwind CSS**, and **Socket.IO**, crafted for speed, privacy, and responsiveness.
> đĄ This project focuses on stateless, anonymous sessions, private invites, smooth real-time messaging, and immersive UI/UX.
---
## đ Features
- đ¨ Beautiful, minimal, **fully mobile-responsive** UI
- đ Complete anonymous user flow â no sign-ups, no names
- đŦ Real-time chat with **Socket.IO**
- đ **File sharing**: PNG, JPG, GIF, PDF, JPEG
- đ Join via global or server-specific invite links
- ⥠Instant socket events: join, leave, message read
- đ **Server-controlled message decryption** after access requirements are met
- đŖ Self-destructing servers and messages
- đšī¸ Immersive UX: sound effects + ambient soundtrack
---
## đ§ą Tech Stack
- **Next.js 15 (App Router)**
- **TypeScript**
- **Tailwind CSS**
- **Socket.IO (Client)**
- **Zustand** â lightweight global state management
- **Framer Motion** â page & component animations
- **Custom fingerprint algorithm** â no 3rd-party tracking
- **Audio hook** â to manage interaction sounds
---
## đ UX Sound Effects
Secret Room isn't just visual â it's sonic.
- âī¸ **Button clicks** make a soft "sword swing" sound
- đĩ A **creepy, corny ambient soundtrack** plays during interaction
- đ§ Sound control is powered by a custom `useSoundEffect` hook
This little detail boosts the eerie/secretive vibe of the app and makes every interaction feel a bit more dramatic.
---
## đ§Ŧ Anonymous ID & Username Logic
- Every user gets a consistent anonymous fingerprint using a **custom in-house algorithm**
- The backend generates usernames using a `serverId-userId` pattern to:
- â
Ensure uniqueness per server
- â
Prevent tracking across servers
- â
Keep identifiers short and unguessable
---
## đ Real-Time Messaging (Socket.IO)
Socket.IO powers the real-time core of Secret Room. The frontend emits and listens for the following events:
### đĨ Incoming
- `new-message`
- `user-joined`
- `user-left`
- `server-expired`
### đ¤ Outgoing
- `send-message`
- `mark-as-read`
- `disconnect-intent`
---
## đ File Upload Support
Send and receive:
- Images: `png`, `jpg`, `jpeg`, `gif`
- Documents: `pdf`
Files are securely handled and scoped to the session.
---
## đ§ Message Decryption
Messages are **only decrypted** on the client **after the server confirms access conditions**, offering an extra layer of privacy and control.
---
## đŧī¸ Screenshots
### Home Page

### Empty Server

### Invited user joining Server

### Host with one User in server

### Conversation from Host to invited user

### Invited user's view

---
## âī¸ Getting Started
```bash
# 1. Clone the repository
git clone https://github.com/fabiconcept/secret-room
# 2. Go to the project folder
cd secret-room
# 3. Install dependencies
npm install
# 4. Configure environment variables
# .env.local
NEXT_PUBLIC_SIRV_CLIENT_ID
NEXT_PUBLIC_SIRV_CLIENT_SECRET
NEXT_PUBLIC_SIRV_CDN_URL
NEXT_PUBLIC_SIRV_API_URL
NEXT_PUBLIC_SERVER_URL
NEXT_PUBLIC_SOCKET_SERVER_URL
NEXT_PUBLIC_API_KEY
NEXT_PUBLIC_APP_URL
# 5. Run the development server
npm run dev
```
---
## â
Done & Polished
- â
Fully mobile responsive
- â
Clean server expiration screen UX
- â
File sharing support
- â
Deterministic anonymous usernames
- â
Auto message decryption
- â
Audio-enhanced UX (buttons + ambiance)
---
## đ Author
Built with â¤ī¸ by [Favour Tochukwu Ajokubi](https://github.com/fabiconcept)
---
## đĄ License
This project is licensed under the [MIT License](LICENSE)