Omestr is a decentralized, anonymous chat application built on the Nostr protocol, inspired by the classic Omegle experience. It allows users to connect randomly with strangers across the Nostr network for one-on-one conversations.
- 🎭 Anonymous Chat: Generate ephemeral keypairs for each session
- 🌐 Decentralized: Powered by the Nostr protocol and relay network
- 🔀 Random Matching: Connect with random users from around the world
- 💬 Real-time Messaging: Instant message delivery via Nostr relays
- 🔄 Skip Function: Easily disconnect and find a new chat partner
- ⏱️ Connection Timer: See how long you've been chatting with your partner
- 🔔 Sound Notifications: Audio alerts for new messages and connections
- 😀 Emoji Reactions: React to messages with emoji
- Next.js: React framework for the frontend
- TypeScript: For type-safe code
- Nostr Protocol: Decentralized social networking protocol
- TailwindCSS: For styling the user interface
- Node.js (v18 or later)
- npm or yarn
-
Clone the repository:
git clone https://github.com/imshrishk/omestr.git cd omestr -
Install dependencies:
npm install # or yarn install -
Run the development server:
npm run dev # or yarn dev -
Open http://localhost:3000 in your browser to see the application.
- Key Generation: When you open Omestr, it generates a new Nostr keypair for your anonymous session.
- Finding Partners: The app broadcasts a "looking for chat" event to Nostr relays.
- Matching: When another user is also looking, you're matched together.
- Chatting: Chat messages are sent via Nostr relays between matched users.
- Next: Click "Next" to end the current chat and find a new partner. (Currently there's an issue with messaging and messages might appear not in order and some might even not be received While matchmaking, if you already have multiple instnaces open just try refresh or clear data from debug)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Nostr Protocol
- nostr-tools
- Inspired by the original Omegle
The application uses sound notifications for various events. You'll need to add your own sound files to the public/sounds directory:
message.mp3: Played when receiving a new messageconnect.mp3: Played when connecting with a new partnerdisconnect.mp3: Played when disconnecting from a chat
You can use any MP3 files of your choice, just make sure they're short and appropriate for notifications.(not added yet)