Make it stick ยท 3 min
Glossary
Every term used in the project, in plain words.
ClaimOne account's attempt to own one domain.Product
ChallengeThe record issued for a claim: its name, value and expiry.Product
TokenThe random 26-character code inside the value.Product
CheckOne verification attempt.Product
ObservationOne resolver's answer to one question, during a check.Product
OutcomeWhat a check concluded.Product
StatusThe stored lifecycle state of a claim.Product
PhaseWhat to show for a claim. Computed on each read.Product
OwnerThe account whose claim is verified or at risk.Product
RotateIssue a new code, replacing the old one.Product
Grace periodThe 7 days to restore a missing record.Product
LeaseA worker's temporary hold on a claim.Product
PrufyThe product: a tool that only proves you own a domain.Product
RelayThe made-up email product this started inside. The name was dropped.Product
SessionOne signed-in browser, pointing at an account.Product
AccountWhoever a first claim created. Not a person, and there's no sign-up.Product
AlertA message about one of six state changes, by email or push.Product
Setup linkA link that can read one claim's record and ask for a check.Product
InviteA setup link sent by email, with the record in the message.Product
KilnThe product name used in earlier experiments.Product
ZoneA part of DNS that one party runs.DNS
Zone apexThe top of a zone, like example.com.DNS
Zone cutWhere one zone hands off to another.DNS
DelegationA zone saying who's in charge of the next level down.DNS
Authoritative serverThe server holding the real answer.DNS
Recursive resolverA server that looks things up for others, and caches.DNS
DoHDNS over HTTPS.DNS
TTLHow long an answer may be cached, in seconds.DNS
Negative cachingRemembering that something doesn't exist.DNS
PropagationCaches catching up. Nothing actually travels.DNS
rcodeThe status of a DNS response.DNS
NXDOMAINThis name doesn't exist.DNS
NODATAThe name exists, without a record of that type.DNS
SERVFAILThe server couldn't work it out.DNS
AD flagThis answer passed DNSSEC validation.DNS
Lame delegationNameservers that are listed but don't work.DNS
RegistrarWhere you bought the domain.DNS
DNS hostWho answers for the domain.DNS
LabelOne part between dots.Names
Public suffixAn ending people register under, like co.uk.Names
Registrable domainA public suffix plus one label. Also called eTLD+1.Names
IDNA domain in a non-ASCII script.Names
PunycodeThe ASCII encoding of an IDN.Names
A-labelAn encoded label beginning with xn--.Names
HomographA name that looks like another.Names
Pure functionSame input, same output, no side effects.Code
Discriminated unionA union told apart by one field.Code
BrandA type marker that makes a string a specific kind.Code
Composition rootWhere real implementations get wired together.Code
FixtureCanned data for tests.Code
MigrationA versioned schema change.Code
Shape constraintThe per-status CHECK on domain_claims.Code
Partial unique indexA unique index covering only some rows.Code
Optimistic concurrencyWrite only if the version hasn't changed.Code
SKIP LOCKEDIgnore rows another transaction has locked.Code
SSRFTricking a server into fetching something for you.Code
Domain ConnectAn open standard for one-click DNS setup.Code
Serverless functionCode that only runs while it's handling a request.Code
Vercel CronA schedule that calls a route on your production deployment.Code
Preview deploymentA private copy of the app, built from a branch.Code
Ignored Build StepA command that decides whether Vercel skips a build.Code
NeonThe hosted Postgres behind the deployed app.Code
CookieA small value the browser stores and sends back with each request.Web
HttpOnlyA cookie that page scripts can't read.Web
SameSite=LaxA cookie the browser leaves off cross-site POSTs.Web
SecureA cookie only ever sent over HTTPS.Web
CSRFAnother site making a request as you, using your cookie.Web
SHA-256A one-way hash. Easy to compute, not possible to reverse.Web
CapabilityA link or token whose possession is the permission.Web
Double opt-inAn address gets nothing but a confirmation link until it's clicked.Web
Best effortTried once. A failure is logged, not retried.Web
OutboxA table of messages to send, with retries. Not built here.Web
Web PushThe standard for sending a notification to a browser.Web
VAPIDA key pair that signs each push, so no account with Apple or Google is needed.Web
Push subscriptionA browser's endpoint and keys for receiving pushes.Web
Service workerA script the browser runs outside any page. Here it shows pushes.Web
PWAA site that can be installed like an app.Web
ManifestThe file that tells a browser how to install the site.Web
View transitionThe browser animating between two states of a page.Web
Shared elementOne element named on both pages, so it moves instead of fading.Web
Query cacheWhere TanStack Query keeps fetched data, by key.Web
Reduced motionA system setting asking sites to stop moving things.Web
WebGPUThe browser API for running code on the graphics card.Graphics
WGSLThe language WebGPU shaders are written in.Graphics
Fragment shaderA function that runs once per pixel and returns its colour.Graphics
UniformA value sent to a shader that's the same for every pixel.Graphics
OrthographicA view with no perspective: every ray is parallel.Graphics
Angular distanceHow far apart two points on a sphere are, as an angle.Graphics
Progressive blurA stack of blurs that get stronger toward an edge, each masked to a band, so the blur ramps up instead of starting at a hard line.Graphics
Yaw and pitchTurning around the vertical axis, and leaning toward or away from you.Graphics
Layout animationMotion animating a change of size or position between renders, with transforms.Code
background-clip: textA background shown only inside the text, so a gradient paints the letters.Code
Scroll timelineA CSS animation driven by a scroll position instead of time.Code
VignetteA gradient that darkens toward the edges of the frame.Graphics
Stacking contextA group of elements layered as one unit. A transform, opacity below 1, or a z-index on a positioned element creates one.Code
TargetThe JavaScript version TypeScript checks your code against.Code
Connection poolerA service that lets many short-lived clients share a few database connections.Code