Secure, decentralized, real-time communication.
A modern peer-to-peer messaging platform that combines end-to-end encrypted messaging, video calls, and server-based chat rooms. Built with privacy and security at its core.
Palyra is a full-featured communication platform that enables users to connect through secure, private channels. Using WebRTC for peer-to-peer video calls and Supabase for real-time messaging infrastructure, Palyra offers a seamless experience without compromising on security or performance.
- End-to-end encrypted peer-to-peer video calls
- Secure authentication with fingerprint tracking
- Bot detection and rate limiting
- User blocking and privacy controls
- Real-time text messaging with typing indicators
- File sharing with automatic image compression
- Message reactions and replies
- Link previews with automatic URL detection
- Message editing and deletion
- High-quality video and audio streaming
- Screen sharing capabilities
- Camera switching on mobile devices
- Call duration tracking
- Public and private servers for group communication
- Server management with owner controls
- Member moderation (kick/ban functionality)
- Responsive design for desktop and mobile
- Dark/light theme support
- Customizable font sizes
- Real-time online status indicators
- Read receipts and message notifications
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Real-time Communication: WebRTC via PeerJS
- Backend: Supabase (PostgreSQL, Realtime, Storage, Auth)
- UI Icons: Font Awesome 6
- Styling: Custom CSS with CSS Variables
- Node.js (for development server)
- Supabase account and project
- Clone the repository:
git clone https://github.com/endoverdosing/palyra.git
cd palyra- Configure environment variables:
Create a
.envfile in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Install dependencies:
npm install- Run the development server:
npm run dev- Open the application:
Navigate to
http://localhost:3000in your browser.
Required Supabase tables:
profiles- User profiles and authenticationfriendships- Friend connections and requestsmessages- Direct messages between usersserver_messages- Server/group messagesservers- Server/group chat metadataserver_members- Server membership trackingblocked_users- User blocking functionalitynotifications- In-app notificationslink_previews- Cached URL previews
- Sign up with a unique username and secure password
- Add friends by searching for their usernames
- Start chatting with direct messages or create/join servers
- Open a chat with a friend
- Click the video call button
- Wait for the other user to accept
- Use controls to mute, disable video, or share your screen
- Navigate to the Global tab
- Click the + button
- Choose between public or private (password-protected)
- Invite friends or share the server ID
- Rate limiting on login attempts, messages, and friend requests
- Bot detection with honeypot fields and user interaction tracking
- Session fingerprinting for anomaly detection
- Account lockout after failed login attempts
- Input sanitization to prevent XSS attacks
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers with WebRTC support
Note: HTTPS is required for video calling features. Use localhost for development or deploy with SSL/TLS.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
- PeerJS for simplifying WebRTC implementation
- Supabase for real-time backend infrastructure
- Font Awesome for iconography
- Discord: Join our community
- Issues: GitHub Issues
Built with ❤️ for secure, private communication.
