Skip to content

Commit 957deea

Browse files
nearestnaborsclaudegithub-actions[bot]
authored
New Information Architecture (#622)
* tentatively scaffolds new folder structure—very breaking, much sad * Organize guides and resources. * Update all internal documentation links to new IA structure - Migrated 176 files with 2,657 link updates total - Updated links from /home/ paths to new structure: - /get-started/ for onboarding content - /guides/ for how-to guides - /references/ for reference documentation - /resources/ for supplementary content - Based on URL mappings from docs-migration.csv 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Add server-side redirects for old URLs to new IA structure - Added 61 permanent (308) redirects in next.config.ts - Maps old /home/ paths to new information architecture - Uses Next.js redirects() for server-side handling - SEO-friendly: search engines will update their indexes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Fix remaining /home/ links throughout documentation - Updated 119 files with remaining /home/ references - Fixed links with anchors and query parameters - Ensured all internal links point to new IA structure - Comprehensive mapping of all /home/ paths to new locations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * 🤖 Regenerate LLMs.txt * fixing missing closing brackets * fix broken has links * fix duplicate links * update broken links * more broken link and md fixes * fix moar links * update broken links * correct infinite redirects * fixing some messed up redirects and blank links * 🤖 Regenerate LLMs.txt * fix auth providers url generation * Fix 75 broken links and resolve routing issues Fixed multiple categories of broken links across the documentation: Routing & Redirects: - Removed infinite redirect loops (e.g., /en/references redirecting to itself) - Added proper redirects for MCP paths (/en/references/mcp, /en/references/mcp/python) - Added redirects for paths missing locale prefixes (/mcp-servers/* → /en/resources/integrations/*) - Fixed paths to moved pages (e.g., api-key → api-keys, openai → openai-agents) Link Corrections: - Fixed malformed anchor links missing '#' separator (e.g., googleusing-google-auth → google#using-google-auth) - Updated paths to point to correct locations (e.g., /guides/create-tools/contribute/registry-early-access) - Fixed references in glossary to use correct anchor format Test Updates: - Enhanced broken-link-check.test.ts with comprehensive redirect whitelist - Added handling for both /mcp-servers/* and /en/mcp-servers/* patterns - Updated test to validate redirects match actual file structure All 75 broken links now resolved. Both broken-link-check and internal-link-check tests pass. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: make documentation routing language-agnostic ## Summary Made the documentation system properly multilingual by removing hardcoded English locale prefixes from all internal links and redirect configurations. Nextra automatically handles locale routing, so explicit /en/ prefixes were causing issues and breaking multilingual support. ## Changes Made ### Redirect Configuration (next.config.ts) - Removed /en/ prefixes from all redirect destinations - Fixed infinite redirect loops where paths were redirecting to themselves - Cleaned up duplicate entries from merge conflicts - All redirects now use language-agnostic paths that work with any locale - Verified all redirects from docs-migration.csv are present and correct ### Internal Links - Updated all markdown files to remove hardcoded /en/ prefixes from internal links - Fixed malformed anchor links that were missing '#' separators - Corrected links pointing to wrong auth provider documentation ### Test Updates (tests/broken-link-check.test.ts) - Updated link validation to handle language-agnostic paths - Added redirect mappings for all known redirects - Tests now properly validate links without locale prefixes ## Files Modified - next.config.ts - Removed locale prefixes from all redirects - app/en/references/changelog/page.mdx - Fixed malformed Google auth link - app/en/resources/glossary/page.mdx - Fixed malformed Google auth links - app/en/resources/tools/page.mdx - Removed /en/ from internal links - app/en/resources/integrations/productivity/*.mdx - Fixed Google auth reference links - tests/broken-link-check.test.ts - Updated to handle language-agnostic validation ## Testing ✅ All tests passing (0 broken links) ✅ Verified redirects work correctly without locale prefixes ✅ Confirmed Nextra handles locale routing automatically ✅ Cross-referenced all redirects with docs-migration.csv 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update old redirect paths and remove knownRedirects from test file Updated all internal links to use the correct destination paths instead of redirect paths: - /get-started/setup/api-key → /get-started/setup/api-keys - /references/auth-providers/ → /references/auth-providers (removed trailing slash) - /guides/tool-calling/ → /guides/tool-calling (removed trailing slash) - /references/mcp/python/ → /references/mcp/python - /guides/tool-calling/custom-apps/authorized-tool-calling → /guides/tool-calling/custom-apps/auth-tool-calling - /guides/user-facing-agents/brand-provider → /guides/user-facing-agents/secure-auth-production - /guides/tool-calling/mcp-client/* → /guides/tool-calling/mcp-clients/* - /guides/tool-calling/get-tool-definitions → /guides/tool-calling/custom-apps/get-tool-definitions - /guides/deployment-hosting/engine-configuration → /guides/deployment-hosting/configure-engine - /guides/create-tools/performance/run-evaluations → /guides/create-tools/evaluate-tools/run-evaluations - /references/arcade-cliarcade-configure → /references/arcade-cli - /resources/creating-tools/tool-basics/build-mcp-server → /guides/create-tools/tool-basics/build-mcp-server - /resources/mastra/user-auth-interrupts → /guides/agent-frameworks/mastra/user-auth-interrupts Removed the knownRedirects mapping from the test file since all links now point directly to the correct paths. All tests pass successfully. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * update reroutes * remove and don't track .bak * fix malformed urls * Merge branch 'origin/main' into new-ia-backup - resolved conflicts * Rectifying merge conflicts * 🤖 Regenerate LLMs.txt --------- Co-authored-by: Rachel Lee Nabors <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent ea7c67c commit 957deea

File tree

421 files changed

+19859
-22416
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

421 files changed

+19859
-22416
lines changed

.github/scripts/update-example-dates.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env node
22

3-
const fs = require("fs");
4-
const path = require("path");
3+
const fs = require("node:fs");
4+
const path = require("node:path");
55

66
function parseRepositoriesFromMDX(content) {
77
const repositories = [];
@@ -90,7 +90,10 @@ async function updateExampleDates() {
9090
console.log("Parsing repositories from MDX file...");
9191

9292
// Read the current MDX file
93-
const mdxPath = path.join(__dirname, "../../app/en/home/examples/page.mdx");
93+
const mdxPath = path.join(
94+
__dirname,
95+
"../../app/en/resources/examples/page.mdx"
96+
);
9497
let content = fs.readFileSync(mdxPath, "utf8");
9598

9699
// Parse repositories from the MDX file

.github/workflows/translate-docs.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ on:
3232
type: boolean
3333

3434
single_file:
35-
description: "Single file to translate (relative to app/en, e.g. 'home/page.mdx')"
35+
description: "Single file to translate (relative to app/en, e.g. 'resources/examples/page.mdx')"
3636
required: false
3737
default: ""
3838
type: string
@@ -121,14 +121,14 @@ jobs:
121121
else
122122
echo "Changes detected"
123123
echo "has_changes=true" >> $GITHUB_OUTPUT
124-
124+
125125
# Count changed files
126126
CHANGED_FILES=$(git diff --name-only | wc -l)
127127
STAGED_FILES=$(git diff --cached --name-only | wc -l)
128128
TOTAL_CHANGES=$((CHANGED_FILES + STAGED_FILES))
129-
129+
130130
echo "changed_files=$TOTAL_CHANGES" >> $GITHUB_OUTPUT
131-
131+
132132
# Get list of changed locales
133133
CHANGED_LOCALES=$(git diff --name-only | grep -E '^app/(es|pt-BR)/' | cut -d'/' -f2 | sort -u | tr '\n' ',' | sed 's/,$//')
134134
if [ -z "$CHANGED_LOCALES" ]; then
@@ -213,22 +213,22 @@ jobs:
213213
head: '${{ steps.branch_name.outputs.branch_name }}',
214214
base: 'main',
215215
body: `## 📖 Automated Translation Update
216-
216+
217217
This PR contains automated translations generated by the GitHub Actions workflow.
218-
218+
219219
### 📊 Translation Summary
220220
- **Target Locale**: ${{ inputs.target_locale }}
221221
- **Files Changed**: ${{ steps.check_changes.outputs.changed_files }}
222222
- **Locales Updated**: ${{ steps.check_changes.outputs.changed_locales }}
223-
223+
224224
### ⚙️ Configuration Used
225225
- **Force Translate**: ${{ inputs.force_translate }}
226226
- **Cleanup Deleted Files**: ${{ inputs.cleanup_deleted }}
227227
- **Dry Run**: ${{ inputs.dry_run }}
228228
- **Single File**: ${{ inputs.single_file || 'None (all files)' }}
229229
- **Concurrency**: ${{ inputs.concurrency }}
230230
- **Model**: gpt-4o-mini
231-
231+
232232
### 🔍 Review Guidelines
233233
Please review the translations for:
234234
- [ ] Accuracy and context preservation
@@ -237,10 +237,10 @@ jobs:
237237
- [ ] Code blocks and inline code unchanged
238238
- [ ] Markdown formatting preserved
239239
- [ ] Brand names (Arcade, Arcade Engine, Control Plane) kept in English
240-
240+
241241
### 🚀 Auto-generated
242242
This PR was automatically created by the \`translate-docs.yml\` GitHub Action.
243-
243+
244244
**Triggered by**: @${{ github.actor }}
245245
**Workflow Run**: [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})`,
246246
draft: false

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ make_toolkit_docs/.venv/
1515
make_toolkit_docs/.env
1616
make_toolkit_docs/__pycache__/
1717
make_toolkit_docs/uv.lock
18+
*.bak

_dictionaries/en.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default {
99
lastUpdated: "Last updated on",
1010
notFound: "This page could not be found",
1111
poweredBy: "Powered by",
12-
editPage: "Edit this page on GitHub",
12+
editPage: "Edit this page on GitHub",
1313
by: "by",
1414
banner: {
1515
aiTranslation:

app/_components/cheat-sheet.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { AlertTriangle, Info, Lightbulb } from "lucide-react";
44
import type React from "react";
55

6-
interface CheatSheetSectionProps {
6+
type CheatSheetSectionProps = {
77
title: string;
88
icon: string;
99
color:
@@ -16,7 +16,7 @@ interface CheatSheetSectionProps {
1616
| "pink"
1717
| "yellow";
1818
children: React.ReactNode;
19-
}
19+
};
2020

2121
const colorClasses = {
2222
red: "bg-red-500/10 border-red-500/20 dark:bg-red-500/10 dark:border-red-400/30",

app/_components/logo.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { Arcade, Badge } from "@arcadeai/design-system";
1+
import { Arcade } from "@arcadeai/design-system";
22
import ArcadeLogo from "@arcadeai/design-system/assets/images/arcade-logo";
33

44
export function Logo() {
55
return (
66
<>
77
<div className="mr-2 hidden w-40 flex-row lg:flex lg:items-end lg:gap-2.5">
88
<ArcadeLogo className="h-7 w-auto invert dark:invert-0" />
9-
<Badge
9+
{/* <Badge
1010
className="relative top-0.5 font-medium font-mono text-xs"
1111
variant="outline"
1212
>
1313
Docs
14-
</Badge>
14+
</Badge> */}
1515
</div>
1616

1717
<div className="mr-16 block w-6 lg:hidden">

app/_components/scope-picker.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
import { useState } from "react";
44

5-
interface Tool {
5+
type Tool = {
66
name: string;
77
scopes: string[];
8-
}
8+
};
99

10-
interface ScopePickerProps {
10+
type ScopePickerProps = {
1111
tools: Tool[];
12-
}
12+
};
1313

1414
export default function ScopePicker({ tools }: ScopePickerProps) {
1515
const [selectedTools, setSelectedTools] = useState<Set<string>>(new Set());

app/_components/starter-tool-info.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const StarterToolInfo: React.FC<StarterToolInfoProps> = ({ toolkitName }) => (
1010
<p>
1111
{toolkitName} is a{" "}
1212
<u>
13-
<a href="/home/use-tools/types-of-tools#starter-tools">
13+
<a href="/guides/create-tools/improve/types-of-tools#starter-tools">
1414
Starter MCP Server
1515
</a>
1616
</u>
@@ -21,15 +21,16 @@ const StarterToolInfo: React.FC<StarterToolInfoProps> = ({ toolkitName }) => (
2121
<p>
2222
Differently from{" "}
2323
<u>
24-
<a href="/home/use-tools/types-of-tools#optimized-tools">
24+
<a href="/guides/create-tools/improve/types-of-tools#optimized-tools">
2525
Optimized MCP Servers
2626
</a>
2727
</u>
2828
, Starter tools are heavily influenced by the original API design, which
2929
is not usually optimized for LLM usage. For this reason, we recommend
3030
thoroughly evaluating the tools with your Agents or chatbots before using
31-
it in production. <a href="/home/use-tools/types-of-tools">Read more</a>{" "}
32-
about Optimized vs Starter tools.
31+
it in production.{" "}
32+
<a href="/guides/create-tools/improve/types-of-tools">Read more</a> about
33+
Optimized vs Starter tools.
3334
</p>
3435
</Callout>
3536
);

app/_components/tool-info.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {
77
} from "@arcadeai/design-system";
88
import { usePathname } from "next/navigation";
99
import type React from "react";
10-
import { findToolkitFromPath } from "../en/mcp-servers/components/toolkit-utils";
11-
import { TYPE_CONFIG } from "../en/mcp-servers/components/type-config";
10+
import { findToolkitFromPath } from "../en/resources/integrations/components/toolkit-utils";
11+
import { TYPE_CONFIG } from "../en/resources/integrations/components/type-config";
1212

1313
type ToolInfoProps = {
1414
description: string;
@@ -59,7 +59,7 @@ const ToolInfo: React.FC<ToolInfoProps> = ({
5959

6060
const resolvedAuthDocsUrl =
6161
authProviderName && !authProviderDocsUrl
62-
? `/home/auth-providers/${authProviderName.toLowerCase()}`
62+
? `/references/auth-providers/${authProviderName.toLowerCase()}`
6363
: authProviderDocsUrl;
6464

6565
const toolkit = findToolkitFromPath(pathname);

app/en/_meta.tsx

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,57 @@
1+
import {
2+
Book,
3+
BookOpen,
4+
GraduationCap,
5+
Home,
6+
Pencil,
7+
Ruler,
8+
} from "lucide-react";
19
import type { MetaRecord } from "nextra";
210

3-
const meta: MetaRecord = {
11+
function TitleWithIcon({
12+
icon: Icon,
13+
children,
14+
}: {
15+
icon: React.ComponentType<{ className?: string }>;
16+
children: React.ReactNode;
17+
}) {
18+
return (
19+
<span className="flex items-center gap-2 font-medium text-gray-950 dark:text-white">
20+
<Icon className="size-4" />
21+
{children}
22+
</span>
23+
);
24+
}
25+
26+
export const meta: MetaRecord = {
427
"*": {
528
theme: {
6-
copyPage: false,
29+
copyPage: true,
730
},
831
},
932
home: {
10-
type: "page",
11-
title: "Home",
12-
href: "/get-started",
33+
title: <TitleWithIcon icon={Home}>Docs Home</TitleWithIcon>,
34+
theme: {
35+
breadcrumb: false,
36+
layout: "full",
37+
toc: false,
38+
copyPage: false,
39+
},
40+
},
41+
"get-started": {
42+
title: <TitleWithIcon icon={BookOpen}>Get Started</TitleWithIcon>,
43+
},
44+
resources: {
45+
title: <TitleWithIcon icon={Pencil}>Resources</TitleWithIcon>,
46+
},
47+
guides: {
48+
title: <TitleWithIcon icon={Ruler}>Guides</TitleWithIcon>,
1349
},
14-
"mcp-servers": {
15-
type: "page",
16-
title: "MCP Servers",
17-
href: "/mcp-servers",
50+
learn: {
51+
title: <TitleWithIcon icon={Book}>Learn</TitleWithIcon>,
1852
},
1953
references: {
20-
type: "page",
21-
title: "API & SDKs",
22-
href: "/references",
54+
title: <TitleWithIcon icon={GraduationCap}>References</TitleWithIcon>,
2355
},
2456
};
2557

0 commit comments

Comments
 (0)