A modern, privacy-first web screen recorder. No ads, no time limits, no data collection.
The project was initially developed by Sagnik Sahoo during the COVID-19 era to record online classes. Later, it was made open-source.
V1 (Legacy): Built with Pug, Parcel, and SASS β a simple single-page recorder. Try V1 β
V2 (Current): Complete rewrite using Next.js, React, and TypeScript with camera overlay, multiple export formats, and keyboard shortcuts.
- Screen Recording β Capture screen, window, or browser tab
- Camera Overlay β Picture-in-picture webcam with draggable positioning
- Microphone Audio β Record system audio and microphone
- Multiple Layouts β PiP and circle camera overlay modes
- Export Formats β WebM (native) and MP4 (server-converted)
- Keyboard Shortcuts β Ctrl+P (pause), Ctrl+M (mic), Ctrl+C (camera), Ctrl+S (screen)
- No Time Limits β Record as long as you need
- Privacy First β All processing happens locally
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript |
| Styling | Tailwind CSS |
| Build | Turborepo, pnpm |
| Backend | Express.js (for MP4 conversion) |
| Deployment | Vercel (web), Railway (API) |
- Node.js 18+
- pnpm 9+
# Clone the repository
git clone https://github.com/heysagnik/screenREC.git
cd screenREC
# Install dependencies
pnpm install
# Start development servers
pnpm dev| Command | Description |
|---|---|
pnpm dev |
Start all apps in development mode |
pnpm build |
Build all apps for production |
pnpm dev:web |
Start only the web app |
pnpm dev:api |
Start only the API server |
screenREC/
βββ apps/
β βββ web/ # Next.js frontend
β βββ api/ # Express.js backend (MP4 conversion)
βββ packages/
β βββ shared/ # Shared utilities
βββ turbo.json # Turborepo config
| Browser | Status |
|---|---|
| Chrome | β Supported |
| Edge | β Supported |
| Firefox | β Supported |
| Safari | β Supported |
| Mobile | β Not supported (getDisplayMedia limitation) |
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT β see LICENSE.md
Maintained by Sagnik Sahoo