fiskil publish

One command uploads your source; the platform builds and hosts it.

fiskil publish

FISKIL_DOCS_TOKEN=fdp_... FISKIL_DOCS_PLATFORM_URL=https://... npx fiskil publish
✔ docs.json is valid
▲ publishing acme (production) — 42 files, 240 KB
  pending… (0s)
  building… (4s)
  ready… (96s)
✔ live at https://acme.docs.fiskil.app

Your machine never builds for deployment — publish validates locally, snapshots your source (a few hundred kilobytes, not a build output), uploads it, and streams the platform build's status until your site is live.

Tokens

Publishing authenticates with a Fiskil-issued token (fdp_...), minted in the console's API keys screen.

  • Site tokens are scoped to one site and carry its identity — with one in FISKIL_DOCS_TOKEN (and the platform URL in FISKIL_DOCS_PLATFORM_URL), fiskil publish needs zero flags. Use these in CI.
  • Org tokens manage every site in your workspace — pass --site to say which one you mean.

What gets uploaded

Exactly what belongs to a docs site: docs.json, package.json and lockfile, the framework config files, and your content/, public/, and src/ trees. Local junk is skipped, and secret-shaped files — .env*, .npmrc — are never uploaded; the platform independently rejects snapshots containing them, so credentials can't leak by accident.

Previews

npx fiskil publish --target preview

Preview deployments build the same way but publish to an isolated, unlisted URL instead of your production domain — for sharing a draft before it ships. (With GitHub sync, pull requests get these automatically.)

When something fails

Errors are one line and actionable — a rejected token says to check FISKIL_DOCS_TOKEN; a failed build says to run fiskil build locally to reproduce (it's the same build); a deploy already in flight for the site asks you to let it finish. Exit codes are non-zero on failure, so CI pipelines fail loudly.