A privacy-first, client-side video format converter that allows users to convert videos instantly without uploading files to any server. Supports MP4, MKV, MOV, AVI, and WEBM formats with bulk conversion capabilities.
- Privacy-First: All processing happens in the browser - no files are uploaded to any server
- Multiple Formats: Supports MP4, MKV, MOV, AVI, WEBM formats
- Bulk Conversion: Convert up to 10 files at once
- ZIP Downloads: Download all converted files as a single ZIP archive
- File Renaming: Rename output files before downloading (extension preserved)
- Mobile Responsive: Works seamlessly on all device sizes
- Real-time Progress: Visual progress indicators during conversion
- No Storage: Files are never stored on any server
swift-video/
├── public/ # Static assets
│ └── robots.txt
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── ui/ # Shadcn/ui components
│ │ │ └── [buttons, dialogs, inputs, etc.]
│ │ └── VideoConverter/ # Main video conversion module
│ │ ├── FileUpload.tsx # Handles file selection/drag&drop
│ │ ├── ConversionOptions.tsx # Format/resolution selection
│ │ ├── ConvertButton.tsx # Conversion trigger button
│ │ ├── DownloadSection.tsx # Download controls and rename UI
│ │ └── VideoConverter.tsx # Main component orchestrator
│ ├── hooks/ # Custom React hooks
│ │ ├── use-toast.ts # Toast notifications
│ │ └── use-mobile.ts # Mobile detection
│ ├── lib/ # Utility functions
│ │ └── utils.ts # Class name merging utility
│ ├── pages/ # Page components
│ │ ├── Index.tsx # Home page
│ │ └── NotFound.tsx # 404 page
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ └── index.css # Global styles
├── package.json # Dependencies and scripts
├── vite.config.ts # Vite build configuration
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── README.md # This file
- Framework: React (v18) with TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- Build Tool: Vite
- Icons: Lucide React
- Animations: Framer Motion
- State Management: React Hooks
- ZIP Creation: JSZip
- Testing: Vitest
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/harshammg/SwiftVideo.git cd SwiftVideo -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and go to
http://localhost:8080
Simply describe what you want to do in natural language, such as:
- "Run the program"
- "Start the development server"
- "Launch the video converter app"
- "Open the app in browser"
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLintnpm run test- Run unit tests
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This is a client-side application where all processing happens in the browser. While we ensure privacy by not storing files on any server, the conversion process relies on simulated processing for demonstration purposes. Actual video conversion would require additional client-side processing libraries in a production environment.
# Step 1: Clone the repository using the project's Git URL.
git clone <YOUR_GIT_URL>
# Step 2: Navigate to the project directory.
cd <YOUR_PROJECT_NAME>
# Step 3: Install the necessary dependencies.
npm i
# Step 4: Start the development server with auto-reloading and an instant preview.
npm run devEdit a file directly in GitHub
- Navigate to the desired file(s).
- Click the "Edit" button (pencil icon) at the top right of the file view.
- Make your changes and commit the changes.
Use GitHub Codespaces
- Navigate to the main page of your repository.
- Click on the "Code" button (green button) near the top right.
- Select the "Codespaces" tab.
- Click on "New codespace" to launch a new Codespace environment.
- Edit files directly within the Codespace and commit and push your changes once you're done.
This project is built with:
- Vite
- TypeScript
- React
- shadcn-ui
- Tailwind CSS