mrkeyoor.com_
Sat 17 Oct 13:31 UTC
Self-Hostedevaluationupdated 10 Oct 2026

VERT review

VERT converts images, audio, documents, and videos through a browser interface. Non-video files are processed on your device, while video can use local browser processing or a separate conversion server, so the destination depends on the job.

+137stars / 7d
Verdict

Our VERT run installed 389 packages and occupied 965 MB, then failed its build after 18 seconds, leaving source deployment unverified. Consider it for interactive conversion when local non-video processing is the main benefit and you can control the video destination. Skip it as a presumed offline solution: the documented external-request switch still permits an FFmpeg CDN fetch.

We ran it

Lab card: what happened when we ran VERTScreenshot of VERT (vert.sh)
Install✓ · 12s389 packages · 965 MB
Build✗ · 18s
Testsn/ano test script
Repo169 files~16,745 lines of source · 55.1 MB · 2 CI workflows · Dockerfile

Answers from our run

Does VERT build from source?

Dependencies installed in 12 seconds (389 packages), and the build failed. We cloned commit 91091a1 into a clean Debian container with 3 CPUs and no project-specific setup.

Does VERT have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use VERT?

Air-gapped deployments expecting the external-request switch to remove every network dependency: the FAQ retains an FFmpeg fetch from cdn.jsdelivr.net.

What are the alternatives to VERT?

HandBrake, FFmpeg, ImageMagick. Our VERT run installed 389 packages and occupied 965 MB, then failed its build after 18 seconds, leaving source deployment unverified.

Setup2/5Failed build, embedded settings, and a separate video daemon
Docs3/5Useful deployment guides, but FAQ video wording needs cross-checking
Community4/5October 9 push and recent issue closures plus open PR activity
Maturity3/5Documented conversion paths, without a passing build in our sandbox

Discussed on

  1. hnVert: The file converter you'll love4 points

Who it’s for

People doing occasional file conversions who want a browser interface and local non-video processing.
Teams willing to host and configure their own video daemon for controlled server processing.
Operators who can rebuild the frontend when its embedded settings need changing.

Who it’s NOT for

Air-gapped deployments expecting the external-request switch to remove every network dependency: the FAQ retains an FFmpeg fetch from cdn.jsdelivr.net.
Users requiring every video to stay in the browser: the video guide allows server processing for unsupported or unsuitable jobs.
Container platforms that require runtime-only configuration: the Docker guide says settings are embedded during build.
Developers needing a verified source deployment at commit 91091a1: our build failed and the harness skipped tests.

Setup reality

Our October 9 sandbox installed commit 91091a1 in 12 seconds, adding 389 packages and occupying 965 MB. The build failed with exit code 1 after 18 seconds. Tests were skipped because no supported script or target was found. The tail shows Rollup tracing and binding calls, but omits the diagnostic needed to identify the cause.

The source guide requires Bun and an environment file. Non-video processing needs no paid conversion account. Server video uses the separate vertd daemon, either the official instance or one you host, with its destination configured in the interface.

Docker settings are embedded at build time. The external-request switch still permits an FFmpeg WebAssembly download from cdn.jsdelivr.net. Our failed build does not verify the custom-image route or any real file conversion.

VERT keeps non-video conversion on your device

Convert a document or an image through VERT, and the project says the file stays on your device while WebAssembly does the work. That makes it appealing when the alternative is uploading a private file to an unfamiliar conversion site. The README lists images, audio, documents, and video behind a Svelte interface with conversion settings. Video needs a closer look because some jobs can leave the browser and use a separate server.

Our checkout occupied 55.1 MB across 169 files and roughly 16,745 lines of source. Installation expanded the environment to 965 MB, so the repository is a more substantial self-hosting commitment than its simple upload screen suggests. That disk figure describes our developer setup, not how much a visitor downloads. VERT is worth considering for occasional interactive conversion, especially when you want a browser interface rather than remembering a different command for each file type.

What happened when we ran it

Our VERT sandbox installed commit 91091a1 in 12 seconds, adding 389 packages and using 965 MB on disk. The October 9, 2026 run used the lab-node:22 image with Bun, 3 CPUs, and 8 GB of RAM in an unprivileged container without secrets. Installation succeeded. The build failed with exit code 1 after 18 seconds, and tests were skipped because the harness found no supported test script or target.

The supplied build tail is a Rollup stack trace. It names error handling, variable tracing, and binding calls, then says the build script exited with code 1. It does not identify the missing symbol, source file, or diagnostic that triggered the stack. A specific dependency mismatch or configuration mistake would be a guess. The result is a failed production-build step at this commit, with the cause unresolved from the evidence provided.

Our scan found 2 CI workflow files, a Dockerfile, and a Compose file, but no tests directory. Those deployment files provide documented routes to inspect, not proof that an alternative route succeeds. We have no passing suite or vulnerability-audit result for VERT. We also have no conversion-quality or throughput measurements, so neither the supported-format list nor a short dependency install should be read as evidence that your particular file will convert correctly.

Video can use a separate conversion server

The video conversion guide says browser video processing uses Mediabunny where possible. Unsupported or unsuitable jobs may need server processing through vertd, an FFmpeg wrapper. The project operates a public daemon, and you can point the interface at your own instance. This gives users a choice, but the destination matters: a browser-based interface alone does not promise that every video remains on the same device.

Our 18-second failed build offers no evidence about either conversion path. The FAQ describes retention for uploads to the official video server, while the dedicated guide describes local processing first. Read the FAQ's upload policy as applying to the server route, and verify which route your selected job uses. For sensitive video, I would configure a controlled daemon before loading the file, rather than rely on the appearance of a local upload interface.

The external-request switch still permits an FFmpeg CDN fetch

The FAQ documents PUB_DISABLE_ALL_EXTERNAL_REQUESTS as a build-time setting for disabling services such as analytics and server conversion. It then names an exception: cdn.jsdelivr.net supplies the FFmpeg WebAssembly build. That makes the option useful for reducing outside contact, while falling short of a documented air-gapped setup. If your network blocks all external hosts, check the asset path before choosing VERT for offline conversion.

The 965 MB we measured belongs to the installed development environment and does not establish that a browser has every conversion asset cached. The FAQ also names FFmpeg, ImageMagick, and Pandoc as conversion libraries and describes Plausible analytics with a settings opt-out. Those statements explain parts of the design, not an independent audit of network behavior. Teams with strict privacy rules should verify actual requests for each permitted file category and deployment configuration.

Docker settings are baked into the image

The Docker guide says configuration values are embedded during the build. Pulling the supplied image prevents you from changing them as ordinary runtime environment variables. That affects the daemon URL, analytics destination, and external-request policy. A team expecting to promote one identical container through environments and inject different settings at startup will need to account for this constraint when packaging its own instance.

Our 389-package installation succeeded, but it did not produce a successful build, so a custom image remains an unverified route in this review. The getting-started guide requires Bun and an environment file based on the supplied example. Basic non-video conversion does not require a paid conversion account. Server video adds the daemon and its connection settings, plus the ordinary work of deciding where that service runs and who can reach it.

October activity continues without a latest release entry

The repository was pushed on October 9, 2026. GitHub listed 15,823 stars and 43 open issues and PRs, and the latest-release endpoint returned no release. Recent activity included closed AVIF/HEIC and image-sequence requests alongside an open contributors-display PR. These observations show activity beyond a release tag. A closed conversion issue alone does not establish that its reported file now works, so it should not substitute for checking your own inputs.

The lab's 55.1 MB checkout and failed build make me cautious about recommending an immediate source deployment. For local video with a dedicated desktop interface, compare HandBrake. For repeatable scripted work, FFmpeg or ImageMagick gives more direct control over media-specific operations. Choose VERT when the browser interface earns its operating cost, and confirm the processing destination before converting a file whose privacy matters.

Alternatives

ProjectWhat it isPick it when
HandBrake gh↗A desktop video transcoder for Linux, macOS, and Windows.pick this instead when local video conversion deserves a dedicated desktop workflow.
FFmpeg gh↗Command-line tools and libraries for audio and video processing.pick this instead when repeated media jobs need explicit, scriptable conversion commands.
ImageMagickImage conversion and processing tools with command-line and API access.pick this instead when image automation matters more than a shared browser interface.

What people are saying

  1. [github-trending] VERT-sh/VERT

Sources

  1. VERT README
  2. VERT FAQ and external-request exception
  3. Local and server video processing
  4. Docker build-time configuration
  5. Source setup guide
  6. AVIF and HEIC conversion report, now closed
  7. VERT repository activity

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →