Note
This app was vibe-coded in a single redbull-fueled and kebab-refueled evening.
Looking at the code may cause existential dread.
Built with the 'useEffect until it works' pattern.
A fast, modern desktop app for transcoding WebM videos to MP4 format. Built with Tauri, React, and TypeScript.
Drag and drop your WebM files and choose from optimized quality presets
Customize output location, file naming patterns, and display preferences
An exploration of whether vibe-coding can lead to an unmanageable mess of spaghetti code. Arguably, not achieved yet.
- π¬ Batch conversion: Transcode multiple WebM files at once with drag-and-drop
- π― Quality Presets: Choose from High, Balanced, Web, or Mobile quality settings
- π Progress Tracking: Real-time conversion progress with queue management
- ποΈ Flexible Output: Save to custom directory or alongside source files
- π Conversion History: Track all your past transcoding jobs
- πΌοΈ Video Thumbnails: Preview your videos before transcoding
- π Native Performance: Bundled FFmpeg for fast, dependency-free transcoding
Note: Releases are not available yet. The app is in development since yesterday.
Once available, you'll be able to download from the Releases page.
macOS (Currently supported):
- Universal Binary: Works on both Intel and Apple Silicon Macs
- No dependencies: FFmpeg is bundled with the app
Linux (Planned):
- Native .AppImage and .deb packages
- Bundled FFmpeg for distribution independence
- Support for major distributions (Ubuntu, Fedora, Arch)
Windows (Planned):
- Native .exe installer
- Bundled FFmpeg (no manual installation needed)
- Windows 10/11 support
Coming soon:
- macOS: Download for Mac
- Linux: Download for Linux
- Windows: Download for Windows
- Node.js 16+ and npm
- Rust 1.82+
- macOS, Linux, or Windows (currently macOS only; Linux/Windows support coming soon)
- jq (for FFmpeg download script):
brew install jq
-
Clone the repository
git clone https://github.com/dendotai/transpoze-app.git cd transpoze-app
-
Start developing
make setup # One-time setup: install deps and download FFmpeg make dev # Start the development server
That's it! The Makefile handles all the setup automatically.
- Install dependencies:
bun install
- Download FFmpeg:
./scripts/download-ffmpeg.sh
- Start development:
bun run tauri dev
make help # Show all available commands
make setup # Initial setup (install deps + download FFmpeg)
make desktop-dev # Start desktop development server
make desktop-build # Build the desktop application
make lint # Run linters and fix issues
make type-check # Run TypeScript type checking
make clean # Clean build artifacts
The project uses a versioned FFmpeg setup:
- Check current version: Look at
scripts/ffmpeg-versions.json
- Download specific version:
./scripts/download-ffmpeg.sh --version 7.0.2
- Force re-download:
./scripts/download-ffmpeg.sh --force
- Version info: Stored in
src-tauri/binaries/ffmpeg-version.json
The FFmpeg version is tracked and displayed in the app's About dialog, making it easy to know which version is bundled with each release.
To build the application:
make build
Or manually: bun run tauri build
This creates:
.app
bundle insrc-tauri/target/release/bundle/macos/
.dmg
installer insrc-tauri/target/release/bundle/dmg/
- Smart Tooltips: Custom edge-aware tooltips that never get clipped, built without external positioning libraries
- Inline Autocomplete: Cursor-style ghost text suggestions for filename variables - no dropdowns, just subtle hints
- Zero Dependencies: Bundled FFmpeg means users don't need to install anything
- Architecture-Specific Builds: Optimized binaries for both Intel and Apple Silicon
See BRAGGING.md for more clever solutions we've implemented.
Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
If the download script fails:
- Check your internet connection
- Ensure
jq
is installed:brew install jq
- Try downloading a specific version:
./scripts/download-ffmpeg.sh --version 7.0.2
- Check evermeet.cx for available versions
- Ensure Rust 1.82+ is installed (check
rust-toolchain.toml
) - Clear build cache:
rm -rf src-tauri/target
- Reinstall dependencies:
rm -rf node_modules && npm install
This project is licensed under the MIT License - see the LICENSE file for details.
- FFmpeg - The powerful multimedia framework
- Tauri - For the amazing desktop app framework
- evermeet.cx - For providing macOS FFmpeg builds