Cross-Workspace Link Strategy: Relative vs. Absolute URLs
The Core Insight
When you have multiple doc sites across multiple repos, your link strategy determines whether they can deploy independently. Relative links create coupling; absolute HTTPS URLs create freedom. We learned this by separating GRACE docs from STRATT docs and managing links carefully.The Two Strategies
❌ Bad: Local paths (coupling)
- Breaks if grace-hq folder structure changes
- Assumes grace-hq is deployed alongside MERIDIAN (coupled)
- Can’t redirect to grace.devarno.cloud without breaking links
- Becomes a tech debt trap: “we’d love to separate these but too many links”
✅ Good: Absolute HTTPS URLs (decoupling)
- Works regardless of grace-hq deployment location
- Gracefully handles DNS/URL changes (update grace.devarno.cloud → new server)
- Both sites deploy independently on their own schedules
- Clear architectural boundaries (MERIDIAN doesn’t assume Grace’s topology)
The Three Levels of Links
Level 1: Intra-site (within same doc site)
Location: grace-hq docs or MERIDIAN docs, linking to pages in same site Strategy: Relative paths with/ prefix
Level 2: Inter-site (GRACE ↔ STRATT)
Location: grace-hq docs linking to stratt.dev, or vice versa Strategy: Absolute HTTPS URLsLevel 3: Cross-workspace discovery (atlas learnings → grace docs)
Location: atlas learnings linking to grace-hq docs Strategy: Absolute HTTPS URLsThe Real Problem This Solves
Imagine this scenario (pre-migration, problematic):Implementation Pattern
Step 1: Inventory existing links
Step 2: Categorize by type
- Intra-site (grace-hq → grace-hq) = relative
/prefix ✅ - Inter-site (grace-hq → stratt.dev) = absolute
https://stratt.dev✅ - Inter-site (meridian → grace.devarno.cloud) = absolute
https://grace.devarno.cloud✅ - Inter-site (anything → external source) = absolute HTTPS ✅
Step 3: Audit cross-site links monthly
Step 4: Update link in CI/CD (optional, for high-traffic links)
If you move a domain (e.g., grace.devarno.cloud → grace.ai), update all docs that reference it:Edge Cases
Case 1: Linking within a deep nested structure
Case 2: Fragment links (anchors)
Case 3: External image hosting
Maintenance Checklist
Monthly:- Run
bun run buildon both grace-hq and MERIDIAN - Sample 10 cross-site links:
curl -I https://grace.devarno.cloud/... - Check sidebar structure matches docs folder structure
- Grep for stub links (TODO, STUB, [link to be filled in])
- Audit for protocol links in MERIDIAN (should all be absolute to grace.devarno.cloud)
- Update DNS record
- Test 20 random absolute URLs resolve to new domain
- No code changes needed (links use domain, not hardcoded IPs)
Why Absolute URLs Are Non-Negotiable
- Future-proofs migrations: Move domains without touching 1,000 docs
- Enables monitoring: Can track which sites link to you (HTTP referrer headers)
- Respects repo boundaries: MERIDIAN doesn’t need to know grace-hq’s structure
- Facilitates mirrors: If grace.devarno.cloud goes down, can stand up a mirror without rewriting links
- Simplifies API generation: If you auto-generate docs from an API, absolute URLs work across any deployment target
Applicable Beyond GRACE
Use this pattern when:- You have >1 documentation site
- Sites are owned by different teams or orgs
- You want independent deployment schedules
- You plan to migrate domains or hosting providers
- You want to avoid “tech debt coupling” where moving docs becomes impossible
Related: GRACE Documentation Separation (why we needed separate sites), Taskset-Gated Documentation Workflow (how we managed the migration process).