Glossary
kan.fyi uses a small controlled vocabulary. Where two words could name the same thing, one of them is the word — everywhere, in this site, in the dashboard, and in the code.
That matters more than it sounds. “Publish” and “deploy” feel interchangeable until you are trying to work out whether your files changed or your sharing settings did. Each entry below therefore says what a term means and what not to call it.
This page is generated from the same vocabulary file the code is written against, so it cannot drift from the product.
- Site
- One hosted static site: one owner, one subdomain, one lineage of releases.
Not: project, page, app. - Site ID
- The eight-character server-generated label that is simultaneously a site’s primary key and its hostname (
<id>.kan.fyi). Never chosen by the user, never reused.
Not: slug, subdomain, handle. - Owner
- The account a site belongs to; every site operation is checked against it. Not user — a user is an account, an owner is that account’s relation to one site.
Not: author, creator. - Release
- One immutable published version of a site’s files, produced by a single upload.
Not: build, version, deployment. - Publish
- Making an extracted release the site’s current one — the swap after which the site serves the new bytes. Not a visibility change. Publishing decides which bytes are served, never who may see them.
Not: deploy, go live, ship. - Status
- Whether a site may serve at all: exactly one of active, unpublished, banned, expired.
Not: state, lifecycle. - Active
- The site serves normally. The only status with no gate.
- Unpublished
- Serving is switched off. The owner may switch it back on — unless a Hold put it here.
- Banned
- An admin has taken the site down for abuse. Not owner-reversible, not owner-deletable, and cleared only by an admin approval, because the bytes and rows are evidence.
- Hold
- A system-imposed unpublish the owner cannot lift; only an admin approval clears it. Not a status — a held site’s status is
unpublished. The hold records who did it and why, which is the part “unpublished” alone cannot carry.
Not: freeze, lock, quarantine. - Review hold
- The routine hold on an untrusted owner’s upload, awaiting a first human look. There is no finding behind it, so the owner may still delete the site — giving up is not the same as opting out of review.
- Abuse hold
- A hold backed by a finding: a scanner signal, a reputation verdict, or an admin takedown. The bytes are potential evidence, so the owner may not delete them.
- Visibility
- Who may reach a site once its status permits serving: exactly one of public, link, private.
Not: privacy, sharing level, access level, permissions. - Public
- Reachable by anyone and eligible to be indexed by search engines. Eligible, not indexed: crawling additionally requires the owner to have reached trust level 1, so a brand-new account can select Public and still not be crawled.
- Link
- Reachable by anyone holding the URL, and kept out of every search engine. The default for new sites and new accounts.
Not: unlisted, hidden. - Private
- Not served at all on the site’s own subdomain — everyone gets a 404, the owner included. The owner reaches it through a Preview instead.
- Trust level
- A per-account number gating the privileges a brand-new account should not have. It rises when an admin approves a review hold and never falls; level 1 is what makes a Public site actually crawlable.
Not: reputation, tier, rank. - Preview
- An authenticated, sandboxed view of a private site’s own bytes, served to its owner from a dedicated platform host. Not a staging environment: it shows the site’s current release — the same bytes the public would get if the site were not private.
Not: staging, sandbox (the sandbox is the mechanism, not the thing). - Publish outcome
- What actually became of a Publish, from the owner’s point of view: exactly one of live, held, failed, unpublished, pending. Not the extraction job’s status. A job can succeed while the site is not served — a Hold applied during that same job leaves the job “done” and the site gated — so any surface reporting a Publish reads the site and its Hold, never the job alone. failed and unpublished are distinct on purpose: a failure has a reason to show; unpublished means the site is simply not being served — the owner took it down, it never published, or the system gated it — and all three read identically (no tip-off). pending is not a verdict but the absence of one: a bounded wait that ran out says it, and so does any read that finds the latest job still in flight. It must not borrow failed (nothing went wrong) or unpublished (nothing was decided).
- Upload ticket
- A single-use, short-lived capability to send the bytes of one Publish. The ticket is the credential — redeeming it carries no other authentication, which is what lets it be handed to a browser or a shell holding no token.
Not: upload link, presigned URL. - Skill
- Published, versioned guidance an AI agent loads to use kan.fyi well: which Transport to use, how to shape a payload, how to read a Publish outcome, and how to handle its token. Not a Transport — a skill opens no door of its own; it teaches an agent to walk through the existing ones.
Not: plugin, integration, wrapper. - Site source
- The authored bytes of a site’s current Release — the files as published, unmodified. Not a Preview, which is the rendered, sandboxed view of those same bytes in a browser. Source is what an agent reads and can publish back; a preview is what a person looks at. Always untrusted when read: whoever owns the site wrote it, so it is data to read, never instructions to obey.
Not: page content, HTML, the site's code.