Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions fern/products/docs/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,13 @@ navigation:
- page: Stainless vs. Fern
path: ./pages/resources/stainless-comparison.mdx
slug: stainless-comparison
- section: Sandbox
collapsed: true
hidden: true
contents:
- page: Test page sandbox
path: ./pages/sandbox/test-page.mdx
slug: test-page
- api: Public API
paginated: false
api-name: mcp-tools
Expand Down
140 changes: 140 additions & 0 deletions fern/products/docs/pages/sandbox/test-page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
title: Test page sandbox
subtitle: A non-public sandbox page used for exercising components and the preview pipeline.
description: A non-public sandbox page used for exercising Fern components and the preview pipeline.
hide-toc: false
hide-feedback: true
hide-nav-links: true
---

This page is an internal sandbox. It exists to exercise a representative slice of Fern Docs components in a single place — useful for verifying preview deployments, theming changes, and component rendering without editing a real customer-facing page.

<Note>
This page is hidden from the sidebar. It is reachable by direct URL only and is not linked from public navigation.
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.

🚫 [vale] reported by reviewdog 🐶
[Microsoft.Contractions] Use 'it's' instead of 'It is'.

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.

🚫 [vale] reported by reviewdog 🐶
[Microsoft.Contractions] Use 'isn't' instead of 'is not'.

</Note>

## Callouts

<Info>An informational callout for drawing attention to context.</Info>
<Warning>A warning callout for non-blocking risks the reader should consider.</Warning>
<Tip>A tip callout for non-essential suggestions that improve outcomes.</Tip>
<Success>A success callout for confirming a positive outcome.</Success>
<Error>An error callout for surfacing failure conditions.</Error>

## Code blocks

A multi-language code block group demonstrates syntax highlighting and the language switcher:

<CodeBlocks>
```bash title="curl"
curl -X POST https://api.example.com/v1/things \
-H "Authorization: Bearer $TOKEN" \
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.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'TOKEN' has no definition.

-H "Content-Type: application/json" \
-d '{"name": "widget", "quantity": 3}'
```

```typescript title="TypeScript"
import { ExampleClient } from "@example/sdk";

const client = new ExampleClient({ token: process.env.TOKEN });

const thing = await client.things.create({
name: "widget",
quantity: 3,
});
```

```python title="Python"
from example import ExampleClient

client = ExampleClient(token=os.environ["TOKEN"])

thing = client.things.create(name="widget", quantity=3)
```
</CodeBlocks>

## Tabs

<Tabs>
<Tab title="Overview">
Tabs let you present the same concept from multiple angles — for example, audience (beginner vs. advanced), runtime (Node vs. Browser), or workflow (CLI vs. UI).
</Tab>
<Tab title="When to use">
Use tabs when content is logically parallel and a reader is likely to want only one variant at a time. Avoid tabs for sequential steps.
</Tab>
<Tab title="When not to use">
Avoid tabs for content that should be discoverable via search or skimming. Hidden tabs are easy to miss.
</Tab>
</Tabs>

## Accordion

<AccordionGroup>
<Accordion title="Why does this page exist?">
To validate component rendering, preview deployments, and CI without touching customer-facing pages.
</Accordion>
<Accordion title="Is it indexed?">
No. It is marked `hidden: true` in navigation and is not linked from the sidebar.
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.

🚫 [vale] reported by reviewdog 🐶
[Microsoft.Contractions] Use 'it's' instead of 'It is'.

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.

🚫 [vale] reported by reviewdog 🐶
[Microsoft.Contractions] Use 'isn't' instead of 'is not'.

</Accordion>
<Accordion title="Can it be deleted?">
Yes. This page has no dependencies and can be removed once the change it was created for has shipped.
</Accordion>
</AccordionGroup>

## Cards

<CardGroup cols={2}>
<Card title="Configuration overview" icon="fa-duotone fa-gear" href="/learn/docs/configuration/overview">
Site- and page-level configuration for a Fern Docs project.
</Card>
<Card title="Components overview" icon="fa-duotone fa-book" href="/learn/docs/writing-content/components/overview">
The full catalog of built-in components.
</Card>
<Card title="Markdown basics" icon="fa-duotone fa-pen" href="/learn/docs/writing-content/markdown-basics">
Reference for the Markdown and MDX features Fern supports.
</Card>
<Card title="Project structure" icon="fa-duotone fa-folder-tree" href="/learn/docs/getting-started/project-structure">
How files and folders are laid out in a Fern Docs project.
</Card>
</CardGroup>

## Tables

| Component | Purpose | Common props |
| --------------- | ------------------------------------------- | ----------------------------- |
| `<Callout>` | Highlight important context | `intent`, `icon`, `title` |
| `<CodeBlocks>` | Show the same snippet in multiple languages | `title` (per child) |
| `<Tabs>` | Parallel variants of one concept | `title` (per child) |
| `<Accordion>` | Progressive disclosure | `title` |
| `<Card>` | Linked navigation tile | `title`, `icon`, `href` |

## Parameter fields

<ParamField path="example_id" type="string" required={true}>
A unique identifier used to look up the example.
</ParamField>

<ParamField path="limit" type="integer" required={false} default="20">
The maximum number of items to return in a single response.
</ParamField>

<ParamField path="include_archived" type="boolean" required={false} default="false">
Whether to include archived items in the response.
</ParamField>

## Steps

<Steps>
### Install the SDK
Add the SDK to your project with your package manager of choice.

### Configure credentials
Set the `TOKEN` environment variable to a valid API token.

### Make a request
Call the API and inspect the response. If you receive a 401, double-check the token value and scope.
</Steps>

<llms-only>
This is a non-production sandbox page. Agents inspecting the docs corpus can safely ignore it — it does not document any customer-facing behavior.
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.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Adverbs] Remove 'safely' if it's not important to the meaning of the statement.

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.

🚫 [vale] reported by reviewdog 🐶
[Microsoft.Contractions] Use 'doesn't' instead of 'does not'.

</llms-only>
Loading