Skip to content

refs(registry): point canonical domain to ui.vllnt.com#485

Merged
bntvllnt merged 1 commit into
mainfrom
feat/registry-com-urls
Jul 10, 2026
Merged

refs(registry): point canonical domain to ui.vllnt.com#485
bntvllnt merged 1 commit into
mainfrom
feat/registry-com-urls

Conversation

@bntvllnt

@bntvllnt bntvllnt commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

What

Completes the ui.vllnt.ai → ui.vllnt.com domain migration. The host-level 301 landed in #480; this updates every URL the registry app emits so canonical, sitemap, structured data and install commands all point at the new canonical domain.

Changes (45 files, pure domain swap — 78/78 lines)

  • SITE_URL fallbacks across routes/pages/libs
  • sitemap.ts, robots.ts, llms.txt, llms-full.txt, rss.xml, atom.xml, mcp route
  • JSON-LD (lib/jsonld.ts), oEmbed, OG (lib/og.ts), share/templates/changelog
  • shadcn install commands (component/build pages) + registry.json homepage + shadcn-directory-entry.json
  • MDX docs (home/docs, en+fr)
  • storybook.vllnt.ai → storybook.vllnt.com in footer + landing (its nginx 301 is handled in a separate storybook PR)

Deliberately unchanged

Deploy requirement (blocking)

NEXT_PUBLIC_SITE_URL must be unset or https://ui.vllnt.com. The live .com site currently resolves it to .ai, which would override this code fallback and keep emitting .ai URLs.

Follow-up (post-deploy, not in this PR)

  • Submit https://ui.vllnt.com/sitemap.xml to the sc-domain:vllnt.com GSC property
  • GSC Change of Address ui.vllnt.ai → ui.vllnt.com (UI-only) after verifying the 301
  • Keep the ui.vllnt.ai GSC property (history + Change-of-Address source)

Validation

  • grep-to-zero: no ui.vllnt.ai left outside the intentional 301 file
  • unit tests 16/16 pass (theme-serialize, legacy-host-redirect) on the identical change

Closes #484

Sweep every ui.vllnt.ai reference to ui.vllnt.com across the registry
app: SITE_URL fallbacks, sitemap/robots/llms/rss/atom/mcp routes,
JSON-LD, oEmbed, shadcn install commands, MDX docs, registry.json and
the shadcn directory entry. Also storybook.vllnt.ai to
storybook.vllnt.com in footer and landing.

Completes the ui domain migration whose host 301 landed in #480. The
legacy-host-redirect LEGACY_HOST stays ui.vllnt.ai (the host to redirect
from).

Deploy note: NEXT_PUBLIC_SITE_URL must be unset or set to
https://ui.vllnt.com, else the env value overrides the new fallback and
emitted URLs stay .ai.

Closes #484

Claude-Session: https://claude.ai/code/session_01FBHjr7nmFexc8nkN4WJJXH
@vllnt-pilot
vllnt-pilot Bot temporarily deployed to Preview · pr-485 (ntk) July 10, 2026 13:41 Destroyed
@vllnt-pilot

vllnt-pilot Bot commented Jul 10, 2026

Copy link
Copy Markdown

ntk preview

App Status Preview
ui-registry Ready https://pr-485-ui-registry.preview.vllnt.ai
storybook Skipped (preview cell not configured)

Built from d4f2567f · public + no-index (ADR-082) · torn down on close

@bntvllnt
bntvllnt merged commit cfd12bc into main Jul 10, 2026
8 checks passed
@bntvllnt
bntvllnt deleted the feat/registry-com-urls branch July 10, 2026 13:51
bntvllnt added a commit that referenced this pull request Jul 10, 2026
## What

PR #485 swept `ui.vllnt.ai → ui.vllnt.com` only in `apps/registry`. This
covers everywhere else — **268 files, pure domain swap (325/325
lines)**.

## Changes

- **232 generated component `.mdx`** install commands
(`packages/ui/src/components/*/*.mdx`) **and**
`packages/ui/scripts/generate-docs.ts:773` (the template that emits
them) — swept together so they stay consistent; no docs-drift check
exists, and a full regen would only add noise.
- **Markdown**: README, AGENTS, ROADMAP, CONTRIBUTING, SECURITY, DESIGN,
`docs/*.md`, `apps/registry/README.md` + `SEO-AI-POSITIONING.md`,
template READMEs, `skills/vllnt-ui/SKILL.md`.
- **Config/other**: root `llms.txt` / `llms-full.txt`, `package.json` +
`packages/ui/package.json` homepages, `templates/*/template.json`,
Dockerfile + `nginx.conf` comments, `.github/ISSUE_TEMPLATE/config.yml`,
two `copy-button` story/visual files.

## Deliberately left `.ai`

- `apps/registry/lib/legacy-host-redirect.ts` `LEGACY_HOST =
"ui.vllnt.ai"` — the host the #480 middleware redirects **from**.
- Every `storybook.vllnt.ai` (14 files) — its own domain, redirected by
#483.
- `*.vllnt.ai` wildcard-cert notes in `ntk.yaml`.

## Excluded — needs an infra decision (not in this PR)

`ntk.yaml:30` `production: ui.vllnt.ai` is the **live deploy domain**.
Flipping it to `ui.vllnt.com` is a deployment/routing change coupled to
the 301 (the app must still receive `.ai` traffic to redirect it). Left
for a deliberate infra call.

## Validation

- Diff is 100% `ui.vllnt.ai → ui.vllnt.com` (zero non-domain lines).
- All touched JSON re-parses; generator updated to emit `.com`.

Closes #488

Co-authored-by: bntvllnt <bntvllnt@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update registry URL references from ui.vllnt.ai to ui.vllnt.com

1 participant