Skip to content
Taslak

Publish an HTML file in a minute

Put a page at a permanent address with one curl command, no account and no server; then claim it and keep publishing with the CLI.

· 2 min read

An arrow from a terminal window to a page in a browser

A report, an invitation, a small tool an AI assistant made for you: you have an HTML file and someone else needs to open it. You do not need to rent a server, buy a domain or click through a hosting panel for that.

One command

In the folder that holds the file, run:

curl -F "files=@index.html" https://api.taslak.dev/v1/publish

The answer has two addresses. url is where the page is live, under a random name such as quiet-river-3f2a.taslak.page. claim.url lets you take ownership of it.

A page published without an account stays up for 33 hours 20 minutes after the latest publish. Claim it within that time and the address is yours, with no time limit.

Several files

If the page loads a stylesheet or images, send each file with its path:

curl -F "files=@index.html" -F "files=@css/site.css;filename=css/site.css" https://api.taslak.dev/v1/publish

For a whole folder, zip it and send it at once:

(cd dist && zip -qr ../site.zip .) && curl -F "archive=@site.zip" https://api.taslak.dev/v1/publish

After claiming: the CLI

If you publish regularly, the command-line tool is easier. Nothing to install:

npx -y https://taslak.dev/cli/taslak.tgz login
npx -y https://taslak.dev/cli/taslak.tgz publish ./dist -m "First version"

login asks you to approve this device in the browser. publish uploads the folder and writes the site’s id to .taslak/space.json, so the next publish goes to the same site. Only changed files are uploaded; .env, .git and node_modules are always left out.

Every publish is a version

Each publish creates a new version with its own address: v3--your-site.taslak.page. If something goes wrong, make an earlier version live again from the Versions page in the panel or with taslak rollback 2. The files are already stored, so it takes a second.

What next

  • If the project needs a build (Vite, Astro, Next.js…), see the framework recipes.
  • If only some people should see the page, use the access settings.
  • Connect your own domain on the Domains page in the panel.