A comprehensive screen recording tool with built-in video editing and sophisticated sharing controls.
Capture, Edit, Share - All in one place
ScreenForge - Professional screen recording and video editing platform
- ๐ฅ Multiple Recording Modes: Capture entire desktop, specific windows, or browser tabs
- โ๏ธ Built-in Video Editor: Trim videos and add AI-generated captions
- ๐ Secure Sharing: Flexible sharing options with download permissions
- โ๏ธ Cloud Storage: Powered by Cloudinary for reliable video hosting
- ๐ฑ Responsive Design: Works seamlessly on desktop and mobile devices
- ๐ Authentication: Secure user authentication with Clerk
- ๐จ Modern UI: Clean, intuitive interface built with Tailwind CSS
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL database
- Git
-
Clone the repository
git clone https://github.com/NureniJamiu/screenforge.git cd screenforge -
Install dependencies
npm run install:all
-
Set up environment variables
Create
.envfiles in both frontend and backend directories:Frontend (.env)
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key Here are some planned features and integrations for upcoming releases: CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret NODE_ENV=development
-
Set up the database
npm run prisma:generate npm run prisma:migrate
-
Start the development servers
npm run dev
This will start:
- Frontend: http://localhost:5173
- Backend: http://localhost:3001
screenforge/
โโโ ๐ frontend/ # React + TypeScript frontend
โ โโโ ๐ src/
โ โ โโโ ๐ components/ # Reusable UI components
โ โ โโโ ๐ pages/ # Page components
โ โ โโโ ๐ hooks/ # Custom React hooks
โ โ โโโ ๐ services/ # API services
โ โ โโโ ๐ store/ # Zustand state management
โ โ โโโ ๐ types/ # TypeScript type definitions
โ โ โโโ ๐ utils/ # Utility functions
โ โโโ ๐ package.json
โ โโโ ๐ vite.config.ts
โโโ ๐ backend/ # Node.js + Express backend
โ โโโ ๐ src/
โ โ โโโ ๐ controllers/ # Route controllers
โ โ โโโ ๐ middleware/ # Express middleware
โ โ โโโ ๐ routes/ # API routes
โ โ โโโ ๐ utils/ # Utility functions
โ โโโ ๐ prisma/ # Database schema and migrations
โ โโโ ๐ package.json
โ โโโ ๐ vercel.json
โโโ ๐ package.json # Workspace configuration
โโโ ๐ README.md # This file
| Technology | Description |
|---|---|
| React 18 | Modern React with hooks and concurrent features |
| TypeScript | Type-safe JavaScript development |
| Vite | Fast build tool and development server |
| Tailwind CSS | Utility-first CSS framework |
| Clerk | Authentication and user management |
| React Router | Client-side routing |
| Zustand | Lightweight state management |
| Technology | Description |
|---|---|
| Node.js | JavaScript runtime environment |
| Express | Web application framework |
| TypeScript | Type-safe JavaScript development |
| PostgreSQL | Relational database |
| Prisma | Next-generation ORM |
| Cloudinary | Cloud-based video storage and processing |
| Clerk | Authentication middleware |
npm run dev # Start both frontend and backend in development
npm run build # Build both applications for production
npm run install:all # Install dependencies for all workspaces
npm run clean # Remove all node_modules folders
npm run prisma:generate # Generate Prisma client
npm run prisma:migrate # Run database migrations
npm run prisma:studio # Open Prisma Studiocd frontend
npm run dev # Start Vite development server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production build
npm run test # Run testscd backend
npm run dev # Start with nodemon
npm run build # Build TypeScript
npm run start # Start production server
npm run prisma:generate # Generate Prisma client
npm run prisma:migrate # Run database migrations
npm run migrate:cloudinary # Migrate to Cloudinary storage- Connect your GitHub repository to Vercel
- Set the build command:
npm run build:frontend - Set the output directory:
frontend/dist - Add environment variables in Vercel dashboard
- Deploy from the
backenddirectory - Vercel will automatically detect the serverless function setup
- Add environment variables in Vercel dashboard
- Run database migrations in production
- Create a Clerk account at clerk.com
- Create a new application
- Copy the publishable and secret keys to your environment files
- Create a Cloudinary account at cloudinary.com
- Get your cloud name, API key, and API secret
- Add them to your backend environment file
- Create a PostgreSQL database
- Update the
DATABASE_URLin your backend.envfile - Run migrations:
npm run prisma:migrate
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the coding standards in
.github/copilot-instructions.md - Write tests for new features
- Ensure TypeScript types are properly defined
- Follow the coding standards in
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Use TypeScript strictly with proper type definitions
- Follow React functional components with hooks
- Use Tailwind CSS for styling with mobile-first approach
- Implement proper error handling and loading states
- Use Prisma Client for database operations
- Follow RESTful API design principles
This project is licensed under the MIT License - see the LICENSE file for details.
- Clerk for authentication services
- Cloudinary for video storage and processing
- Vercel for hosting and deployment
- Prisma for database management
Planned features for upcoming releases:
- Zoom on Cursor Point: Viewers can zoom in on specific areas of the screen recording by hovering or clicking near the cursor.
- Comments & Reactions: Users can leave comments or emoji reactions directly on shared videos for collaborative feedback.
- Advanced Analytics: Track viewer engagement, watch time, and interaction statistics for each video.
- Third-Party Integrations: Connect with platforms like Slack, Trello, Notion, and Google Drive for seamless sharing and workflow automation.
- Custom Branding: Add custom watermarks, intro/outro screens, and branding options for organizations.
- Transcript Search: Search within AI-generated captions and transcripts for quick navigation.
- Live Collaboration: Multiple users can annotate or edit videos in real-time.
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
