Streamify is a real-time screen-sharing and collaboration application that allows users to create or join rooms using unique codes. Users can stream their screens, including video and audio, with a focus on high-quality streaming for optimal collaboration. Currently, each room supports up to two participants.
- Room Creation: Generate a unique, 5-character alphanumeric room code
- Join Room: Enter a room code to join an existing session
- High-Quality Streaming: Support for 1080p and potentially 1440p video resolution with frame rates up to 120 fps
- Screen Sharing with Audio: Stream both video and audio to other participants
- Next.js with TypeScript: For building a responsive and dynamic user interface
- Tailwind CSS: UI primarily consists of shadcn/ui components styled with Tailwind CSS
- Go: For handling server-side logic and WebSocket connections
- Redis: For managing active room codes and tracking participant connections
- Docker: For containerized development and deployment
- WebSockets: For real-time communication between participants
- Clone the repository:
git clone https://github.com/username/streamify.git cd streamify - Install dependencies:
- For the backend:
make build
- For the frontend:
npm install
- For the backend:
- Run the backend server:
make run
- Start the frontend development server:
npm run dev
- Create Room: Navigate to
/homeand click "Create Room" to generate a new room code. - Join Room: Enter a valid room code and click "Join Room" to enter an existing session.
Directory structure:
└── anishg-git-streamify/
├── README.md
├── backend/
│ ├── cmd/
│ │ └── streamify/
│ └── internal/
│ ├── connections/
│ ├── handlers/
│ ├── logic/
│ └── storage/
│ └── models/
└── frontend/
├── public/
└── src/
├── app/
│ ├── fonts/
│ ├── home/
│ └── room/
│ └── [roomCode]/
├── components/
│ └── ui/
│ └── typography/
└── lib/
└── utils.ts
- Implement advanced session management for more than two participants per room
- Use FrameGen or similar technology to boost stream frame rate with minimal latency
Contributions are welcome! Please fork the repository and submit a pull request for any improvements or new features.
This project is licensed under the MIT License.