Quickstart
Go from a folder of HTML to a live site at slug.9d9.dev in a minute — no account needed until you claim it.
The fastest path is the get-started prompt: paste it into your AI and it does everything below for you. This page is the same flow by hand. Any framework that emits a static folder works — plain HTML, Astro, Next.js static export, Hugo, SvelteKit static.
1. Build a site
npm create astro@latest my-site -- --template minimal --yes
cd my-site
npm install
npm run build You should now have a dist/ directory with the built site.
2. Deploy it — no account needed
npx @9d9dev/cli deploy ./dist --name "My Site"
With no key configured, the CLI creates the site, saves a deploy key to
.9d9.json (and adds it to your .gitignore), and
uploads the files. The site stays private until you claim it:
Deploying 13 file(s), 127.2 KB total...
Created My Site → https://my-site.9d9.dev
Saved the deploy key to /home/you/my-site/.9d9.json (keep it; it's how you push updates).
Deploy dep_qXpgSbWcNGfoWy3PxJfE24Ls created.
10/13
13/13
Uploaded. Deploy dep_qXpgSbWcNGfoWy3PxJfE24Ls is ready.
https://my-site.9d9.dev/ (live once claimed)
Not public yet: the site goes live once its owner claims it. They open:
https://app.9d9.dev/pair?code=FX5A-Y64D
(claim code FX5A-Y64D, expires Tue Oct 21 2026)
Need the site's org_id before you build (for forms or
analytics)? Reserve it first with
npx @9d9dev/cli init --name "My Site".
3. Claim it
Open the claim link, enter your email, and click the link we send — you land back on the claim page signed in. Click Claim and publish and it's live. Unclaimed sites are deleted after 7 days. Each network can create one site a day this way; sign in (below) to skip the limit.
4. Push updates
Run npx @9d9dev/cli deploy ./dist again. Each deploy is a new
version, swapped in atomically. Old versions stick around for a week
(roll back from the Deploys tab or 9d9 deploys list). The
deploy key keeps working after you claim the site.
Already have an account?
Create an API key under Settings → New key, then
npx @9d9dev/cli set-key ak_xxx --org=org_xxx in your
project and deploy as above.