A cross-platform desktop application for VERT, the open-source file conversion tool. Built with Tauri 2, VERT Desktop wraps the VERT web frontend and bundles vertd — the video conversion daemon — as a sidecar process for local, offline file conversion.
VERT Desktop packages the full VERT experience into a native desktop application:
- VERT Frontend — The SvelteKit-based web UI for file conversion (images, audio, video, documents), synced directly from the upstream VERT repository.
- vertd — A Rust-based FFmpeg wrapper that handles video conversion. Bundled as a Tauri sidecar binary that starts automatically when the app launches and shuts down when the app closes.
- FFmpeg — Bundled alongside vertd for video/audio processing. No system-wide FFmpeg installation required.
| Platform | Architecture |
|---|---|
| macOS | Apple Silicon (arm64), Intel (x86_64) |
| Windows | x86_64 |
| Linux | x86_64 |
- Rust (stable toolchain)
- Bun (package manager)
- Tauri 2 prerequisites for your platform
Pull the latest VERT frontend source into the project:
bun run syncThis clones the VERT repository, copies its src/, static/, and configuration files into the project, merges dependencies, and runs bun install. Run this again at any time to update to the latest upstream version.
Download vertd and FFmpeg binaries for your platform:
bun run download-vertdTo download binaries for all supported platforms (for cross-compilation):
bash scripts/download-vertd.sh --all-platformsBinaries are placed in src-tauri/binaries/ with Tauri-compatible target triple naming.
bun run tauri devThis starts the Vite dev server for the frontend and the Tauri application with hot reload. vertd launches automatically as a sidecar process on port 24153.
bun run tauri buildThis produces a distributable application bundle for your platform with the VERT frontend, vertd, and FFmpeg all included.
vert-desktop/
├── src/ # VERT frontend (SvelteKit, synced from upstream)
├── src-tauri/
│ ├── src/
│ │ ├── main.rs # Application entry point
│ │ └── lib.rs # vertd sidecar lifecycle management
│ ├── binaries/ # Sidecar binaries (vertd, ffmpeg, ffprobe)
│ ├── Cargo.toml # Rust dependencies
│ ├── tauri.conf.json # Tauri configuration
│ └── capabilities/ # Tauri security permissions
├── scripts/
│ ├── sync-vert.sh # Sync VERT frontend from GitHub
│ └── download-vertd.sh # Download vertd + FFmpeg binaries
├── static/ # Static assets
└── .env # Environment configuration
-
Startup — When the application launches, the Tauri backend spawns vertd as a sidecar process. vertd starts an HTTP server on
localhost:24153and locates the bundled FFmpeg binaries automatically. -
Conversion — The VERT frontend communicates with vertd over HTTP/WebSocket for video conversion tasks. Image, audio, and document conversions are handled client-side via WebAssembly (ImageMagick WASM, browser FFmpeg).
-
Shutdown — When the application window is closed, the Tauri runtime kills the vertd sidecar process.
Configuration is managed via .env in the project root:
| Variable | Description | Default |
|---|---|---|
PUB_VERTD_URL |
vertd server URL | http://localhost:24153 |
PUB_HOSTNAME |
Frontend hostname | localhost:1420 |
PUB_ENV |
Environment mode | development |
PUB_DISABLE_ALL_EXTERNAL_REQUESTS |
Disable external network requests | false |
- VERT — The open-source file conversion tool
- vertd — Video conversion daemon
- Tauri — Desktop application framework
- FFmpeg — Multimedia processing
This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.
Copyright (C) 2025 Barn Door Events Ltd