Skip to content

Commit eea7e7d

Browse files
authored
infra(domain): switch production domain to docs.internetcomputer.org (#161)
## Summary - Replace all `beta-docs.internetcomputer.org` references with `docs.internetcomputer.org` - `astro.config.mjs`: site URL, og/twitter image URLs, schema.org WebSite and Organization IDs (8 refs) - `public/.well-known/ic-domains`: IC boundary node custom domain authorization - `public/robots.txt`: sitemap URL + LLM discovery comments - `public/og-image.svg`: footer text (baked into `og-image.png` at build time) - `README.md`: deployment URL; Background section rewritten to say the portal has been replaced - `AGENTS.md`: "Never" rule updated (`internetcomputer.org/docs` is retired; `docs.internetcomputer.org` is now this site, use relative paths); Portal tracking section updated - `scripts/validate.js`: error messages updated to match the new reality - `.docs-plan/decisions.md`: decision entry added for the cutover ## Notes `docs/languages/motoko/` still contains ~30 links to `internetcomputer.org/docs/...` but those are auto-synced from `caffeinelabs/motoko` and need to be fixed upstream — tracked separately. ## Sync recommendation hand-written
1 parent 2c4adea commit eea7e7d

8 files changed

Lines changed: 26 additions & 23 deletions

File tree

.docs-plan/decisions.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,3 +275,10 @@ Record decisions that constrain future work — things an agent needs to know th
275275
**Rationale:** Dynamic SVG generation in the build plugin adds ~30 lines of complexity for a one-time change. Static is simpler and good enough.
276276
**Alternatives considered:** Generate SVG dynamically in `plugins/astro-agent-docs.mjs` using `siteUrl` from Astro config (more robust, but over-engineered for a single domain change)
277277

278+
279+
## 2026-04-28: Production domain cutover to docs.internetcomputer.org
280+
281+
**Context:** The site was previously served from `beta-docs.internetcomputer.org` as a staging domain during the transition from `dfinity/portal`. The portal has now been retired and this site is the canonical ICP developer docs.
282+
**Decision:** Switch all domain references from `beta-docs.internetcomputer.org` to `docs.internetcomputer.org`. Updated files: `astro.config.mjs` (site URL + og/twitter/schema.org meta), `public/robots.txt` (sitemap), `public/og-image.svg` (footer text), `README.md`, `AGENTS.md` (never-link rule + portal tracking section), `scripts/validate.js` (error messages). The `docs.internetcomputer.org` lint rule in validate.js is kept — it still enforces relative paths for internal links.
283+
**Rationale:** The beta domain was always a temporary staging address. With the portal retired, `docs.internetcomputer.org` is the permanent home.
284+
**Alternatives considered:** Keep beta domain as a redirect origin (handled at DNS/CDN level, not in code)

AGENTS.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ git checkout main
141141
- Write code snippets from memory — find and adapt from actual upstream code in `.sources/`
142142
- Modify the rationale or context of existing decisions in `.docs-plan/decisions.md` — you may remove entries that are fully reflected in the current codebase but never alter reasoning behind active decisions
143143
- Add `Co-Authored-By` or any AI attribution to commits or PR descriptions
144-
- Link to `internetcomputer.org/docs/` or `docs.internetcomputer.org` — those URLs will break. Link to pages in this site (relative paths), Learn Hub, or explain inline.
144+
- Link to `internetcomputer.org/docs/` — that site is retired. For internal pages use relative paths, not absolute `docs.internetcomputer.org/...` URLs. Link to Learn Hub or explain inline for external content.
145145
- Link to internal pages that don't exist — every `[text](path.md)` must resolve to an actual file. Run `ls <target>` before linking. Links to `.mdx` pages use `.md` extension (Astro resolves both).
146146
- Link externally when an internal page exists — check `docs/` before using an external URL
147147
- Offer, suggest, or perform PR reviews unless a human explicitly asks
@@ -369,10 +369,7 @@ sidebar:
369369

370370
## Portal tracking
371371

372-
The old portal (`dfinity/portal`) is still live during the transition period.
373-
- **Ignore:** dfx-only changes, JSX/component changes, release notes, NNS dapp guides
374-
- **Flag for rewrite:** Content updates to topics we cover
375-
- **Evaluate:** New content — does it belong in the new docs?
372+
The old portal (`dfinity/portal`) has been replaced by this site. The `.sources/portal` submodule is kept as a read-only reference for spec content (see `ic.did` sync checklist above) but no longer needs active monitoring for content changes.
376373

377374
## Commands
378375

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# ICP Developer Docs
22

3-
Developer documentation for the [Internet Computer](https://internetcomputer.org) — built with [Astro](https://astro.build) + [Starlight](https://starlight.astro.build), deployed at [beta-docs.internetcomputer.org](https://beta-docs.internetcomputer.org).
3+
Developer documentation for the [Internet Computer](https://internetcomputer.org) — built with [Astro](https://astro.build) + [Starlight](https://starlight.astro.build), deployed at [docs.internetcomputer.org](https://docs.internetcomputer.org).
44

55
## Background
66

7-
The existing ICP docs live at [internetcomputer.org/docs](https://internetcomputer.org/docs), sourced from [dfinity/portal](https://github.com/dfinity/portal) (Docusaurus). That site accumulated content over years without a consistent information architecture, making it hard to navigate and harder to keep accurate.
8-
9-
This repo is a ground-up rewrite: a flat Diataxis structure (Getting Started, Guides, Concepts, Languages, Reference), content verified against pinned upstream repos, and a workflow built for both human contributors and AI coding agents from day one.
7+
This repo is a ground-up rewrite of the ICP developer docs: a flat Diataxis structure (Getting Started, Guides, Concepts, Languages, Reference), content verified against pinned upstream repos, and a workflow built for both human contributors and AI coding agents from day one. It replaces the previous [dfinity/portal](https://github.com/dfinity/portal) (Docusaurus) site.
108

119
## Current state
1210

13-
Most pages are content-complete. A small number of pages remain as stubs (vetkeys, encryption). The existing production docs remain live during the transition.
11+
Most pages are content-complete. A small number of pages remain as stubs (vetkeys, encryption).
1412

1513
## Content areas
1614

astro.config.mjs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { TITLE, DESCRIPTION, PUBLISHER, OG_ALT } from "./src/branding.mjs";
1313

1414
// https://astro.build/config
1515
export default defineConfig({
16-
site: "https://beta-docs.internetcomputer.org",
16+
site: "https://docs.internetcomputer.org",
1717
markdown: {
1818
// Rehype plugins work with Starlight (remark plugins don't — Starlight overrides them).
1919
// See: https://github.com/dfinity/icp-cli/issues/423
@@ -61,15 +61,15 @@ export default defineConfig({
6161
},
6262
{
6363
tag: "meta",
64-
attrs: { property: "og:image", content: "https://beta-docs.internetcomputer.org/og-image.png" },
64+
attrs: { property: "og:image", content: "https://docs.internetcomputer.org/og-image.png" },
6565
},
6666
{
6767
tag: "meta",
6868
attrs: { property: "og:image:alt", content: OG_ALT },
6969
},
7070
{
7171
tag: "meta",
72-
attrs: { name: "twitter:image", content: "https://beta-docs.internetcomputer.org/og-image.png" },
72+
attrs: { name: "twitter:image", content: "https://docs.internetcomputer.org/og-image.png" },
7373
},
7474
{
7575
tag: "script",
@@ -79,15 +79,15 @@ export default defineConfig({
7979
"@graph": [
8080
{
8181
"@type": "WebSite",
82-
"@id": "https://beta-docs.internetcomputer.org/#website",
82+
"@id": "https://docs.internetcomputer.org/#website",
8383
"name": TITLE,
8484
"description": DESCRIPTION,
85-
"url": "https://beta-docs.internetcomputer.org",
86-
"publisher": { "@id": "https://beta-docs.internetcomputer.org/#organization" },
85+
"url": "https://docs.internetcomputer.org",
86+
"publisher": { "@id": "https://docs.internetcomputer.org/#organization" },
8787
},
8888
{
8989
"@type": "Organization",
90-
"@id": "https://beta-docs.internetcomputer.org/#organization",
90+
"@id": "https://docs.internetcomputer.org/#organization",
9191
"name": PUBLISHER,
9292
"url": "https://dfinity.org",
9393
},

public/.well-known/ic-domains

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
docs.internetcomputer.org
12
beta-docs.internetcomputer.org

public/og-image.svg

Lines changed: 1 addition & 1 deletion
Loading

public/robots.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
User-agent: *
22
Allow: /
33

4-
Sitemap: https://beta-docs.internetcomputer.org/sitemap-index.xml
4+
Sitemap: https://docs.internetcomputer.org/sitemap-index.xml
55

66
# LLM and AI agent discovery (llmstxt.org)
7-
# https://beta-docs.internetcomputer.org/llms.txt
8-
# https://beta-docs.internetcomputer.org/llms-full.txt
7+
# https://docs.internetcomputer.org/llms.txt
8+
# https://docs.internetcomputer.org/llms-full.txt

scripts/validate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ function checkFrontmatter(file, content) {
4444

4545
const FORBIDDEN = [
4646
{ re: /mo:base/, msg: '"mo:base" is banned — use "mo:core" instead' },
47-
{ re: /internetcomputer\.org\/docs/, msg: 'internetcomputer.org/docs URLs will break — link internally or inline' },
48-
{ re: /docs\.internetcomputer\.org/, msg: 'docs.internetcomputer.org URLs will breaklink internally or inline' },
47+
{ re: /internetcomputer\.org\/docs/, msg: 'internetcomputer.org/docs is retired — link internally or inline' },
48+
{ re: /docs\.internetcomputer\.org/, msg: 'docs.internetcomputer.org is this siteuse relative paths for internal links' },
4949
];
5050

5151
function checkEmdash(file, content) {

0 commit comments

Comments
 (0)