Skip to content

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.