Skip to content

dendotai/transpoze-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Transpoze.app

License macOS Linux Windows

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.

Screenshots

Main Interface

Transpoze.app Main Interface Drag and drop your WebM files and choose from optimized quality presets

Settings

Transpoze.app Settings Customize output location, file naming patterns, and display preferences

Goal

An exploration of whether vibe-coding can lead to an unmanageable mess of spaghetti code. Arguably, not achieved yet.

Features

  • 🎬 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

Download

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.

Platform Support

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

Usage

Coming soon:

Development

Prerequisites

  • 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

Quick Start

  1. Clone the repository

    git clone https://github.com/dendotai/transpoze-app.git
    cd transpoze-app
  2. 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.

Manual setup (if you prefer)

  1. Install dependencies: bun install
  2. Download FFmpeg: ./scripts/download-ffmpeg.sh
  3. Start development: bun run tauri dev

Available Make commands

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

FFmpeg Version Management

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.

Building

To build the application:

make build

Or manually: bun run tauri build

This creates:

  • .app bundle in src-tauri/target/release/bundle/macos/
  • .dmg installer in src-tauri/target/release/bundle/dmg/

Technical Highlights

  • 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.

Contributing

Please see CONTRIBUTING.md for guidelines on how to contribute to this project.

Troubleshooting

FFmpeg Download Issues

If the download script fails:

  1. Check your internet connection
  2. Ensure jq is installed: brew install jq
  3. Try downloading a specific version: ./scripts/download-ffmpeg.sh --version 7.0.2
  4. Check evermeet.cx for available versions

Build Issues

  1. Ensure Rust 1.82+ is installed (check rust-toolchain.toml)
  2. Clear build cache: rm -rf src-tauri/target
  3. Reinstall dependencies: rm -rf node_modules && npm install

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • FFmpeg - The powerful multimedia framework
  • Tauri - For the amazing desktop app framework
  • evermeet.cx - For providing macOS FFmpeg builds