curious.pub

Quickstart · testing phase

Publish an Astro site.

Four steps, from an empty terminal to a preview URL you can send to someone. Read straight down.

This guide doesn't require a technical expert. You'll need a terminal, an Astro project, and Node 22 unless you install with Homebrew. If the command line is new to you, a short primer first helps.

Using a coding agent? It can deploy for you: set it up.

01

Install

$ npm install -g curiouspub

Node 22 or later. The command it installs is curious.

On a Mac with Homebrew, install it this way instead. It needs no Node.

$ brew install curiouspub/tap/curiouspub

Installed it before? Upgrade first: run the same install command again, or, with Homebrew:

$ brew upgrade curiouspub

Then check that curious version says 0.1.7 or later.

If you installed the older Homebrew cask, also called curious, it no longer updates. Swap it for the formula:

$ brew uninstall --cask curious && brew install curiouspub/tap/curiouspub
02

Deploy

From the project directory. The CLI checks your project first, then packs your source and uploads it. The build runs on curious.pub, in an isolated sandbox with no credentials of its own.

The project needs a committed lockfile, because the build installs exactly the versions you tested: package-lock.json, npm-shrinkwrap.json or pnpm-lock.yaml.

$ curious deploy

The log streams as it happens: the same output the build tools print. Progress moves through extracting, installing, building, uploading.

curious deploy[ capture ]
The frame is reserved for a capture of a real deploy. Until one is taken, the lines stay unreadable rather than invented.
03

Sign in, the first time

There is no separate sign-in step. The first deploy asks for an email address and sends a 6-digit code. No password, no OAuth, nothing to create.

Email address: you@example.com
Login codes for you@example.com go to that address.
Enter the 6-digit code: ······

That email address is the only personal data an account has.

04

What you have now

Published.
https://<deploy>.curiously.dev

From a coding agent

With curious installed, add it to your agent, then ask the agent to deploy the site. In Claude Code:

$ claude mcp add curious -- curious mcp

Any MCP client that can start a local command works the same way. The command is curious and the argument is mcp.

When it says no

A page, or a file in public/, whose name has a space or an accented letter is refused by the local check, with the file named, because names like that can't be served at a web address yet. Rename it and deploy again.

Every refusal names what stopped it, and ends with a line like Failure ID: lockfile-missing. If the deploy had already reached curious.pub, it also prints a Deploy ID line.

Tell us what broke

This is a test, and your reports are the point of it. Try something that should fail too, such as deploying a folder that isn't an Astro project, and see whether the message tells you what to do next.

Write to support at curious.pub with what you ran, what it printed (including any Deploy ID line), what you expected, and anything that confused you or felt slow.