How to folder → zip vs zip / 7-zip / tar
- Step 1Decide whether the data can leave your machine — If the folder is sensitive (client data, credentials, unreleased code) and you don't want it on any third-party server, both Folder → ZIP and a local CLI keep it on-device. Avoid upload-first web zippers. Folder → ZIP wins here only over cloud zippers, not over a local CLI.
- Step 2Decide whether you need a specific compression level — Folder → ZIP is fixed at Deflate level 6. If you need store-only (level 0) for already-compressed media, or maximum (level 9) for text, either use the CLI (
zip -0/zip -9) or stay in JAD with smart-archive-compressor (level 0–9) or compression-level-optimizer. - Step 3Decide whether you need a non-ZIP format — Folder → ZIP only writes
.zip. For.tar.gz(Unix-friendly, preserves permissions), usetar -czfor JAD's zip-to-tar-gz. For 7z's higher ratios you need the7zCLI — in-browser tools read 7z but don't create true 7z. - Step 4Decide whether you need exclude filters — The CLI shines at
zip -r out.zip dir -x '*.log' 'node_modules/*'. Folder → ZIP has no exclude field — but JAD's selective-zipper ZIPs only files matching a glob, which covers the include side of the same need. - Step 5Decide whether it needs to be scripted — For unattended/CI use, a CLI in a shell script is the classic answer. On JAD, paid tiers can route jobs to the local @jadapps/runner so the same tool runs on your machine outside the tab — but there is no public server API endpoint for archive tools (they're browser-only).
- Step 6Pick and run — For a quick, private, one-off folder ZIP with no fuss, use Folder → ZIP. For repeatable, filtered, level-tuned, or non-ZIP output, use the matching CLI or the JAD sibling tool the steps above pointed to.
Folder → ZIP vs the common CLIs
Capability matrix. 'Local-only' means the data never leaves your machine. Folder → ZIP's gaps are intentional — it's a simplicity-first tool, and the sibling-tool column shows the JAD equivalent.
| Capability | JAD Folder → ZIP | zip CLI | 7-Zip (7z) | tar |
|---|---|---|---|---|
| Install required | No (browser) | Usually preinstalled / apt install zip | Separate install | Preinstalled on Unix |
| Runs local-only (no upload) | Yes | Yes | Yes | Yes |
| Choose compression level | No (fixed 6) — see smart-archive-compressor | Yes (-0..-9) | Yes (-mx) | Via gzip (-1..-9) |
| Output formats it can create | ZIP only | ZIP | 7z, ZIP, tar, gzip... | tar (+gzip/xz/bzip2) |
| Exclude filter | No (use selective-zipper for include-glob) | Yes (-x) | Yes (-x!) | Yes (--exclude) |
| Password / AES | No — see encrypted-zip-creator | ZipCrypto (weak) / AES via build | AES-256 | No (pipe to gpg) |
| Scriptable / CI | Local runner only (no server API) | Yes | Yes | Yes |
Which tool for which job
Decision shortcuts. The point is to use Folder → ZIP where its simplicity is an asset, and reach elsewhere when you genuinely need a feature it doesn't have.
| You want to... | Best choice | Why |
|---|---|---|
| Quickly ZIP a folder to email or hand off | Folder → ZIP | Zero install, zero flags, local, universally readable output |
| Squeeze the smallest possible ZIP from text/code | smart-archive-compressor (level 9) or zip -9 | Folder → ZIP is fixed at level 6 |
| Exclude node_modules / build artifacts | zip -x or selective-zipper | Folder → ZIP has no exclude/include filter |
| Preserve Unix permissions / symlinks | tar -czf | ZIP (and the browser's File API) don't carry POSIX modes |
| Password-protect the archive | encrypted-zip-creator or 7z -p | Folder → ZIP makes plain, unencrypted ZIPs |
| Split into email-sized parts | multi-part-archive-creator | Folder → ZIP produces one file |
Cookbook
Equivalent operations across the four tools, so you can map a CLI habit to the browser flow (and vice-versa).
Basic folder ZIP — browser vs zip CLI
The everyday case. The CLI needs the recursive flag; the browser tool just needs you to pick the folder.
zip CLI: $ zip -r my-site.zip my-site/ (adds my-site/ recursively, Deflate level 6 by default) Folder → ZIP: click dropzone -> pick my-site/ -> Run download: my-site.zip Same Deflate method, same default level (6), same universally-readable .zip output.
Maximum compression on a text/code folder
Folder → ZIP can't do level 9. Use the CLI or the JAD level-aware sibling.
zip CLI: $ zip -9 -r src.zip src/ JAD (in browser): smart-archive-compressor, compressionLevel = 9 Folder → ZIP would give level 6 only — a few percent larger on highly compressible source trees.
Excluding files you don't want in the archive
A frequent CLI pattern that Folder → ZIP doesn't replicate directly — but the include-glob sibling covers the common case.
zip CLI (exclude):
$ zip -r app.zip app/ -x 'app/node_modules/*' '*.log'
JAD include-glob (selective-zipper):
pattern: src/**/*.ts -> only TypeScript sources
pattern: **/*.{png,svg} -> only images
Folder → ZIP has no filter: it packs everything.Unix-friendly tar.gz instead of ZIP
When the recipient is a Linux box that cares about permissions, tar.gz is the idiom. Folder → ZIP is ZIP-only.
tar: $ tar -czf release.tar.gz release/ (preserves modes, symlinks; gzip-compressed) JAD: ZIP your folder, then convert: Folder → ZIP -> release.zip zip-to-tar-gz -> release.tar.gz (note: browser File API can't read POSIX modes, so permissions are not carried either way)
Password-protected archive
Folder → ZIP produces no encryption. Use the dedicated JAD tool or 7z.
7-Zip: $ 7z a -p'S3cret!' -mhe=on secret.7z secret/ JAD (AES-256 ZIP, local): encrypted-zip-creator, password = 'S3cret!' -> WinZip-compatible AES-256 .zip Folder → ZIP: not applicable (plain ZIP only).
Edge cases and what actually happens
Expecting Folder → ZIP to honour a compression level
Not supportedThere is no level control — output is always Deflate level 6. If you set a level expectation from CLI habits (-9), use smart-archive-compressor or the zip CLI instead. On already-compressed media, even level 9 won't help much.
Expecting permissions / symlinks to survive like tar
Not carriedUnlike tar, ZIP-from-the-browser cannot read POSIX file modes or symlinks — the File API doesn't expose them. Files are stored as regular entries. If you need executable bits or symlinks preserved, use tar -czf on the machine that owns the files.
Trying to exclude node_modules in Folder → ZIP
Use a siblingFolder → ZIP has no exclude filter and packs everything the browser exposes — including node_modules, .git, and build output. Use the zip -x CLI for excludes, or JAD's selective-zipper to include only files matching a glob.
Wanting 7z or RAR output for a better ratio
ZIP onlyFolder → ZIP writes ZIP exclusively. In-browser tools can read 7z (via libarchive WASM) but do not create true 7z, and RAR creation is proprietary and unavailable. For 7z's higher ratios you need the 7z CLI on your machine.
CLI is faster on a huge tree
ExpectedFor very large folders, a native CLI streaming to disk will generally outpace an in-browser zipSync that builds the whole archive in memory. The browser tool is optimised for convenience and privacy on everyday folders, not for 10 GB nightly backups — use tar/zip in a script there.
ZipCrypto vs AES confusion
ClarificationLegacy zip --encrypt uses ZipCrypto, which is cryptographically weak. JAD's encrypted-zip-creator uses real AES-256 via zip.js. Folder → ZIP does neither — it's plain. Don't assume a Folder → ZIP output is protected in any way.
Cloud 'online zip' services that upload first
Privacy riskMany web zippers upload your folder to a server before compressing. Folder → ZIP never does — fflate.zipSync runs in the page. If privacy is the reason you're comparing tools, this is the single biggest differentiator versus cloud zippers (though local CLIs are equally private).
Reproducible-build hashes differ from the CLI
By designFolder → ZIP writes each file's real lastModified into the entry, so two runs differ if timestamps differ — same as a default zip. For byte-identical reproducible archives, normalise timestamps first (timestamp-normalizer, default epoch 1980-01-01), mirroring zip -X + fixed dates on the CLI.
Frequently asked questions
Is Folder → ZIP as good as the zip CLI?
For a quick, private, one-off folder ZIP, it's arguably better — no install, no flags, nothing uploaded. For level control, exclude filters, non-ZIP formats, or scripting, the CLI wins. They use the same Deflate method, so a default Folder → ZIP and zip -r produce comparable output (both level 6).
Does Folder → ZIP compress as well as 7-Zip?
No. 7-Zip's .7z format with LZMA2 typically beats ZIP's Deflate on compressible data, and Folder → ZIP is fixed at Deflate level 6. If ratio is the priority, use the 7z CLI, or stay in JAD with smart-archive-compressor at level 9 (still Deflate, but closer to ZIP's ceiling).
Why use a browser tool instead of just right-clicking 'Compress'?
Consistency and cleanliness. macOS Finder's Compress injects __MACOSX and .DS_Store; Windows' built-in zipper can mangle non-ASCII names and drop empty directories. Folder → ZIP behaves identically across OSes via fflate, and JAD's filename-sanitizer can strip OS junk afterward.
Can I exclude files like the CLI's -x flag?
Not in Folder → ZIP — it packs everything. Use the zip -x CLI for excludes, or JAD's selective-zipper, which inverts the idea: you give it a glob (e.g. src/**/*.ts) and it ZIPs only matching files.
Can Folder → ZIP make a tar.gz?
No — it outputs ZIP only. ZIP your folder first, then convert with zip-to-tar-gz. Be aware that neither the browser tool nor the conversion can recover Unix permissions, since the File API never exposed them; if permissions matter, use tar on the source machine.
Is the browser tool slower than the CLI?
On small-to-medium folders the difference is negligible. On very large trees, a native CLI streaming to disk wins because Folder → ZIP builds the whole archive in memory with zipSync. For incremental in-browser packing of larger inputs, streaming-zip-builder uses fflate's streaming API.
Can I automate Folder → ZIP like a shell script?
There's no public server API — archive tools are browser-only. Paid tiers can route a job to the local @jadapps/runner so it executes on your machine outside the tab, but for true unattended CI packing, a zip/tar step in your pipeline is the conventional approach.
Does Folder → ZIP encrypt like 7z -p?
No. It creates a plain, unencrypted ZIP. For AES-256 encryption in the browser, use encrypted-zip-creator; on the CLI, 7z a -p ... -mhe=on gives encrypted 7z. Never assume a Folder → ZIP archive is protected.
Will recipients need special software to open it?
No. It's a standard Deflate ZIP — Windows Explorer, macOS Archive Utility, 7-Zip, and unzip all open it natively. That universality is a reason to prefer ZIP over 7z when you don't control the recipient's toolset.
Is my data safer in the browser tool or the CLI?
Both are local — neither uploads. The real privacy win for Folder → ZIP is over cloud 'online zip' services that upload your folder to a server. Against a local zip/tar, privacy is equivalent; the browser tool just adds zero-install convenience.
Can I get reproducible (byte-identical) archives like the CLI?
Folder → ZIP writes real file timestamps, so two runs differ if timestamps differ — exactly like a default zip. Normalise timestamps first with timestamp-normalizer (default 1980-01-01 epoch) to get reproducible output, the JAD equivalent of zip -X plus fixed dates.
When should I NOT use Folder → ZIP?
For multi-GB backups, permission-preserving Unix archives, scripted nightly jobs, maximum-ratio 7z, or anything needing exclude rules at scale — those are CLI territory. Folder → ZIP is for fast, private, no-fuss folder bundling, and the sibling tools cover the level/format/encrypt/split gaps within JAD.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.