Captrix is a desktop screen recording application built with Electron, React, and TypeScript. It is inspired by the features and design of Screen Studio and Cap and is designed to work completely offline.
- Electron for the desktop application framework.
- React for the user interface.
- TypeScript for type-safe JavaScript.
- Vite for the build tool.
Here is a step-by-step plan for the features we will build:
- Setup React & TypeScript: Integrate React into the Electron renderer process.
- Basic UI Shell: Create the main application window and layout with placeholders for controls and video preview.
- Screen Source Selection: Allow the user to select what to record: the entire screen, a specific application window.
- Recording Controls: Implement Start, Stop, and Pause/Resume functionality for recording.
- Video Preview: Display the recorded video in the application.
- Audio Recording: Add the ability to capture audio from the system and/or a microphone.
- Webcam Overlay: Allow recording from the webcam and display it as an overlay on the screen recording.
- Auto-Zoom & Pan: Automatically follow and zoom in on the cursor or active window.
- Cursor Highlighting: Add visual effects to the mouse cursor to make it stand out.
- Video Trimming and Clipping: Implement basic video editing to trim the start and end of recordings.
- Background Styling: Add padding, blur, or custom image backgrounds to the video.
- Video Annotations: Add text, shapes, and other annotations on top of the recorded video.
- Export Options: Allow users to save recordings in different formats (e.g., MP4, WebM, GIF).
- Recording Gallery: Create a view to browse, preview, and manage past recordings.
- Settings Page: Add a settings page for configuring video quality, frame rate, default save location, and other preferences.
- UI/UX Polish: Refine the user interface and experience to match the design of Cap.
- Keyboard Shortcuts: Implement global keyboard shortcuts for starting/stopping recordings.
- Offline First: Ensure all features work without an internet connection.
This roadmap will guide our development process. Let's get started!