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