Skip to content

feat: new docs design#2505

Open
wassimoo wants to merge 236 commits intomasterfrom
una-redesign-imp2
Open

feat: new docs design#2505
wassimoo wants to merge 236 commits intomasterfrom
una-redesign-imp2

Conversation

@wassimoo
Copy link
Copy Markdown
Contributor

@wassimoo wassimoo commented Apr 10, 2026

Preview link: https://docs-7qgoc8ot0-ory.vercel.app/docs/welcome

Summary

This PR delivers a significant redesign of the Ory documentation site, introducing a new Homepage navigation experience, a new Quick Start page, restructured content architecture, and visual design improvements. It also establishes the foundational framework for separating documentation by deployment model: Ory Network, Ory OEL, and Ory OSS.

Changes

Homepage navigation

Replaced the previous homepage with a guided navigation experience that helps technical evaluators and developers orient quickly and find the right entry point for their use case. (Aligns better with our marketing site.)

Quick Start page

Added a new Quick Start page as a dedicated onboarding path for developers getting started with Ory for the first time.

Content restructuring

Reorganized existing documentation to support clearer content hierarchy. This restructuring is a prerequisite for the deployment-model separation work.

Product overview

Added new high-level product explanations with visual elements to demonstrate how each product fits within the context of an IAM system.

Visual design enhancements

Updated layout, typography, and component styling throughout the portal for improved readability and consistency. Introduced product color association.

Deployment model framework

Introduced the structural scaffolding to separate documentation by deployment context — Ory Network, Ory OEL, and Ory OSS — enabling product-specific content targeting in follow-on PRs.

What's not included

Full content separation by deployment model is out of scope for this PR. This change puts the framework in place; content migration and product-specific pages will follow.
Complete alignment on product names is out of the scope of this PR.

TESTING

New feature documentation (last few months)

Verify your new content appears in the redesigned navigation (docs/sidebar.ts). If it doesn't appear, add it to the /docs/sidebar.ts.

NOTE: There are several new sidebar files located within the /docs folder; if your content was added to the previous sidebar.ts file located in /src that file is no longer in use.

Content is complete

Verify that your product area contains the expected full set of content. The restructure may have affected navigation visibility for some pages.

Broken links

Spot-check links in your product area. Internal navigation files were significantly changed in this redesign.

Checklist

  • [ X] I have read the contributing guidelines and signed the CLA.
  • I have referenced an issue containing the design document if my change introduces a new feature.
  • [X ] I have read the security policy.
  • [X ] I confirm that this pull request does not address a security vulnerability.
    If this pull request addresses a security vulnerability,
    I confirm that I got approval (please contact security@ory.com) from the maintainers to push the changes.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added the necessary documentation within the code base (if appropriate).

Copy link
Copy Markdown
Member

@aeneasr aeneasr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have several hard failures for missing redirects, hard 404s, or potentially broken redirects because the H1 title changed of the redirected-to page.

url,expected_title,vercel_status,vercel_title
https://www.ory.com/docs/actions/live-events,Live event streams | Ory,404,
https://www.ory.com/docs/category/operations-reference,Operations | Ory,200,Scalability | Ory
https://www.ory.com/docs/console/change-owner,Change a project or workspace owner | Ory,404,
https://www.ory.com/docs/console/roles-and-permissions,Roles and permissions in the Ory Console | Ory,404,
https://www.ory.com/docs/console/usage-billing,Usage-based billing | Ory,404,
https://www.ory.com/docs/ecosystem/projects,Introduction | Ory,200,Introduction to Ory Open Source | Ory
https://www.ory.com/docs/ecosystem/sqa,Software quality assurance | Ory,200,Product telemetry and privacy | Ory
https://www.ory.com/docs/getting-started/ory-network-oauth2,Perform OAuth2 Authorization Code Grant and Client Credentials Grant | Ory,200,OAuth2 authorization code and client credentials grants | Ory
https://www.ory.com/docs/getting-started/overview,Quickstarts & Tutorials | Ory,200,Ory Documentation | Ory
https://www.ory.com/docs/guides/custom-domains,Set up custom domains | Ory,404,
https://www.ory.com/docs/guides/gitops,Manage Ory Network configuration in git | Ory,404,
https://www.ory.com/docs/guides/manage-project-via-api,Manage Ory Network projects through the API | Ory,404,
https://www.ory.com/docs/guides/oauth2-oidc,OAuth2 and OpenID Connect | Ory,404,
https://www.ory.com/docs/guides/operations,Operations | Ory,200,Scalability | Ory
https://www.ory.com/docs/guides/permissions/overview,Get started with Permissions in the Ory Network | Ory,200,Get started with Ory Keto | Ory
https://www.ory.com/docs/guides/workspaces,"Ory Network Workspaces, Projects, and Environments | Ory",404,
https://www.ory.com/docs/hydra/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/hydra/self-hosted/quickstart,Quickstart | Ory,200,Ory Hydra (OAuth2) Quickstart | Ory
https://www.ory.com/docs/identities,Introduction to Ory Kratos Identities | Ory,200,Introduction to Ory Kratos | Ory
https://www.ory.com/docs/intro,Ory Overview | Ory,200,Introduction to Ory Network | Ory
https://www.ory.com/docs/keto,Introduction to Ory Keto Permissions | Ory,200,Introduction to Ory Keto—Fine-grained Permissions | Ory
https://www.ory.com/docs/keto/examples/olymp-file-sharing,Basic: Olymp library | Ory,200,File sharing example | Ory
https://www.ory.com/docs/keto/quickstart,Quickstart: Cat Videos Example | Ory,200,Ory Keto Quickstart | Ory
https://www.ory.com/docs/keto/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/kratos/quickstart,Quickstart | Ory,200,Ory Kratos Quickstart | Ory
https://www.ory.com/docs/oathkeeper/guides/upgrade,Upgrade Ory Oathkeeper OSS | Ory,200,Upgrade Ory Oathkeeper OEL to a newer version | Ory
https://www.ory.com/docs/oathkeeper/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/oauth2-oidc,Introduction to Ory Hydra OAuth2 | Ory,200,Introduction to Ory Hydra—Delegated AuthZ & Federated AuthN | Ory
https://www.ory.com/docs/polis,Introduction to Ory Polis | Ory,200,Introduction to Ory Polis—Enterprise SSO AuthZ | Ory
https://www.ory.com/docs/polis/quickstart,Quickstart | Ory,200,Ory Polis Quickstart | Ory
https://www.ory.com/docs/security-compliance/compliance-and-certifications,Compliance and certifications | Ory,200,Security and compliance | Ory
https://www.ory.com/docs/self-hosted/oel/keto/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/kratos/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/oathkeeper/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/oauth2/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/welcome,Welcome to Ory! | Ory,200,Ory Documentation | Ory

id: file-sharing-example
title: "File sharing example"
sidebar_label: File sharing example
---
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

canonical missing?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No canonical needed as only version of this file.

```mdx-code-block
import DocCardList from '@theme/DocCardList';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
{/* import DocCardList from '@theme/DocCardList'; */}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks broken

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

```mdx-code-block
import DocCardList from '@theme/DocCardList';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
{/* import DocCardList from '@theme/DocCardList'; */}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks broken

Copy link
Copy Markdown
Contributor

@unatasha8 unatasha8 Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is not picking up the sections! https://docs-7qgoc8ot0-ory.vercel.app/docs/guides/oauth2-openid-connect. Need to fix

vercel.json Outdated
},
{
"source": "/docs/kratos/bring-your-own-ui/custom-ui-ory-elements",
"destination": "/docs/getting-started/integrate-auth/nextjs-app-router-quickstart",
"permanent": true
"permanent": false
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DONT change existing redirects!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Set it back to 'true'

},
{
"key": "Cache-Control",
"value": "max-age=86400, stale-while-revalidate=604800"
"value": "max-age=2592000, stale-while-revalidate=604800"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert your changes please

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about these, the were changed too:
{
"source": "/docs/(img|scripts)/(.*)",
"headers": [
{
"key": "Vercel-CDN-Cache-Control",
"value": "s-maxage=2592000, stale-while-revalidate=604800"
},
{
"key": "CDN-Cache-Control",
"value": "s-maxage=2592000, stale-while-revalidate=604800"
},
{
"key": "Cache-Control",
"value": "max-age=2592000, stale-while-revalidate=604800"
}
]
}

@@ -1256,15 +1501,15 @@
"headers": [
{
"key": "Vercel-CDN-Cache-Control",
"value": "s-maxage=86400, stale-while-revalidate=604800"
"value": "s-maxage=2592000, stale-while-revalidate=604800"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

sidebar_label: Scalability
---

import MyPartial from "@site/src/components/Shared/kratos/10_scalability.mdx"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Kratos Courier content is not applicable to Hydra.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is existing content that has a high level 'scalability' section that mentions Hydra. Apart from the Mail Courier sub-section, does the high level scalability sections still apply to Hydra?

@alnr
Copy link
Copy Markdown
Contributor

alnr commented Apr 13, 2026

This redesign mentions Polis in the context of SCIM and Enterprise SSO many times.

Polis only does SAML, nothing else.

REPLY: Please refer to Deepak, I'm 99.999999999% sure Polis support our SCIM functionality. See https://www.ory.com/polis

@alnr
Copy link
Copy Markdown
Contributor

alnr commented Apr 13, 2026

It is still very confusing for me to find concrete pages. Like for example Hydra Guides.

If I start on the OEL page (https://docs-7qgoc8ot0-ory.vercel.app/docs/oel/getting-started) and click Hydra in the sidebar, I have an option "Guides".

When I click that, I get a selection of "Running Hydra in Docker" and a couple others, but few details.

Whereas when I start on the Ory Network page (https://docs-7qgoc8ot0-ory.vercel.app/docs/network/getting-started) and click on Hydra in the Sidebar, I also see an option Guides. But that link leads me to a completely different set of Hydra Guides which actually explain how to use the product.

REPLY: The focus of this round is to create a separate framework for the different deployments. That is why Network has far more content. We have yet to write stuff for OEL. We reorganized the content and will start creating (or reusing/sharing) content where appropriate.

@hperl
Copy link
Copy Markdown
Collaborator

hperl commented Apr 13, 2026

Method: I (with Claude) diffed every kratos/* and identities/* doc id referenced by the old src/sidebar.ts on master against the new sidebar files (sidebars-network.ts, sidebars-oel.ts, sidebars-oss.ts, etc.). I also scanned all 200 pages under docs/kratos/ and docs/identities/ for broken internal file links.

Pages dropped from navigation

Doc ids present in the old src/sidebar.ts on master, absent from every new sidebar file in this PR:

# Doc id File Notes
1 console/single-sign-on docs/console/single-sign-on.mdx Ory Console SSO + break-glass recovery (#2471, #2491). No replacement. Clear regression. REPLY: Added feature /docs/console/single-sign-on
2 kratos/self-service/flows/CAPTCHA docs/kratos/self-service/flows/captcha.mdx Recently moved by the team in commit 4b3aa00c ("docs: moved and updated CAPTCHA challenge doc"). File still exists — just orphaned. Regression. REPLY: Added it back to Network sidebar nav /docs/kratos/self-service/flows/CAPTCHA
3 kratos/guides/e2e-integration-tests docs/kratos/guides/e2e-integration-tests.mdx E2E/integration test guide. No replacement found. Regression. REPLY: It is replaced and redirects to /docs/oss/guidelines/e2e-integration-tests
4 identities/index docs/identities/index.mdx "Introduction to Ory Kratos Identities" landing page. No replacement found. Regression. REPLY: It is replaced and redirects to /docs/network/kratos/intro
5 identities/get-started/index docs/identities/get-started/index.mdx "Identity management guide — Day 1 essentials". Was a category link in old sidebar; new sidebar uses identities/get-started/setup as first item and drops this. Regression. REPLY: Intentionally removed. Provided no concrete instructions.
6 kratos/mfa/overview docs/kratos/mfa/01_overview.mdx Likely intentionally superseded by network/kratos/mfa-overview (referenced as category link at sidebars-network.ts:302). Old file is now orphaned content — delete or redirect. REPLY: Correct, will delete later to avoid too many redirects at once.
7 kratos/manage-identities/overview docs/kratos/manage-identities/01_overview.mdx Likely intentionally superseded by network/kratos/identity_model (referenced at sidebars-network.ts:148). Old file is orphaned — delete or redirect. REPLY: Correct, will delete later to avoid too many redirects at once.

Pages correctly present in sidebars-network.ts

All of these were in the old sidebar and are still wired up:

  • Social sign-in providers: generic, ory, google, facebook, microsoft, github, apple, gitlab, auth0, salesforce, slack, spotify, discord, twitch, netid, yandex, vk, dingtalk, lark, patreon, linkedin, x-twitter, line, amazon, uaepass
  • Social sign-in concepts: data-mapping, account-linking, get-tokens, native-apps, oidc-pkce, fedcm, redirect-url
  • Flows: registration, login, logout, recovery, verification, settings, two-step-registration, identifier-first-authentication, code-submission-limit, login-hint
  • MFA: lookup-secrets, totp, webauthn-fido-yubikey, mfa-via-sms, step-up-authentication
  • Identity management: create/import/export, invite-users, account-recovery, identity-state, external-id, customize-identity-schema, managing-users-identities-metadata, identity-schema-selection
  • SCIM: ms-entra, okta, google-workspace
  • Passwordless: one-time-code, passkeys, passkeys-mobile, passwordless
  • Bring-your-own UI: custom-ui-overview, configure-ory-to-use-your-ui, custom-vs-built-in-ui, custom-ui-basic-integration, custom-ui-advanced-integration
  • Other: organizations, emails-sms, hooks, actions, concepts/redirects, session-management, personal-access-token

Other findings

Broken internal links

I ran a full resolver over every kratos/* and identities/* file: zero broken relative file links.

Two remaining cross-references target orphaned pages (they still resolve at build time, but land on pages with no navigation context):

  • docs/hydra/self-hosted/deploy-hydra-example.mdx:480../../identities/index.mdx REPLY: Now links to /docs/oel/kratos/intro
  • docs/kratos/organizations/organizations.mdx:421/docs/console/single-sign-on#break-glass-account-recovery REPLY: Link works now once 'console/single-sign-on' was added

Both self-resolve once regressions 1 and 4 are fixed.

Incoming references to superseded pages (#6, #7)

No .mdx file in the repo links to kratos/mfa/overview or kratos/manage-identities/overview. If the supersession is intentional, the old files should be removed and redirects added to avoid dead URLs for existing inbound links.
REPLY: Correct, will delete later to avoid too many redirects at once

Accidental files

sidebars-oel copy.ts and sidebars-oss copy.ts were added in commit cce4f15a and are not imported anywhere — they look like macOS Finder-style duplicates committed by accident. Safe to delete before merge. REPLY: Agreed, these were temporary backups and are deleted now.

@unatasha8
Copy link
Copy Markdown
Contributor

unatasha8 commented Apr 14, 2026

We have several hard failures for missing redirects, hard 404s, or potentially broken redirects because the H1 title changed of the redirected-to page.

url,expected_title,vercel_status,vercel_title
https://www.ory.com/docs/actions/live-events,Live event streams | Ory,404,
https://www.ory.com/docs/category/operations-reference,Operations | Ory,200,Scalability | Ory
https://www.ory.com/docs/console/change-owner,Change a project or workspace owner | Ory,404,
https://www.ory.com/docs/console/roles-and-permissions,Roles and permissions in the Ory Console | Ory,404,
https://www.ory.com/docs/console/usage-billing,Usage-based billing | Ory,404,
https://www.ory.com/docs/ecosystem/projects,Introduction | Ory,200,Introduction to Ory Open Source | Ory
https://www.ory.com/docs/ecosystem/sqa,Software quality assurance | Ory,200,Product telemetry and privacy | Ory
https://www.ory.com/docs/getting-started/ory-network-oauth2,Perform OAuth2 Authorization Code Grant and Client Credentials Grant | Ory,200,OAuth2 authorization code and client credentials grants | Ory
https://www.ory.com/docs/getting-started/overview,Quickstarts & Tutorials | Ory,200,Ory Documentation | Ory
https://www.ory.com/docs/guides/custom-domains,Set up custom domains | Ory,404,
https://www.ory.com/docs/guides/gitops,Manage Ory Network configuration in git | Ory,404,
https://www.ory.com/docs/guides/manage-project-via-api,Manage Ory Network projects through the API | Ory,404,
https://www.ory.com/docs/guides/oauth2-oidc,OAuth2 and OpenID Connect | Ory,404,
https://www.ory.com/docs/guides/operations,Operations | Ory,200,Scalability | Ory
https://www.ory.com/docs/guides/permissions/overview,Get started with Permissions in the Ory Network | Ory,200,Get started with Ory Keto | Ory
https://www.ory.com/docs/guides/workspaces,"Ory Network Workspaces, Projects, and Environments | Ory",404,
https://www.ory.com/docs/hydra/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/hydra/self-hosted/quickstart,Quickstart | Ory,200,Ory Hydra (OAuth2) Quickstart | Ory
https://www.ory.com/docs/identities,Introduction to Ory Kratos Identities | Ory,200,Introduction to Ory Kratos | Ory
https://www.ory.com/docs/intro,Ory Overview | Ory,200,Introduction to Ory Network | Ory
https://www.ory.com/docs/keto,Introduction to Ory Keto Permissions | Ory,200,Introduction to Ory Keto—Fine-grained Permissions | Ory
https://www.ory.com/docs/keto/examples/olymp-file-sharing,Basic: Olymp library | Ory,200,File sharing example | Ory
https://www.ory.com/docs/keto/quickstart,Quickstart: Cat Videos Example | Ory,200,Ory Keto Quickstart | Ory
https://www.ory.com/docs/keto/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/kratos/quickstart,Quickstart | Ory,200,Ory Kratos Quickstart | Ory
https://www.ory.com/docs/oathkeeper/guides/upgrade,Upgrade Ory Oathkeeper OSS | Ory,200,Upgrade Ory Oathkeeper OEL to a newer version | Ory
https://www.ory.com/docs/oathkeeper/reference/configuration,Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/oauth2-oidc,Introduction to Ory Hydra OAuth2 | Ory,200,Introduction to Ory Hydra—Delegated AuthZ & Federated AuthN | Ory
https://www.ory.com/docs/polis,Introduction to Ory Polis | Ory,200,Introduction to Ory Polis—Enterprise SSO AuthZ | Ory
https://www.ory.com/docs/polis/quickstart,Quickstart | Ory,200,Ory Polis Quickstart | Ory
https://www.ory.com/docs/security-compliance/compliance-and-certifications,Compliance and certifications | Ory,200,Security and compliance | Ory
https://www.ory.com/docs/self-hosted/oel/keto/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/kratos/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/oathkeeper/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/self-hosted/oel/oauth2/configuration,OEL Configuration | Ory,200,Configuration file | Ory
https://www.ory.com/docs/welcome,Welcome to Ory! | Ory,200,Ory Documentation | Ory

All of these have redirects in the vercel.json file. What are you doing to generate these as errors/404s etc?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.