Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
437223e
feat: adding homepage designs
Jul 1, 2025
6f60f17
feat: adding homepage designs
Jul 1, 2025
e90c46e
feat: adding homepage designs
Jul 1, 2025
c400924
feat: adding homepage designs
Jul 1, 2025
9a4d633
feat: adding homepage designs
Jul 1, 2025
b5595db
feat: adding homepage designs
Jul 1, 2025
b9dacef
feat: adding homepage designs
Jul 1, 2025
a66ea01
feat: adding homepage designs
Jul 1, 2025
e54661d
feat: adding homepage designs
Jul 1, 2025
6ba1c36
feat: adding homepage designs
Jul 1, 2025
6d8c1f8
feat: adding homepage designs
Jul 1, 2025
22d29d9
feat: adding homepage designs
Jul 2, 2025
0ee72e5
feat: adding homepage designs
Jul 2, 2025
20202a5
feat: adding homepage designs
Jul 2, 2025
d5f41ba
feat: adding homepage designs
Jul 2, 2025
100cab7
Merge remote-tracking branch 'origin/main' into feat/homepage-v2
Jul 2, 2025
885fd5a
Merge remote-tracking branch 'origin/main' into feat/homepage-v2
Jul 2, 2025
4e53134
feat: added footer image
Jul 2, 2025
c6807c2
feat: added footer image
Jul 2, 2025
3b7179a
feat: added footer image
Jul 3, 2025
4da1801
feat: added footer image
Jul 3, 2025
a525373
feat: added footer image
Jul 3, 2025
796dbbc
feat: added footer image
Jul 3, 2025
4d30f74
feat: added footer image
Jul 3, 2025
6b30db9
feat: added footer image
Jul 3, 2025
df8c15f
feat: added footer image
Jul 3, 2025
4d77097
feat: added footer image
Jul 3, 2025
c015410
feat: added footer image
Jul 3, 2025
6616c1b
feat: added footer image
Jul 7, 2025
d82979a
feat: added mobile styling
Jul 7, 2025
57f312a
feat: added mobile styling
Jul 7, 2025
352d001
Merge remote-tracking branch 'origin/main' into feat/homepage-v3
Jul 7, 2025
e12e22b
feat: updated some frame styling
Jul 7, 2025
bc5fd66
feat: cleaned up home page styling and added empty page callouts
Jul 7, 2025
c1df663
feat: cleaned up home page styling and added empty page callouts
Jul 7, 2025
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
40 changes: 26 additions & 14 deletions fern/assets/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -75,35 +75,35 @@ div:has(> .fern-product-selector-radio-group):before {
}
}

> a[href="/home"] {
> a[href*="home"] {
grid-column: 1;
grid-row: 1;
}

> a[href="/sdks"] {
> a[href*="sdks"] {
grid-column: 2;
grid-row: 1;
}

> a[href="/docs"] {
> a[href*="docs"] {
grid-column: 1;
grid-row: 2;
}

> a[href="/ask-fern"] {
> a[href*="ask-fern"] {
grid-column: 2;
grid-row: 2;
}

> a[href="/openapi"]:before {
> a[href*="openapi"]:before {
content: "Supported Specs";
font-weight: 500;
position: absolute;
top: -2rem;
left: 0.5rem;
}

> a[href="/openapi"] {
> a[href*="openapi"] {
grid-column: 3;
grid-row: 1;

Expand All @@ -113,7 +113,7 @@ div:has(> .fern-product-selector-radio-group):before {
}
}

> a[href="/fern-def"] {
> a[href*="fern-def"] {
grid-column: 3;
grid-row: 2;
transform: translateY(-32px);
Expand All @@ -124,7 +124,7 @@ div:has(> .fern-product-selector-radio-group):before {
}
}

> a[href="/asyncapi"] {
> a[href*="asyncapi"] {
grid-column: 3;
grid-row: 3;
transform: translateY(-64px);
Expand All @@ -135,7 +135,7 @@ div:has(> .fern-product-selector-radio-group):before {
}
}

> a[href="/openrpc"] {
> a[href*="openrpc"] {
grid-column: 3;
grid-row: 4;
transform: translateY(-64px);
Expand All @@ -146,7 +146,7 @@ div:has(> .fern-product-selector-radio-group):before {
}
}

> a[href="/grpc"] {
> a[href*="grpc"] {
grid-column: 3;
grid-row: 5;
transform: translateY(-64px);
Expand All @@ -160,6 +160,15 @@ div:has(> .fern-product-selector-radio-group):before {


/* LANDING */

:is(.dark) {
.lp-page-container {
.dashed-gradient {
background-image: url('data:image/svg+xml;utf8,<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(%23clip0_351_76922)"><rect width="100" height="100" fill="transparent"/><path d="M0 100L100 -7.07537e-07" stroke="%2362636C" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></g><defs><clipPath id="clip0_351_76922"><rect width="100" height="100" fill="white"/></clipPath></defs></svg>');
}
}
}

.lp-page-container {
min-height: 100vh;
position: relative;
Expand All @@ -174,6 +183,8 @@ div:has(> .fern-product-selector-radio-group):before {
pointer-events: none;
border-right: 1px solid var(--grayscale-5);
border-left: 1px solid var(--grayscale-5);
mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0 ) 100%);
-webkit-mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0) 100%);
}

.dashed-pattern-right {
Expand All @@ -186,6 +197,8 @@ div:has(> .fern-product-selector-radio-group):before {
pointer-events: none;
border-right: 1px solid var(--grayscale-5);
border-left: 1px solid var(--grayscale-5);
mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0) 100%);
-webkit-mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0) 100%);
}

.dashed-gradient {
Expand All @@ -194,10 +207,8 @@ div:has(> .fern-product-selector-radio-group):before {
background-image: url('data:image/svg+xml;utf8,<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(%23clip0_351_76922)"><rect width="100" height="100" fill="transparent"/><path d="M0 100L100 -7.07537e-07" stroke="%23E0E1E6" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></g><defs><clipPath id="clip0_351_76922"><rect width="100" height="100" fill="white"/></clipPath></defs></svg>');
background-repeat: repeat;
background-size: 12px 12px;
}

&:is(.dark) .dashed-gradient {
background-image: url('data:image/svg+xml;utf8,<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(%23clip0_351_76922)"><rect width="100" height="100" fill="transparent"/><path d="M0 100L100 -7.07537e-07" stroke="%2362636C" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></g><defs><clipPath id="clip0_351_76922"><rect width="100" height="100" fill="white"/></clipPath></defs></svg>');
mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0) 100%);
-webkit-mask: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, rgba(0,0,0,0) 100%);
}

.main-content {
Expand Down Expand Up @@ -442,6 +453,7 @@ div:has(> .fern-product-selector-radio-group):before {
top: 50%;
left: 0;
transform: translate(-32px, calc(-50% - 4px));
filter: saturate(0) opacity(0.7);
}

.footer-status {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Customer Showcase
---

# Customer Showcase
Examples and case studies of customers using AsyncAPI definitions successfully.

See how other customers are using OpenAPI definitions to power their APIs and documentation.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Get to OpenAPI
---

# Get to OpenAPI
How to transition from AsyncAPI to OpenAPI or integrate both specifications.

Learn how to create or obtain your OpenAPI definition. Explore different approaches including handwriting, generating from code, and more.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/getting-started/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Overview
---

# Overview
This is the overview page for Getting Started with your OpenAPI definition. Here you will find a high-level introduction and guidance on how to begin.

This is the overview page for Getting Started with your OpenAPI definition. Here you will find a high-level introduction and guidance on how to begin.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Philosophy
---

# Philosophy
The philosophy and principles behind AsyncAPI definitions and how they enhance API development.

Understand the philosophy behind designing and maintaining your OpenAPI definitions. Learn best practices and guiding principles.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/allof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: AllOf
---

# AllOf
How to use the `allOf` keyword to compose schemas in OpenAPI.

How to use the `allOf` keyword to compose schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/anyof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: AnyOf
---

# AnyOf
How to use the `anyOf` keyword to allow multiple possible schemas in OpenAPI.

How to use the `anyOf` keyword to allow multiple possible schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/enums.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Enums
---

# Enums
How to use enum types to define a fixed set of values in OpenAPI.

How to define and use enums in your OpenAPI schemas.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/inlined-schemas.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Inlined Schemas
---

# Inlined Schemas
How to define schemas inline within your OpenAPI specification.

How to define inlined schemas directly within your OpenAPI definitions.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/objects.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Objects
---

# Objects
How to define object schemas with properties in OpenAPI.

Learn how to define object schemas in OpenAPI, including properties and required fields.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/oneof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: OneOf
---

# OneOf
How to use the `oneOf` keyword to define alternative schemas in OpenAPI.

How to use the `oneOf` keyword to define alternative schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/schemas/override-type.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Override the Type
---

# Override the Type
How to override the default type inference for schemas in OpenAPI.

How to override the type of a schema in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Multiple Security Schemes
---

# Multiple Security Schemes
Learn how to define and use multiple security schemes in your OpenAPI definition.

Learn how to define and use multiple security schemes in your OpenAPI definition.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/authentication.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Overriding the Security Scheme
---

# Overriding the Security Scheme
How to override security schemes in specific operations or contexts.

How to override the default security scheme in your OpenAPI definition.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/authentication.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Security Schemes Overview
---

# Security Schemes Overview
Overview of security schemes and authentication methods in OpenAPI.

An introduction to security schemes in OpenAPI. Learn about authentication and authorization options.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/authentication.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Multiple Server URLs
---

# Multiple Server URLs
How to configure multiple server URLs for different environments.

How to define and use multiple server URLs in your OpenAPI definition.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/servers.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Naming Your Servers
---

# Naming Your Servers
Best practices for naming your server configurations.

Best practices for naming your server URLs in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/servers.mdx) to this content. This link maybe broken.</Warning>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Overriding the Servers
---

# Overriding the Servers
How to override server configurations in specific contexts.

How to override the default servers in your OpenAPI definition.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/servers.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/asyncapi-def/pages/servers/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Servers Overview
---

# Servers Overview
Overview of server configuration options in OpenAPI.

Introduction to server objects in OpenAPI. Learn how to define and manage server URLs.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/servers.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/allof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: AllOf
---

# AllOf
How to use the `allOf` keyword to compose schemas in OpenAPI.

How to use the `allOf` keyword to compose schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/anyof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: AnyOf
---

# AnyOf
How to use the `anyOf` keyword to allow multiple possible schemas in OpenAPI.

How to use the `anyOf` keyword to allow multiple possible schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/enums.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Enums
---

# Enums
How to use enum types to define a fixed set of values in OpenAPI.

How to define and use enums in your OpenAPI schemas.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/inlined-schemas.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Inlined Schemas
---

# Inlined Schemas
How to define schemas inline within your OpenAPI specification.

How to define inlined schemas directly within your OpenAPI definitions.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/objects.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: Objects
---

# Objects
How to define object schemas with properties in OpenAPI.

Learn how to define object schemas in OpenAPI, including properties and required fields.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
4 changes: 2 additions & 2 deletions fern/products/grpc-def/pages/schemas/oneof.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
title: OneOf
---

# OneOf
How to use the `oneOf` keyword to define alternative schemas in OpenAPI.

How to use the `oneOf` keyword to define alternative schemas in OpenAPI.
<Warning>This page is a WIP, please refer to our previous [documentation](https://buildwithfern.com/learn) or the [closest page](https://buildwithfern.com/learn/api-definition/openapi/overview.mdx) to this content. This link maybe broken.</Warning>
Loading