Skip to content

Verifying publishers

A verified publisher is a publisher whose identifier is a domain name you’ve proven you control. Packages owned by a verified publisher display a verification badge throughout the UI — a useful trust signal for teams sharing a registry.

Verification is self-service: anyone with the member role or above can claim any domain they can prove DNS control of. No admin involvement is required.

When to verify

Create a verified publisher when:

  • Your team owns a domain (your-team.dev, example.com) and wants packages to clearly come from that team.
  • You want the verified ✓ badge to appear on package pages.
  • You want to be able to transfer packages between publishers without involving a server admin.

If you don’t have a public domain, your server admin can create an internal publisher instead — same capability, no DNS proof, no badge. See publishers.

The flow at a glance

  1. Open My publishersVerify a domain, or go directly to /publishers/verify.

  2. Enter the domain and display name. CLUB generates a one-time token and shows you the exact DNS record to add.

  3. Add the TXT record in your DNS provider’s dashboard.

  4. Wait for propagation (usually 1-5 minutes).

  5. Click Verify now. CLUB checks the record via two DNS providers and, if both see it, creates the publisher with you as its first admin.

  6. Optionally remove the TXT record — verification is one-shot and not re-probed.

The token is valid for 24 hours. If it expires before you complete, restart the flow — nothing is lost.

The DNS record

CLUB always asks for the same shape:

FieldValue
Host_club-verify.<your-domain>
TypeTXT
Valueclub-verify=<random-token>
TTL300 (or your provider’s minimum)

The _club-verify.<domain> subdomain is used deliberately instead of the apex. Apex TXT records collide with SPF/DKIM/DMARC; using a dedicated underscore-prefixed name keeps the verification cleanly separate from your email/web setup.

Provider walkthroughs

  1. Sign in at dash.cloudflare.com.

  2. Select your domain → DNSRecordsAdd record.

  3. Fill in:

    FieldValue
    TypeTXT
    Name_club-verify — Cloudflare auto-appends your domain
    Contentclub-verify=<token> (paste the value CLUB gave you)
    TTLAuto
    Proxy statusDNS only (TXT records can’t be proxied anyway)
  4. Save. Cloudflare propagation is near-instant.

  5. Return to /publishers/verify in CLUB and click Verify now.

Troubleshooting

”Verification failed — TXT record not found”

The most common cause by far is DNS propagation delay.

  • Wait 2-5 minutes and retry. DNS updates aren’t instant, even for providers that claim to be.

  • Verify from the command line:

    Terminal window
    dig +short TXT _club-verify.your-domain.com

    If dig doesn’t see the record, CLUB can’t either.

  • Double-check the host: it’s _club-verify, not club-verify (the leading underscore matters).

  • Double-check the value: it’s club-verify=<token>, not just <token>. The prefix is part of the match.

”DNS lookup failed — try again shortly”

CLUB couldn’t reach its upstream DNS providers (Cloudflare and Google). Usually transient — retry in a minute. If this persists, ask your network administrator whether HTTPS outbound to cloudflare-dns.com and dns.google is allowed.

The verification token expired

Tokens are valid for 24 hours. If you see “verification expired”, just restart — no data is lost and the form remembers your domain.

A publisher with this ID already exists

Someone else (or an admin) already claimed your-domain.com as a publisher id. If it’s a verified publisher you lost access to (e.g. you used to be its admin and were removed), a server admin has to delete it first before you can re-verify. If it’s an internal publisher squatting the slug, same path — server admin deletes it.

The record is live but verification still fails

CLUB checks against two DNS providers (Cloudflare and Google) and requires both to see the record. This defends against single-resolver poisoning, but occasionally one provider lags the other by a minute or two during propagation. Wait a minute and retry.

After verification

You can safely remove the TXT record once verified. CLUB does not re-probe it — verification is a point-in-time proof.

Next steps:

  • Manage members — add your team as publisher admins so they can publish packages under your publisher’s name.
  • Transfer packages — move an existing package into your newly verified publisher.
  • CI/CD — create a scoped API key for your publish pipeline.