3 min read

VERT: Convert Files in Your Browser, Not a Cloud (GitHub, Scanned)

A file converter that runs in your browser with WebAssembly, for over 250 file formats.

VERT logo
✅
Scan: safe. Nothing malicious. Video conversions that the browser cannot handle are sent to VERT's own server unless you run it yourself, and the scanner could not check its dependency versions. Scanned Oct 26, 2026; the full report is below.

VERT is a file converter that does the work on your own device. Open the site, drop in images, audio, documents or video, pick a format, and the conversion runs in the browser tab with WebAssembly instead of being uploaded to someone's server. It handles more than 250 formats, has no file size limits, and offers per-format settings in a clean Svelte interface.

That is the reason it is on the list: most free online converters ask you to upload private files to a stranger. You can use the public instance at vert.sh, or run your own copy from the Docker image in a couple of minutes, in which case nothing has to touch the project's servers at all.

The exception is video. Simple video conversions run in the browser, but heavier ones go to vertd, a small FFmpeg server, and by default that is VERT's hosted instance. If you care about privacy, run vertd yourself and point VERT at it in the settings.

  • Repository: github.com/VERT-sh/VERT
  • Licence: AGPL-3.0 (GNU Affero General Public License v3.0)
  • Language: TypeScript. Stars: 16.1K. Forks: 857. Last push: Oct 20, 2026.
  • Scan: safe, Oct 26, 2026, commit 257bcb3

Who it is for

Anyone who converts files now and then and would rather not upload them, and people who want a self-hosted converter for their home server or team.

Getting started

1. Use it in the browser, nothing to install

open https://vert.sh

2. Or self-host the prebuilt image, then open http://localhost:3000

docker run -d --restart unless-stopped -p 3000:80 --name vert ghcr.io/vert-sh/vert:latest

Settings such as analytics and the video server are baked into the prebuilt image. To change them, for example PUB_DISABLE_ALL_EXTERNAL_REQUESTS=true for a fully offline copy, build the image yourself as docs/DOCKER.md describes.

Safety scan

We cloned VERT-sh/VERT at commit 257bcb3 on Oct 26, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secrets, no pattern hits, no install hooks, no committed binaries and no bare-IP URLs. The Stripe key in .env.example is a publishable key, which is public by design and used for the donation button.
  • The external hosts are the project's own: vertd.vert.sh (with EU and US instances) for server-side video, plausible.io for analytics on the public site, and Stripe for donations. One setting, PUB_DISABLE_ALL_EXTERNAL_REQUESTS, turns all of them off in a self-built copy.
  • No advisories were reported, but that is because the project uses Bun and its bun.lock file is not one the scanner reads, so treat the dependency picture as unchecked rather than clean.
  • Two workflows, none using pull_request_target; none of the 5 third-party actions is pinned to a commit. Licence and contributing guide present; no security policy, Dependabot or CodeQL. There are no tagged releases; the Docker image tracks the main branch.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time codeNone: nothing runs at install beyond the package manager itself.
Committed binariesNone.
CI workflows2 workflows. None use pull_request_target. 5 of 5 third-party actions pinned to a tag rather than a commit.
Network hosts19 distinct hosts referenced from source; most often github.com, vert.sh, plausible.io, developer.mozilla.org. No URLs to bare IP addresses.
Known vulnerabilitiesNo lockfile to check: dependencies are declared as ranges, so what gets installed is whatever is current on the day.
Project hygieneHas licence file, contributing guide. Missing security policy, automated dependency updates, CodeQL.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

By the numbers

Stars16.1K
Forks857
Contributors46
Commits990
Open issues30
Open pull requests3
Releases0
Latest releasenone tagged
LicenceAGPL-3.0
Main languageTypeScript
Project age1 year
Last pushOct 20, 2026
Tracked files188
Lines of code28.5K
Checkout size2 MB

Lines by language: TypeScript 12.7K, Svelte 7,777, JSON 6,240, JavaScript 728, SCSS 456, Markdown 263.

Questions

Is VERT free?

Yes. VERT is free and AGPL-3.0, which means anyone running a modified version as a public service must share their changes. The public instance at vert.sh asks for donations but has no paid tier.

Does VERT upload my files?

Images, audio and documents are converted in your browser and never leave your device. Some video conversions go to a vertd server, by default VERT's own; self-host vertd to keep video local as well.

Can I run VERT offline?

Yes, if you self-host it. Build the Docker image with PUB_DISABLE_ALL_EXTERNAL_REQUESTS=true and run your own vertd for video, and it needs no outside connection.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.