DEV Community

David Bos
David Bos

Posted on Originally published at dropthehassle.com

Deploy a Claude Code site in one command, no account

Disclosure: I'm behind DropTheHassle.

Claude Code is very good at the first 95%. You describe a landing page, a portfolio or a small tool, and a few minutes later there's a folder with an index.html or a dist/ directory and a dev server on localhost.

Then comes the last 5%: getting it on a real URL that you can send to someone. That's usually where a side project stalls. You open a hosting dashboard, create an account, connect a repo, pick a framework preset, and by the time you're done you've forgotten why you built the thing.

This post shows the shortest path I know: one command, no account, a live HTTPS link. I build the tool, so read it with that in mind. I'll also be clear about what it doesn't do.

What you need

  • A static site: plain HTML, or the output of a build (npm run build). Claude Code usually builds with Vite, Astro or plain HTML, and all of those produce a static folder.
  • Node.js, so npx works.

That's it. No account, no token, no config file.

The command

From the project folder, after building:

npm run build
npx -y dropthehassle deploy
Enter fullscreen mode Exit fullscreen mode

The CLI looks for the site in this order: a folder with index.html, or dist/, build/, out/, _site/ or public/. You can also pass the folder explicitly: npx -y dropthehassle deploy dist.

Here's the real output from a test deploy I ran this week (claim link removed):

  Uploading your site...

  Linked this folder to your site (.dropthehassle.json, kept out of git).

  Live at https://sunny-lynx-807.dropthehassle.app
  Claim it (the link works for 7 days, then an unclaimed site is removed):
  https://dropthehassle.com/claim#…
Enter fullscreen mode Exit fullscreen mode

The site was live on HTTPS (a Let's Encrypt certificate) straight away. Client-side routes survive a refresh too: a path that isn't a real file gets your index.html (a missing file such as /missing.png still returns a 404).

Let Claude Code run it

You don't have to type the command yourself. Ask:

Build the site and deploy it with npx -y dropthehassle deploy. Show me the live link and the claim link.

Claude Code asks permission before it runs the shell command, so you see exactly what's happening. If you deploy often, add one line to your project's CLAUDE.md:

## Deploy
Run `npm run build && npx -y dropthehassle deploy`. Always show me the claim link.
Enter fullscreen mode Exit fullscreen mode

Updating the site

The first deploy writes a small .dropthehassle.json file into the folder. It links the folder to the site. Run the same command again and it updates the same site instead of creating a new one:

  Linked folder: updating https://sunny-lynx-807.dropthehassle.app in place.

  Uploading your site...

  Live at https://sunny-lynx-807.dropthehassle.app
Enter fullscreen mode Exit fullscreen mode

That file contains the site's key. The CLI keeps it out of git; don't commit it or paste it anywhere.

What an unclaimed site looks like

These are the parts you should know before you send the link around:

  • The claim link works for 7 days. If you don't claim the site in that time, it's removed. Open the link and sign in to keep it.
  • Unclaimed sites are not indexed. I checked the headers: an anonymous site is served with noindex, nofollow, so search engines are asked to skip it. That's fine for "show a friend" or "test on my phone". It's not how you'd launch.
  • There's a small bar at the bottom that says "Made with DropTheHassle", with "Claim this site" and "Report abuse" links. Visitors can dismiss it.

So think of the anonymous link as a preview you can share, and claim it when you want to keep it.

Putting it on your own domain

When the project earns a real name, you have two options:

  • Buy the domain with the site. A .com is €19 a year including VAT in the EU, or $19 elsewhere, and it's the same every year. Because the domain and the site sit in the same place, there are no DNS records to edit.
  • Use a domain you already own. Add one A record at your registrar.

Claude Code can check whether a name is free, but it can't buy it. The checkout is always a human click. That's deliberate: your AI can publish, but it can never spend your money.

Honest limits

  • Static sites only. A folder that still needs a build is refused, and so is a site that needs a server to run (PHP, a Node server, Python). If your project has a backend, host that part elsewhere. With an account you can put it behind the same name under a path like /api.
  • Build first. Point the command at the built output, not at the source folder.
  • Size. Until you claim it, an anonymous site can be at most 25 MB (that's in the terms). After claiming, the normal account limits apply; signed-in uploads can be up to 100 MB.
  • Claude Code on the web (the cloud version) blocks it by default. Cloud sessions run in a sandbox with a network allowlist. npm's registry is on the default list, so npx downloads fine, but dropthehassle.com is not, so the upload is blocked. Fix it in the environment settings: set network access to Custom, add dropthehassle.com, and keep the default list included. Or add https://dropthehassle.com/mcp as a connector in claude.ai; connectors don't go through the sandbox network. Also note that each cloud session starts fresh, so the .dropthehassle.json link is gone and a new session creates a new site. Claim the first one.
  • Don't put tokens in the repo or in environment variables that other people can read. The anonymous flow doesn't need a token at all.

Why one command matters

Most side projects don't die because the code is bad. They die at localhost. A live link changes how you treat the thing: you open it on your phone, send it to a friend, notice the broken button on mobile. That feedback loop is worth more than any hosting feature.

So: build it, run one command, look at it on a real URL. Decide about the domain later.

The full step-by-step guide, with the domain part in more detail, is here: Deploy a Claude Code website to your own domain. If you'd rather let your editor's agent do the deploy through MCP, see the MCP guide.

Questions or rough edges you hit? Tell me in the comments. I read them and fix what I can.

Disclosure: I'm behind DropTheHassle.

Top comments (0)