By Max Techera · Open-source (MIT) · Updated June 2026
Static sites

Host a whole static site, privately

Drop a folder or a .zip and get a branded link on your own domain — the whole multi-file site, served at /<slug>/, in about a second.

npxnpx hushdrop report.html

Your build tool spits out a dist/ of HTML, CSS, JS, and assets. Hushdrop uploads the whole thing in one command — no project, no per-file deploy, not public by default. Optionally put the entire site behind a single password.

Publish a folder or a zip

hush ./dist                # a whole folder → /<slug>/
hush site.zip              # or a zip of the same
hush ./dist -p secret      # lock the entire site behind one password

Every file uploads under /<slug>/ and the site goes live at https://your-domain/<slug>/. The root index.html is branded and gets a <base href> so relative links resolve from any path. Works with any build output — Next.js, Vite, Astro, Storybook, Webpack. .git and node_modules are skipped.

How the whole-site password works

Add -p and the entire multi-file site sits behind one unlock page. Enter the password once and a signed, site-scoped session cookie carries you across every page and asset. The password never leaves your machine — the server stores only a salted PBKDF2 verifier. This is a server-side gate at the edge (not the client-side encryption used for single files), so it protects a multi-page site that single-file encryption can't.

Self-host only

Whole-site hosting runs on your own deployment — the one-click Deploy to Vercel behind hush deploy, which provisions the gate's signing secret for you. The zero-setup managed tier stays HTML/Markdown-only.

1

Drop it

hush file.html — or a PDF, markdown, image, or any file — from your terminal or any AI agent.

2

Branded & encrypted

Your logo, OG card, and badge are baked in, then it's AES-256 encrypted client-side behind your unlock gate.

3

Live on your domain

Uploaded to your Vercel Blob and served at yourdomain.com/slug. URL + password on your clipboard.

FAQ

Can I upload a folder, not just a zip?
Yes — hush ./dist uploads the folder directly (it skips .git and node_modules). A zip works too: hush site.zip.
Does the password protect every page or just the homepage?
The whole site. The gate runs at the edge in front of /<slug>/, so every page and asset needs the password; one unlock sets a session cookie for the entire site.
Is a locked site zero-knowledge like a locked single file?
No — and we won't pretend it is. A single HTML file is encrypted client-side (AES-256, StatiCrypt) so the server only sees ciphertext. A multi-file site uses a server-side password gate instead: the server stores a salted PBKDF2 verifier (never your password) but serves the files once unlocked. For the strongest guarantee on one document, lock a single file.
Is it really open-source and self-hosted?
Yes — MIT licensed, and it runs on your own Vercel Blob + domain. No third party ever holds your content (it's encrypted client-side) or controls your URL.

Your AI's work shouldn't die in a chat.

Open-source, zero-knowledge, free. Try it in one command:

npx hushdrop report.html --managed