diff --git a/fern/docs.yml b/fern/docs.yml
index 257e94a55..71736f061 100644
--- a/fern/docs.yml
+++ b/fern/docs.yml
@@ -638,12 +638,12 @@ redirects:
- source: /learn/fern-definition/:slug*
destination: /learn/api-definitions/ferndef/:slug*
permanent: true
-
+
# Redirect old others.mdx extension pages to overview pages
- source: /learn/api-definitions/openapi/extensions/others
destination: /learn/api-definitions/openapi/extensions/overview
permanent: true
- - source: /learn/api-definitions/asyncapi/extensions/others
+ - source: /learn/api-definitions/asyncapi/extensions/others
destination: /learn/api-definitions/asyncapi/extensions/overview
permanent: true
- source: /learn/api-definitions/openrpc/extensions/others
@@ -652,3 +652,162 @@ redirects:
- source: /learn/api-definitions/grpc/extensions/:slug*
destination: /learn/api-definitions/overview/overrides#definition-specific-extensions
permanent: true
+
+ # ============================================================================
+ # ADDITIONAL /LEARN/* REDIRECTS FROM CRAWLED URLS FROM GOOGLE SEARCH CONSOLE
+ # ============================================================================
+
+ # SDK specific redirects
+ - source: /learn/sdks/generators/java/publishing-to-maven-central
+ destination: /learn/sdks/generators/java/publishing
+ permanent: true
+ - source: /learn/sdks/generators/php/publishing-to-packagist
+ destination: /learn/sdks/generators/php/publishing
+ permanent: true
+ - source: /learn/sdks/generators/python/publishing-to-py-pi
+ destination: /learn/sdks/generators/python/publishing
+ permanent: true
+ - source: /learn/sdks/generators/typescript/publishing-to-npm
+ destination: /learn/sdks/generators/typescript/publishing
+ permanent: true
+ - source: /learn/sdks/generators/java/adding-custom-code
+ destination: /learn/sdks/generators/java/custom-code
+ permanent: true
+ - source: /learn/sdks/reference/configuration
+ destination: /learn/sdks/reference/generators-yml
+ permanent: true
+ - source: /learn/sdks/client
+ destination: /learn/sdks/overview/introduction
+ permanent: true
+ - source: /learn/sdks/src
+ destination: /learn/sdks/overview/project-structure
+ permanent: true
+ - source: /learn/sdks/alternatives/speakeasy
+ destination: /learn/sdks/overview/introduction
+ permanent: true
+
+ # Docs specific redirects
+ - source: /learn/docs/customization/project-structure
+ destination: /learn/docs/getting-started/project-structure
+ permanent: true
+ - source: /learn/docs/alternatives/mintlify
+ destination: /learn/docs/getting-started/overview
+ permanent: true
+ - source: /learn/docs/api-references/api-explorer/advanced-configuration
+ destination: /learn/docs/api-references/api-explorer/overview
+ permanent: true
+ - source: /learn/docs/enterprise/self-hosted
+ destination: /learn/docs/self-hosted/overview
+ permanent: true
+ - source: /learn/docs/content/visual-editor-beta
+ destination: /learn/docs/writing-content/fern-editor
+ permanent: true
+ - source: /learn/docs/content/visual-editor
+ destination: /learn/docs/writing-content/fern-editor
+ permanent: true
+ - source: /learn/docs/content
+ destination: /learn/docs/writing-content/markdown
+ permanent: true
+ - source: /learn/docs/config/overview
+ destination: /learn/docs/configuration/what-is-docs-yml
+ permanent: true
+ - source: /learn/docs/llms.txt8
+ destination: /learn/docs/seo/llms-txt
+ permanent: true
+ - source: /learn/docs/path/to/asset.pdf
+ destination: /learn/docs/getting-started/overview
+ permanent: true
+ - source: /learn/docs/components/tabs
+ destination: /learn/docs/writing-content/components/tabs
+ permanent: true
+ - source: /learn/docs/components/CustomCard
+ destination: /learn/docs/writing-content/custom-react-components
+ permanent: true
+
+ # API Definition redirects
+ - source: /learn/api-definition/openapi/webhooks
+ destination: /learn/api-definitions/openapi/endpoints/webhooks
+ permanent: true
+ - source: /learn/api-definition/introduction
+ destination: /learn/api-definitions/overview/what-is-an-api-definition
+ permanent: true
+ - source: /learn/api-definition/openapi/streaming-and-sse
+ destination: /learn/api-definitions/openapi/endpoints/streaming-and-sse
+ permanent: true
+ - source: /learn/api-definition/openapi/audiences
+ destination: /learn/api-definitions/openapi/audiences
+ permanent: true
+ - source: /learn/api-definition/openapi/examples
+ destination: /learn/api-definitions/openapi/examples
+ permanent: true
+ - source: /learn/api-definition/fern/comparison-with-open-api
+ destination: /learn/api-definitions/ferndef/overview
+ permanent: true
+ - source: /learn/api-definitions/openapi/openapi.yml
+ destination: /learn/api-definitions/openapi/overview
+ permanent: true
+ - source: /learn/api-definitions/ferndef/web-sockets
+ destination: /learn/api-definitions/ferndef/websockets
+ permanent: true
+ - source: /learn/api-definitions/grpc/extensions/server-name
+ destination: /learn/api-definitions/grpc/servers
+ permanent: true
+ - source: /learn/api-definitions/grpc/extensions/timeout
+ destination: /learn/api-definitions/grpc/overview
+ permanent: true
+ - source: /learn/api-definitions/asyncapi/extensions/server-name
+ destination: /learn/api-definitions/asyncapi/extensions/server-names
+ permanent: true
+ - source: /learn/api-definitions/openrpc/extensions/sdk-group-name
+ destination: /learn/api-definitions/openrpc/extensions/sdk-group-names
+ permanent: true
+ - source: /learn/api-definitions/openrpc/extensions/examples
+ destination: /learn/api-definitions/openrpc/examples
+ permanent: true
+ - source: /learn/api-definitions/openrpc/extensions/retry
+ destination: /learn/api-definitions/openrpc/extensions/retry-behavior
+ permanent: true
+ - source: /learn/overview/define-your-api/openapi/extensions
+ destination: /learn/api-definitions/openapi/extensions/overview
+ permanent: true
+
+ # CLI & API Reference redirects
+ - source: /learn/cli-api/cli-reference
+ destination: /learn/cli-api-reference/cli-reference/overview
+ permanent: true
+ - source: /learn/cli-api/api-reference/tokens/generate
+ destination: /learn/cli-api-reference/api-reference/tokens/generate
+ permanent: true
+ - source: /learn/cli-api/api-reference/tokens
+ destination: /learn/cli-api-reference/api-reference/tokens/generate
+ permanent: true
+ - source: /learn/cli-api/api-reference/overview
+ destination: /learn/cli-api-reference/api-reference/overview
+ permanent: true
+ - source: /learn/api/api-reference/docs/generate
+ destination: /learn/cli-api-reference/api-reference/overview
+ permanent: true
+ - source: /learn/api-reference/sdk/generate/~explorer
+ destination: /learn/cli-api-reference/api-reference/sdk/generate
+ permanent: true
+
+ # Ask Fern redirects
+ - source: /learn/ask-fern/features/custom-fa-qs
+ destination: /learn/ask-fern/features/citations
+ permanent: true
+ - source: /learn/ai-search/getting-started/ai-search-customer-showcase
+ destination: https://buildwithfern.com/showcase#ask-fern-customers
+ permanent: true
+
+ # V2 legacy paths (old version of docs)
+ - source: /learn/v2/:slug*
+ destination: /learn/:slug*
+ permanent: true
+
+ # Misc legacy learn paths
+ - source: /learn/snippets/example.ts
+ destination: /learn/cli-api-reference/api-reference/snippets/load
+ permanent: true
+ - source: /learn/cli-reference/path/to/file.pdf
+ destination: /learn/cli-api-reference/cli-reference/overview
+ permanent: true
diff --git a/fern/products/api-def/openapi-pages/examples.mdx b/fern/products/api-def/openapi-pages/examples.mdx
deleted file mode 100644
index e4a77240e..000000000
--- a/fern/products/api-def/openapi-pages/examples.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: How to use examples in OpenAPI
-description: Use the examples feature of OpenAPI to add example values in your API definition. Fern then uses your examples when generating SDKs and documentation.
----
-
-Using examples in OpenAPI shows API consumers what requests and responses look like. They can be provided for request bodies, response bodies, and individual parameters.
-
-## Inline examples
-
-Examples can be placed directly within the operation definition under `paths`. Here's an example:
-
-```yaml
-paths:
- /pet:
- post:
- summary: Add a new pet to the store
- operationId: addPet
- responses:
- '200':
- description: A Pet object
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Pet'
- examples:
- PetExample:
- summary: This is an example of a Pet
- value:
- name: Markley
- id: 44
-```
-
-## Reusable examples
-
-For more general examples that apply to multiple parts of the API, you can define them under the `components/examples` section. These can be referenced elsewhere in the documentation.
-
-```yaml
-components:
- examples:
- PetExample:
- summary: Example of a Pet object
- value:
- name: Markley
- id: 44
-
-paths:
- /pet:
- post:
- summary: Add a new pet to the store
- operationId: addPet
- responses:
- '200':
- description: Successful operation
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Pet'
- examples:
- PetExample:
- $ref: '#/components/examples/PetExample'
-```
-
-## How examples are used in Fern SDKs
-
-Fern SDKs use examples from your OpenAPI document to generate comments that show up in your IDE. For example, in a Node.js SDK:
-
-
-```ts
-
-import * as Petstore from "../../..";
-
-/**
- * @example
- * {
- * name: "Markley",
- * id: "44"
- * }
- */
-```
-
-
-Here's an [example in GitHub](https://github.com/FlatFilers/flatfile-node/blob/ab955a0a337c40ea00755e24df08f8c9a146c39c/src/api/resources/documents/types/DocumentResponse.ts#L8-L27) from Flatfile's Node.js SDK.
-
-## How examples are used in Fern Docs
-
-In the request and response code snippets, you'll see the example values used.
-
-
-
-
-
-If you generate SDKs with Fern, the code examples for each language will also be populated with the example values. [Check out Flatfile's Docs to see this in action](https://reference.flatfile.com/api-reference/documents/create). Change the language toggle to see the examples in different languages.
-
diff --git a/fern/products/ask-fern/ask-fern.yml b/fern/products/ask-fern/ask-fern.yml
index 7728a0efe..a52625277 100644
--- a/fern/products/ask-fern/ask-fern.yml
+++ b/fern/products/ask-fern/ask-fern.yml
@@ -25,6 +25,8 @@ navigation:
path: ./pages/features/insights.mdx
- page: Evaluation
path: ./pages/features/evals.mdx
+ - page: Role-based access control
+ path: ./pages/features/rbac.mdx
- page: Slack app
path: ./pages/features/slack-app.mdx
- api: API reference
diff --git a/fern/products/cli-api-reference/pages/get-started.mdx b/fern/products/cli-api-reference/pages/get-started.mdx
deleted file mode 100644
index 012428c13..000000000
--- a/fern/products/cli-api-reference/pages/get-started.mdx
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: 'Overview'
-subtitle: Manage and configure your Fern projects, all from the command line.
-description: 'Overview of the Fern CLI including usage, installation, and CI/CD environments'
----
-
-## Prerequisites
-
-Before getting started with Fern CLI, ensure you have [Node.js](https://nodejs.org/) version 18 or higher installed.
-
-You can verify your Node.js version by running:
-
-```bash
-node --version
-```
-
-
-## Installing Fern CLI
-
-
-```bash
-npm install -g fern-api
-```
-
-
-
-```bash
-fern -v
-```
-
-
-## Common Workflows
-
-
-
- 1. Initialize a new docs project:
- ```bash
- fern init --docs
- ```
-
- 2. Validate your API specification and documentation:
- ```bash
- fern check
- ```
-
- 3. Preview locally while making changes:
- ```bash
- fern docs dev
- ```
-
- 4. When ready to preview or publish:
- ```bash
- fern generate --docs --preview # Generate a shareable preview link
- fern generate --docs # Publish to production
- ```
-
-
-
- 1. Initialize a new SDK project:
- ```bash
- fern init
- ```
-
- 2. Configure your generators in [`generators.yml`](/learn/api-definition/introduction/what-is-the-fern-folder#generatorsyml)
-
- 3. Validate your API specification:
- ```bash
- fern check
- ```
-
- 4. Preview SDKs locally:
- ```bash
- fern generate --preview # Preview the default SDK group
- fern generate --group python-sdk --preview # Preview a specific SDK group
- ```
-
- The preview SDKs will be generated into the `.preview/` folder.
-
-
- The "default SDK group" refers to the group marked as default in your `generators.yml`. Learn more about [default groups](/learn/generate-sdks/configuration#default-group).
-
-
- 5. Generate SDKs:
- ```bash
- fern generate --group python-sdk # Generate a specific SDK group
- fern generate # Generate the default SDK group
- ```
-
-
-
- 1. Initialize a project from your OpenAPI spec:
- ```bash
- # From a local file
- fern init --openapi ./path/to/openapi.yml
-
- # From a URL
- fern init --openapi https://link.buildwithfern.com/petstore-openapi
- ```
-
- 2. Validate your API specification:
- ```bash
- fern check
- ```
-
- 3. Review the generated Fern Definition files in the `fern/` directory
-
- 4. Generate SDKs as normal:
- ```bash
- fern generate --preview # Preview changes locally
- fern generate # Publish to production
- ```
-
-
-
\ No newline at end of file
diff --git a/fern/products/cli-api-reference/pages/snippets-api-intro.mdx b/fern/products/cli-api-reference/pages/snippets-api-intro.mdx
deleted file mode 100644
index 8d5128573..000000000
--- a/fern/products/cli-api-reference/pages/snippets-api-intro.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Introduction to the Snippets API
-description: Use the Snippets API to automatically populate sample SDK code snippets for your documentation, from examples in your API definition. Paid feature.
----
-
-With Fern's Snippets API, you can automatically populate sample SDK code snippets for your documentation, generated from examples in your API definition. For more information, see [SDK snippets](/learn/docs/api-references/sdk-snippets).
-
-
- Note: Access to the Snippets API is available with our `Starter` plan or higher. Want to get set up? [Email us](mailto:sales@buildwithfern.com).
-
-
-## API stability
-
-Some of the documented endpoints are undergoing active development. Use the and
-tags to differentiate between those that are stable and those that are not. GA stands for generally available.
-
-## Official API clients
-
-Fern maintains official API clients for Node.js and Python. We recommend using these clients to interact with all stable endpoints. You can find them here:
-
-
-
-
-
-
-## Endpoint request and response snippets
-
-Looking for information on generating API endpoint request and response snippets? See our documentation on [Endpoint Snippets](/learn/docs/content/components/endpoint-snippets).
\ No newline at end of file
diff --git a/fern/products/docs/pages/authentication/api-key-injection.mdx b/fern/products/docs/pages/authentication/api-key-injection.mdx
deleted file mode 100644
index a47915e1c..000000000
--- a/fern/products/docs/pages/authentication/api-key-injection.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: API Key Injection
----
-
-How to configure API key injection for authenticated documentation access.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/docs/getting-started/overview).
\ No newline at end of file
diff --git a/fern/products/docs/pages/component-library/overview.mdx b/fern/products/docs/pages/component-library/overview.mdx
deleted file mode 100644
index e10915ac8..000000000
--- a/fern/products/docs/pages/component-library/overview.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Component Library
-description: Overview of the available components in the library.
----
-
-Welcome to the Component Library! Here you can find documentation and examples for all the reusable components available in this project.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/docs/getting-started/overview).
\ No newline at end of file
diff --git a/fern/products/docs/pages/getting-started/customer-showcase.mdx b/fern/products/docs/pages/getting-started/customer-showcase.mdx
deleted file mode 100644
index 9975a9b35..000000000
--- a/fern/products/docs/pages/getting-started/customer-showcase.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Docs Customer Showcase
----
-
-
-
-Fern Docs is a tool for creating beautiful, customizable developer documentation. Achieve best-in-class docs with a modern and branded look and feel, powered by MDX and your API specification, and integrated seamlessly with CI/CD. Below are some companies building with Fern to elevate their developer experience.
-
-
----
-##

Webflow
-
Auto-populated API key
-
-Webflow uses Fern's API Explorer to auto-populate API keys using their custom authentication flow, making it easy for developers to authenticate once and then focus on developing.
-
-Check out Webflow's API Explorer here:
-
-
-
- View the Webflow API Explorer
-
-
-
----
-##

Cohere
-
-SSE
-Landing page
-
-
-Cohere uses Fern's out-of-the-box components to create a landing page that orients users and aids in developer experience. Their API Explorer further aids in that developer experience, allowing users to test out endpoints in their API, including server-sent events.
-
-Check out Cohere's documentation here:
-
-
- View Cohere's landing page
-
-
- View the Cohere API Reference
-
-
-
----
-##

Cartesia
-
-WebSockets
-Custom styling
-
-
-Cartesia leverages Fern's custom styling capabilities to create modern and branded documentation. They pair these aesthetics with an API Explorer that supports WebSockets, allowing developers to test their Text-To-Speech streaming in real-time.
-
-Check out Cartesia's documentation here:
-
-
- View Cartesia's documentation overview
-
-
- View the Cartesia API Reference
-
-
-
----
-##

Vellum
-
SDK documentation
-
-Vellum takes advantage of Fern's adaptable layout and styling capabilities to create custom documentation for their UI SDK, in addition to using Fern's auto-generated API reference for their client libraries (which are generated by Fern, as well).
-
-Check out their references here:
-
-
- View Vellum's SDK documentation
-
-
- View Vellum's API reference
-
-
-
----
-##

Internationalization
-
-Multi-language
-Translation
-
-
-CodeCombat uses Fern's internationalization features to serve their global developer community. They offer documentation in Mandarin Chinese, demonstrating how Fern's built-in language switching and translation features help companies reach developers worldwide while maintaining a consistent experience.
-
-Check out their multi-language documentation:
-
-
- View CodeCombat's documentation
-
-
-
----
-
-
-Ready to build best-in-class documentation? [Get started with Fern today](https://buildwithfern.com/learn/docs/getting-started/quickstart).
\ No newline at end of file
diff --git a/fern/products/docs/pages/getting-started/migrate-from-existing-site.mdx b/fern/products/docs/pages/getting-started/migrate-from-existing-site.mdx
deleted file mode 100644
index 4cfee5033..000000000
--- a/fern/products/docs/pages/getting-started/migrate-from-existing-site.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Migrate from an Existing Site
----
-
-Step-by-step guide for migrating your documentation from an existing platform or static site.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/docs/getting-started/overview).
\ No newline at end of file
diff --git a/fern/products/docs/pages/reference/frontmatter.mdx b/fern/products/docs/pages/reference/frontmatter.mdx
deleted file mode 100644
index 6658a8812..000000000
--- a/fern/products/docs/pages/reference/frontmatter.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Frontmatter Reference
----
-
-Complete reference guide for frontmatter options and configuration in your documentation.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/docs/getting-started/overview).
\ No newline at end of file
diff --git a/fern/products/docs/pages/reference/what-is-docs-yml.mdx b/fern/products/docs/pages/reference/what-is-docs-yml.mdx
deleted file mode 100644
index 946224d6b..000000000
--- a/fern/products/docs/pages/reference/what-is-docs-yml.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: What is docs.yml?
----
-
-Understanding the docs.yml configuration file and how it controls your documentation structure.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/docs/getting-started/overview).
\ No newline at end of file
diff --git a/fern/products/sdks/guides/configure-auth-schemes.mdx b/fern/products/sdks/guides/configure-auth-schemes.mdx
deleted file mode 100644
index 567f6691a..000000000
--- a/fern/products/sdks/guides/configure-auth-schemes.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Configure Auth Schemes
-description: Guide to configuring authentication schemes in your SDKs.
----
-
-Learn how to configure different authentication schemes for your SDKs.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/sdks/reference/configuration).
diff --git a/fern/products/sdks/guides/configure-github-publishing.mdx b/fern/products/sdks/guides/configure-github-publishing.mdx
deleted file mode 100644
index d71fb7288..000000000
--- a/fern/products/sdks/guides/configure-github-publishing.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Configure GitHub Publishing
-description: Guide to configuring GitHub publishing for your SDKs.
----
-
-Learn how to set up GitHub publishing for your SDKs to automate releases and versioning.
-
-This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn/sdks/reference/configuration).
\ No newline at end of file
diff --git a/fern/products/sdks/sdk-customer-showcase.mdx b/fern/products/sdks/sdk-customer-showcase.mdx
deleted file mode 100644
index f451a90ff..000000000
--- a/fern/products/sdks/sdk-customer-showcase.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: SDK Customer Showcase
-description: See how customers are using Fern SDKs.
----
-
-Explore real-world examples and success stories from customers using Fern SDKs in their projects.
-
-This page is a WIP, please refer to our [customer showcase](https://www.buildwithfern.com/showcase).
\ No newline at end of file