The Veloxar Blog

Engineering notes from the build.

Why we made the decisions we made. The bugs that forced rewrites, the experiments that shaped the defaults, and the parts of the codebase we're most willing to defend.

One click from browser to app

The Veloxar Companion extension sends links straight from Safari or Chrome to the desktop app over a local bridge. Why we picked a localhost loop over cloud sync, and what the handshake looks like.

We don't keep a list of supported sites

Most download managers maintain a domain list and break when a site changes. We wrote 8 plugins that detect the underlying CMS technology instead. 900+ sites, no list to maintain.

Why 50 failed downloads don't retry at once

A flaky host returning 503s is a problem. 50 downloads slamming it back in lockstep every 2 seconds is a worse problem. The four jitter strategies we ship and why decorrelated usually wins.

The gatekeeping layer, and what you can't actually skip

Every other download manager says it skips CAPTCHAs and countdown timers. We don't, because you can't. Cloudflare cookies, rate limits, and being honest about where the wins actually are.

Honest about DRM

Widevine and FairPlay streams aren't downloadable, and pretending otherwise wastes your time. We detect them before the first segment fetch and fail clearly in under a second.

Resume that actually resumes

Your Wi-Fi drops at 2.1 GB of a 3 GB download. We built the manager that resumes from the exact byte it left off, on the right chunk, with host memory across sessions.

Streaming video isn't a blob you can't download

HLS and DASH look complicated: manifests, hundreds of segments, adaptive bitrates, AES-128 keys. They're actually the most downloadable format around, once you treat them like a list.

Split archives without the guesswork

Multi-part RAR, 7z parts, HJSplit, Unix split. The archive-naming zoo is worse than you remember, and the app that reassembles it for you has to know about all of it.

One pipeline, not two

We used to have two code paths for adding URLs -- one for the clipboard watcher, one for everywhere else. They drifted. Here's the duplicate-row bug that forced the refactor.