Drop anything
A folder, a file, a build directory. Browser, CLI, CI, or an agent—the manifest is the same.
From a folder to a global, SSL-secured site in one command. No pipelines. No configuration archaeology. Just a tiny coworker who throws your build at the edge.
npm i -g @yeeet.dev/cliMeet the Yeeetlings. Every site gets one, generated from its name. They gobble your files, fling them at the edge, and stick the landing—every single deploy.
Open the interactive versionLogin once, point at any folder, and get a permanent URL. Every upload is immutable until the full deployment is ready to flip live.
$ npm run build
✓ built 42 files in 812ms
$ yeeet deploy ./dist --name comet
Uploaded 42 / 42 · 2.4 MB
✓ Live at https://comet.sites.yeeet.15.235.108.252.sslip.io
A folder, a file, a build directory. Browser, CLI, CI, or an agent—the manifest is the same.
Short-lived signed URLs stream every byte straight to private object storage, checksummed on the way in.
Wildcard TLS, clean URLs, ETags, range requests, and edge caching by default. Roll back in one click.
Your site name is the seed. Same slug, same pal—1.8 million possible Yeeetlings, rendered as crisp SVG with zero image generation.
Generate yourscomet.sites.yeeet.15.235.108.252.sslip.iocosmic-pickle.sites.yeeet.15.235.108.252.sslip.ioturbo-waffle.sites.yeeet.15.235.108.252.sslip.iodocs.sites.yeeet.15.235.108.252.sslip.iospicy-meteor.sites.yeeet.15.235.108.252.sslip.iofuzzy-rocket.sites.yeeet.15.235.108.252.sslip.ioStable JSON, predictable exit codes, API keys for unattended runs, an MCP server, and an OpenAPI contract. If it can make a folder, it can yeeet it.
Read the agent guide$ YEEET_TOKEN=yeeet_••• \
yeeet deploy ./out \
--name docs --json
{
"status": "ready",
"url": "https://docs.sites.yeeet.15.235.108.252.sslip.io",
"deployment": "dpl_…"
}