diff --git a/apps/backend/src/lib/ai/prompts.ts b/apps/backend/src/lib/ai/prompts.ts
index b052ecc00..ba3de67c2 100644
--- a/apps/backend/src/lib/ai/prompts.ts
+++ b/apps/backend/src/lib/ai/prompts.ts
@@ -207,7 +207,7 @@ When users need personalized support, have complex issues, or ask for help beyon
- Provide practical, working examples
- Focus on giving complete, helpful answers
- **When referencing documentation, use links with the base URL: https://docs.hexclave.com**
-- Example: For setup docs, use https://docs.hexclave.com/docs/getting-started/setup
+- Example: For setup docs, use https://docs.hexclave.com/guides/getting-started/setup
## CODE EXAMPLE GUIDELINES:
- For API calls, show both the HTTP endpoint AND the SDK method
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/api-keys-app/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/api-keys-app/page-client.tsx
index 26ff58dc2..d69f0dc2b 100644
--- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/api-keys-app/page-client.tsx
+++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/api-keys-app/page-client.tsx
@@ -109,7 +109,7 @@ export default function PageClient() {
If you are looking to create or manage keys for your Hexclave project, head over to the Project Keys settings.
- For more information, see the API Keys docs.
+ For more information, see the API Keys docs.
>}
/>
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/session-replays/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/session-replays/page-client.tsx
index 900c56db3..0a233aa37 100644
--- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/session-replays/page-client.tsx
+++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/session-replays/page-client.tsx
@@ -2085,7 +2085,7 @@ export default function PageClient({ initialReplayId, lockedUserId }: PageClient
Session replays let you watch how users interact with your app. For info on enabling replays,{" "}
look here
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page-client.tsx
index 9b3be7f90..14f717f9f 100644
--- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page-client.tsx
+++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page-client.tsx
@@ -27,7 +27,7 @@ import { useAdminApp } from '../../use-admin-app';
import { TeamAnalyticsSection } from './team-analytics';
import { TeamPaymentsSection } from './team-payments';
-const teamMetadataDocsUrl = "https://docs.hexclave.com/docs/concepts/teams";
+const teamMetadataDocsUrl = "https://docs.hexclave.com/guides/apps/teams/overview";
const inviteFormSchema = yupObject({
email: strictEmailSchema("Please enter a valid email address").defined(),
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/users/[userId]/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/users/[userId]/page-client.tsx
index 1dd8909e4..2a4bbbbd0 100644
--- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/users/[userId]/page-client.tsx
+++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/users/[userId]/page-client.tsx
@@ -81,7 +81,7 @@ const SessionReplaysPageClient = dynamic(
},
);
-const userMetadataDocsUrl = "https://docs.hexclave.com/docs/concepts/custom-user-data";
+const userMetadataDocsUrl = "https://docs.hexclave.com/guides/getting-started/user-fundamentals#custom-metadata";
export default function PageClient({ userId }: { userId: string }) {
const stackAdminApp = useAdminApp();
diff --git a/apps/dashboard/src/components/user-dialog.tsx b/apps/dashboard/src/components/user-dialog.tsx
index 3894ab095..01bc5f3a4 100644
--- a/apps/dashboard/src/components/user-dialog.tsx
+++ b/apps/dashboard/src/components/user-dialog.tsx
@@ -10,7 +10,7 @@ import { DateField, InputField, SwitchField, TextAreaField } from "./form-fields
import { StyledLink } from "./link";
import { validateRiskScore } from "@/lib/risk-score-utils";
-const metadataDocsUrl = "https://docs.hexclave.com/docs/concepts/custom-user-data";
+const metadataDocsUrl = "https://docs.hexclave.com/guides/getting-started/user-fundamentals#custom-metadata";
export function UserDialog(props: {
open?: boolean,
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/index.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/index.test.ts
index 0b7178ab7..9f636f92f 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/index.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/index.test.ts
@@ -62,7 +62,7 @@ describe("without project ID", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/integrations/custom/projects/transfer.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/integrations/custom/projects/transfer.test.ts
index aa67f7d74..695692992 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/integrations/custom/projects/transfer.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/integrations/custom/projects/transfer.test.ts
@@ -233,7 +233,7 @@ it("should fail to transfer project if the user is not signed in", async ({ expe
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/api-keys.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/api-keys.test.ts
index 4dea12626..f4c809444 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/api-keys.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/api-keys.test.ts
@@ -19,7 +19,7 @@ describe("without project access", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/projects/transfer.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/projects/transfer.test.ts
index 72e1ce758..8417cebfd 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/projects/transfer.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/integrations/neon/projects/transfer.test.ts
@@ -266,7 +266,7 @@ it("should fail to transfer project if the user is not signed in", async ({ expe
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/api-keys.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/api-keys.test.ts
index 673febae8..cef524040 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/api-keys.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/api-keys.test.ts
@@ -19,7 +19,7 @@ describe("without project access", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/method-configs.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/method-configs.test.ts
index 2ef7d32ca..026b98d74 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/method-configs.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/method-configs.test.ts
@@ -21,7 +21,7 @@ describe("GET /api/v1/internal/payments/method-configs", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/setup.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/setup.test.ts
index 981128a11..42e4dc3fa 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/setup.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/setup.test.ts
@@ -23,7 +23,7 @@ describe("POST /api/v1/internal/payments/setup", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/stripe/account-info.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/stripe/account-info.test.ts
index f910cfde8..92faa837c 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/stripe/account-info.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/payments/stripe/account-info.test.ts
@@ -21,7 +21,7 @@ describe("GET /api/v1/internal/payments/stripe/account-info", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/projects.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/projects.test.ts
index cb8e8e70e..eb9cdd912 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/projects.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/projects.test.ts
@@ -14,7 +14,7 @@ it("should not have have access to the project", async ({ expect }) => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/sign-up-rules-stats.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/sign-up-rules-stats.test.ts
index 5717f12ba..5e5261d40 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/internal/sign-up-rules-stats.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/sign-up-rules-stats.test.ts
@@ -20,7 +20,7 @@ describe("without project access", () => {
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/payments/items.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/payments/items.test.ts
index a9f28a5cc..073127378 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/payments/items.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/payments/items.test.ts
@@ -25,7 +25,7 @@ describe("without authentication", () => {
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/payments/products.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/payments/products.test.ts
index b194c2d25..e1f150407 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/payments/products.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/payments/products.test.ts
@@ -1199,7 +1199,7 @@ it("listing owned products should require authentication", async ({ expect }) =>
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/projects.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/projects.test.ts
index eff92f40c..4a500badd 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/projects.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/projects.test.ts
@@ -20,7 +20,7 @@ it("should not have access to the project without project keys", async ({ expect
"error": deindent\`
The x-hexclave-access-type header was 'client', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
@@ -1440,7 +1440,7 @@ it("does not allow accessing a project without a project ID header", async ({ ex
"error": deindent\`
The x-hexclave-access-type header was 'admin', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/backend/endpoints/api/v1/users.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/users.test.ts
index 30841afec..b918448a4 100644
--- a/apps/e2e/tests/backend/endpoints/api/v1/users.test.ts
+++ b/apps/e2e/tests/backend/endpoints/api/v1/users.test.ts
@@ -24,7 +24,7 @@ describe("without project access", () => {
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
@@ -46,7 +46,7 @@ describe("without project access", () => {
"error": deindent\`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
\`,
},
"headers": Headers {
diff --git a/apps/e2e/tests/general/cli.test.ts b/apps/e2e/tests/general/cli.test.ts
index b4cf5a0b8..a7dced102 100644
--- a/apps/e2e/tests/general/cli.test.ts
+++ b/apps/e2e/tests/general/cli.test.ts
@@ -245,7 +245,7 @@ describe("Stack CLI", () => {
it("exec help mentions docs URL", async ({ expect }) => {
const { stdout, exitCode } = await runCli(["exec", "--help"]);
expect(exitCode).toBe(0);
- expect(stdout).toContain("https://docs.hexclave.com/docs/sdk");
+ expect(stdout).toContain("https://docs.hexclave.com/sdk/overview");
});
it("exec help mentions --cloud-project-id and --config-file", async ({ expect }) => {
diff --git a/docs-mintlify/docs.json b/docs-mintlify/docs.json
index b1ab5a3b3..2a046d9a8 100644
--- a/docs-mintlify/docs.json
+++ b/docs-mintlify/docs.json
@@ -244,63 +244,5 @@
},
"settings": {
"customScripts": ["/apps-sidebar-filter.js", "/code-language-labels.js"]
- },
- "redirects": [
- {
- "source": "/rest-api/overview",
- "destination": "/api/overview"
- },
- {
- "source": "/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/next/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/sdk",
- "destination": "/sdk/overview"
- },
- {
- "source": "/docs/apps/analytics",
- "destination": "/guides/apps/analytics/overview"
- },
- {
- "source": "/docs/apps/api-keys",
- "destination": "/guides/apps/api-keys/overview"
- },
- {
- "source": "/docs/others/convex",
- "destination": "/guides/integrations/convex/overview"
- },
- {
- "source": "/docs/concepts/teams",
- "destination": "/guides/apps/teams/overview"
- },
- {
- "source": "/docs/concepts/custom-user-data",
- "destination": "/guides/getting-started/user-fundamentals#custom-metadata"
- },
- {
- "source": "/guides/going-further/user-metadata",
- "destination": "/guides/getting-started/user-fundamentals#custom-metadata"
- },
- {
- "source": "/others/js-client",
- "destination": "/sdk/objects/stack-app"
- },
- {
- "source": "/guides/going-further/stack-app",
- "destination": "/sdk/objects/stack-app"
- },
- {
- "source": "/guides/going-further/backend-integration",
- "destination": "/guides/getting-started/setup"
- }
- ]
+ }
}
diff --git a/docs-mintlify/llms-full.txt b/docs-mintlify/llms-full.txt
index af2188f68..4e155ba9f 100644
--- a/docs-mintlify/llms-full.txt
+++ b/docs-mintlify/llms-full.txt
@@ -29,7 +29,7 @@ Below are some reminders on Hexclave and how to learn more about it.
The full docs sidebar — generated from the live navigation. Fetch any of these directly:
-- [Index](https://docs.hexclave.com/index)
+- [Index](https://docs.hexclave.com)
- **Getting Started**
- [Setup](https://docs.hexclave.com/guides/getting-started/setup)
- [User Fundamentals](https://docs.hexclave.com/guides/getting-started/user-fundamentals)
diff --git a/docs-mintlify/sdk/types/team-user.mdx b/docs-mintlify/sdk/types/team-user.mdx
index dc99127fc..6743163dd 100644
--- a/docs-mintlify/sdk/types/team-user.mdx
+++ b/docs-mintlify/sdk/types/team-user.mdx
@@ -98,7 +98,7 @@ It is usually obtained by calling `serverTeam.listUsers()` on a [`ServerTeam` ob
// Inherits all functionality from TeamUser
& TeamUser; //$stack-link-to:#teamuser
// Inherits all functionality from ServerUser
- & ServerUser; //$stack-link-to:/docs/sdk/types/user#serveruser
+ & ServerUser; //$stack-link-to:/sdk/types/user#serveruser
& {
teamProfile: ServerTeamMemberProfile; //$stack-link-to:#serverteamuserteamprofile
};`}
diff --git a/docs/content/docs/(guides)/apps/payments.mdx b/docs/content/docs/(guides)/apps/payments.mdx
index a02c04994..57379d1da 100644
--- a/docs/content/docs/(guides)/apps/payments.mdx
+++ b/docs/content/docs/(guides)/apps/payments.mdx
@@ -94,7 +94,7 @@ You can turn on **test mode** to simulate purchases without charging real money
## SDK Usage
-The Payments functionality is available through the [`Customer`](/docs/sdk/types/customer) interface, which is automatically available on [`CurrentUser`](/docs/sdk/types/user#currentuser) and [`Team`](/docs/sdk/types/team#team) objects.
+The Payments functionality is available through the [`Customer`](/sdk/types/customer) interface, which is automatically available on [`CurrentUser`](/sdk/types/user#currentuser) and [`Team`](/sdk/types/team#team) objects.
### Creating Checkout URLs
@@ -114,7 +114,7 @@ For team purchases:
### Managing Items
-Items represent quantifiable resources like credits, API calls, or storage quotas. See the [`Item`](/docs/sdk/types/item) type reference for full details.
+Items represent quantifiable resources like credits, API calls, or storage quotas. See the [`Item`](/sdk/types/item) type reference for full details.
#### Getting Item Quantities
@@ -260,9 +260,9 @@ See [Stripe's testing documentation](https://stripe.com/docs/testing) for more t
For complete API documentation, see:
-- [`Customer`](/docs/sdk/types/customer) - Payment methods available on users and teams
-- [`Item`](/docs/sdk/types/item) - Item and ServerItem type definitions
-- [`ServerItem`](/docs/sdk/types/item#serveritem) - Server-side item management methods
+- [`Customer`](/sdk/types/customer) - Payment methods available on users and teams
+- [`Item`](/sdk/types/item) - Item and ServerItem type definitions
+- [`ServerItem`](/sdk/types/item#serveritem) - Server-side item management methods
## Best Practices
diff --git a/docs/content/docs/(guides)/concepts/jwt.mdx b/docs/content/docs/(guides)/concepts/jwt.mdx
index 277002cff..e97eed4a2 100644
--- a/docs/content/docs/(guides)/concepts/jwt.mdx
+++ b/docs/content/docs/(guides)/concepts/jwt.mdx
@@ -172,7 +172,7 @@ Use the JWT viewer above to inspect tokens and verify their contents. Pay specia
## Related Concepts
-- [API Keys](/docs/apps/api-keys) - Alternative authentication method for server-to-server communication
-- [Backend Integration](/docs/concepts/backend-integration) - How to verify JWTs in your backend
+- [API Keys](/guides/apps/api-keys/overview) - Alternative authentication method for server-to-server communication
+- [Setup](/guides/getting-started/setup) - How to verify user sessions in your backend
- [Permissions](/docs/apps/permissions) - Understanding user permissions (not included in JWTs)
- [Teams](/docs/apps/orgs-and-teams) - Understanding team context in JWTs
diff --git a/docs/content/docs/(guides)/rest-api/overview.mdx b/docs/content/docs/(guides)/rest-api/overview.mdx
index 1d59d67a0..7d7335e67 100644
--- a/docs/content/docs/(guides)/rest-api/overview.mdx
+++ b/docs/content/docs/(guides)/rest-api/overview.mdx
@@ -115,6 +115,6 @@ To see how to use these headers in various programming languages, see the [examp
## Need Help?
-- Check out our [Getting Started Guide](/docs/next/getting-started/setup) for initial setup
+- Check out our [Getting Started Guide](/guides/getting-started/setup) for initial setup
- Visit our [Concepts](/docs/next/concepts) section to understand Stack Auth fundamentals
- Join our [Discord community](https://discord.stack-auth.com/) for support and discussions
diff --git a/docs/templates-api/overview.mdx b/docs/templates-api/overview.mdx
index adc06cb93..30fcdb0ac 100644
--- a/docs/templates-api/overview.mdx
+++ b/docs/templates-api/overview.mdx
@@ -96,5 +96,5 @@ To see how to use these headers in various programming languages, see the [examp
## Need Help?
-- Check out our [Getting Started Guide](/docs/getting-started/setup) for initial setup
+- Check out our [Getting Started Guide](/guides/getting-started/setup) for initial setup
- Join our [Discord community](https://discord.stack-auth.com/) for support and discussions
diff --git a/packages/init-stack/README.md b/packages/init-stack/README.md
index 59d002991..230d02174 100644
--- a/packages/init-stack/README.md
+++ b/packages/init-stack/README.md
@@ -41,4 +41,4 @@ Initialize Hexclave in a JavaScript project with npm:
npx init-stack --js --npm
```
-For more information, please visit [Hexclave Documentation](https://docs.hexclave.com/getting-started/setup).
+For more information, please visit [Hexclave Documentation](https://docs.hexclave.com/guides/getting-started/setup).
diff --git a/packages/init-stack/src/index.ts b/packages/init-stack/src/index.ts
index 194d4509d..db9d3c46f 100644
--- a/packages/init-stack/src/index.ts
+++ b/packages/init-stack/src/index.ts
@@ -99,7 +99,7 @@ program
.option("--on-question ", "How to handle interactive questions: ask | guess | error | default", "default")
.option("--no-warn-uncommitted-changes", "Don't warn about uncommitted changes in the Git repository")
.addHelpText('after', `
-For more information, please visit https://docs.hexclave.com/getting-started/setup`);
+For more information, please visit https://docs.hexclave.com/guides/getting-started/setup`);
program.parse();
@@ -446,7 +446,7 @@ ${colorize.bold`Next steps:`}
3. Import the Stack components in your app
4. Add authentication to your app
-For more information, please visit https://docs.hexclave.com/getting-started/setup
+For more information, please visit https://docs.hexclave.com/guides/getting-started/setup
`.trim());
if (!noBrowser) {
// Hexclave rebrand: emit the new query param name (hyphen delimiter preserved).
@@ -479,7 +479,7 @@ main().catch(async (err) => {
console.log(colorize.red`===============================================`);
console.error();
console.error(
- "If you need assistance, please try installing Stack manually as described in https://docs.hexclave.com/getting-started/setup or join our Discord where we're happy to help: https://discord.hexclave.com"
+ "If you need assistance, please try installing Stack manually as described in https://docs.hexclave.com/guides/getting-started/setup or join our Discord where we're happy to help: https://discord.hexclave.com"
);
if (!(err instanceof UserError)) {
console.error("");
diff --git a/packages/stack-cli/src/commands/exec.ts b/packages/stack-cli/src/commands/exec.ts
index 0ce8cd5f9..9922ccf50 100644
--- a/packages/stack-cli/src/commands/exec.ts
+++ b/packages/stack-cli/src/commands/exec.ts
@@ -53,7 +53,7 @@ export function registerExecCommand(program: Command) {
.description("Execute JavaScript with a pre-configured StackServerApp as `stackServerApp`. Pass --cloud-project-id for the cloud API, or --config-file for the development environment.")
.option("--cloud-project-id ", "Cloud project ID to run against (use --config-file instead for the development environment)")
.option("--config-file ", "Path to a development-environment stack.config.ts (use --cloud-project-id instead for the cloud API)")
- .addHelpText("after", "\nFor available API methods, see: https://docs.hexclave.com/docs/sdk")
+ .addHelpText("after", "\nFor available API methods, see: https://docs.hexclave.com/sdk/overview")
.action(async (javascript: string | undefined, opts: ExecTargetOpts) => {
if (javascript === undefined) {
throw new CliError("Missing JavaScript argument. Use `stack exec \"\"` or `stack exec --help`.");
diff --git a/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-index.ts b/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-index.ts
index 035b6b85b..77215bcff 100644
--- a/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-index.ts
+++ b/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-index.ts
@@ -26,6 +26,9 @@ function humanize(slug: string): string {
}
function docUrl(slug: string): string {
+ if (slug === "index") {
+ return DOCS_BASE;
+ }
const encoded = slug.split("/").map(encodeURIComponent).join("/");
return `${DOCS_BASE}/${encoded}`;
}
diff --git a/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts b/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts
index 66e0ac74c..e6f2f9880 100644
--- a/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts
+++ b/packages/stack-shared/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts
@@ -254,65 +254,7 @@ const docsJson = {
"/apps-sidebar-filter.js",
"/code-language-labels.js"
]
- },
- "redirects": [
- {
- "source": "/rest-api/overview",
- "destination": "/api/overview"
- },
- {
- "source": "/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/next/getting-started/setup",
- "destination": "/guides/getting-started/setup"
- },
- {
- "source": "/docs/sdk",
- "destination": "/sdk/overview"
- },
- {
- "source": "/docs/apps/analytics",
- "destination": "/guides/apps/analytics/overview"
- },
- {
- "source": "/docs/apps/api-keys",
- "destination": "/guides/apps/api-keys/overview"
- },
- {
- "source": "/docs/others/convex",
- "destination": "/guides/integrations/convex/overview"
- },
- {
- "source": "/docs/concepts/teams",
- "destination": "/guides/apps/teams/overview"
- },
- {
- "source": "/docs/concepts/custom-user-data",
- "destination": "/guides/getting-started/user-fundamentals#custom-metadata"
- },
- {
- "source": "/guides/going-further/user-metadata",
- "destination": "/guides/getting-started/user-fundamentals#custom-metadata"
- },
- {
- "source": "/others/js-client",
- "destination": "/sdk/objects/stack-app"
- },
- {
- "source": "/guides/going-further/stack-app",
- "destination": "/sdk/objects/stack-app"
- },
- {
- "source": "/guides/going-further/backend-integration",
- "destination": "/guides/getting-started/setup"
- }
- ]
+ }
} as const;
export default docsJson;
diff --git a/packages/stack-shared/src/known-errors.tsx b/packages/stack-shared/src/known-errors.tsx
index 6f8785efc..99e61d759 100644
--- a/packages/stack-shared/src/known-errors.tsx
+++ b/packages/stack-shared/src/known-errors.tsx
@@ -270,7 +270,7 @@ const AccessTypeWithoutProjectId = createKnownErrorConstructor(
deindent`
The x-hexclave-access-type header was '${accessType}', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
`,
{
request_type: accessType,
@@ -287,7 +287,7 @@ const AccessTypeRequired = createKnownErrorConstructor(
deindent`
You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)
- For more information, see the docs on REST API authentication: https://docs.hexclave.com/rest-api/overview#authentication
+ For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication
`,
] as const,
() => [] as const,