MirrorLab is an open-source, browser-based professional photo editor capable of RAW processing, advanced color grading, and non-destructive editing. Built with modern web technologies, it aims to be a lightweight alternative to Lightroom Classic.
- 🖼️ RAW File Support: Import and edit
.CR2,.NEF,.ARW,.DNG, and other RAW formats directly in the browser. - 📈 Advanced Tone Curve:
- Multi-Channel support (Master, Red, Green, Blue).
- Precise numeric inputs for point control.
- Smooth, spline-based interpolation.
- 🎨 Comprehensive Color Tools:
- HSL / Color Mixer: Adjust Hue, Saturation, and Luminance for 8 individual color channels.
- Grading: Standard Exposure, Contrast, Highlights, Shadows, Whites, and Blacks.
- White Balance: Temperature and Tint controls.
- ⚡ High Performance:
- WebGL-ready architecture (currently Canvas 2D optimized).
- Real-time preview generation.
- Client-side processing (Privacy focused - images never leave your device).
- 💾 Export: Save your work as High-Quality PNG, JPEG, or WebP.
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/pronzzz/mirrorlab.git cd mirrorlab -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open in Browser: Visit
http://localhost:3000to start editing!
We have ambitious plans to take MirrorLab beyond the browser:
- Cross-Platform Desktop Apps: Native wrappers for macOS, Windows, and Linux (via Electron or Tauri).
- Mobile Application: Porting the engine to Android and iOS (React Native).
- WASM Core: Migrating heavy image processing to C++/Rust via WebAssembly for native speed.
- Local Library Management: File system access to manage folders without importing.
- Masking Tools: AI-based subject selection and linear/radial gradients.
- Frontend: React 19, TypeScript, Vite
- Styling: TailwindCSS, Lucide Icons
- Image Processing: HTML5 Canvas API (custom spline interpolation engine)
- RAW Decoding:
exifr(Preview extraction),libraw(Planned for full decode)
Contributions are welcome! Please read our CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Pranav Dwivedi
