From b0b7f035f33979596c678bbe8f8e6e354c2ffd91 Mon Sep 17 00:00:00 2001
From: Deep Singhvi
Date: Wed, 2 Jul 2025 15:01:15 -0400
Subject: [PATCH 1/2] chore(typescript): introduce sdk design docs
---
.../sdks/overview/typescript/design.mdx | 22 ++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/fern/products/sdks/overview/typescript/design.mdx b/fern/products/sdks/overview/typescript/design.mdx
index 4c6bc919..7440bc07 100644
--- a/fern/products/sdks/overview/typescript/design.mdx
+++ b/fern/products/sdks/overview/typescript/design.mdx
@@ -3,4 +3,24 @@ title: Typescript SDK Design
description: "Key design decisions behind our TypeScript SDK generator"
---
-Learn about the design principles and philosophy behind the Fern Typescript SDK.
\ No newline at end of file
+
+
+ Zero external dependencies.
+
+
+
+ Works seamlessly in both Node.js and browser environments.
+
+
+
+ Full TypeScript support.
+
+
+
+ Handle paginated responses with built-in iterators.
+
+
+
+ Designed to fail gracefully as your API evolves.
+
+
From d7faab69d098c38bb3ad02bc99bf2a79ced0eb5c Mon Sep 17 00:00:00 2001
From: Kapil Gowru
Date: Wed, 2 Jul 2025 13:27:06 -0700
Subject: [PATCH 2/2] feat: cleaned up cards and added duotone icons
---
fern/docs.yml | 7 +-
fern/products/docs/docs.yml | 165 ++++++++--------
.../custom-react-components.mdx | 1 +
fern/products/home/pages/welcome.mdx | 184 +-----------------
.../sdks/overview/typescript/design.mdx | 18 +-
5 files changed, 114 insertions(+), 261 deletions(-)
diff --git a/fern/docs.yml b/fern/docs.yml
index bb790087..c47f5d26 100644
--- a/fern/docs.yml
+++ b/fern/docs.yml
@@ -1,5 +1,10 @@
instances:
- url: fern-v2.docs.buildwithfern.com
+ edit-this-page:
+ github:
+ owner: fern
+ repo: docs
+ branch: main
title: Fern
@@ -118,4 +123,4 @@ layout:
page-width: 1504px
header-height: 75px
searchbar-placement: header
- tabs-placement: header
\ No newline at end of file
+ tabs-placement: header
diff --git a/fern/products/docs/docs.yml b/fern/products/docs/docs.yml
index b69ae4c2..df93bc1c 100644
--- a/fern/products/docs/docs.yml
+++ b/fern/products/docs/docs.yml
@@ -1,84 +1,90 @@
navigation:
- - section: Guides
+ - section: Getting Started
contents:
- - section: Getting Started
- contents:
- - page: Overview
- path: ./pages/guides/getting-started/overview.mdx
- - page: Quickstart
- path: ./pages/guides/getting-started/quickstart.mdx
- - page: Migrate from an existing site
- path: ./pages/guides/getting-started/migrate-from-existing-site.mdx
- - page: Setting up your domain
- path: ./pages/guides/getting-started/setting-up-your-domain.mdx
- - page: Customer Showcase
- path: ./pages/guides/getting-started/customer-showcase.mdx
- - section: Reference
- contents:
- - page: What is docs.yml
- path: ./pages/guides/reference/what-is-docs-yml.mdx
- - page: Frontmatter
- path: ./pages/guides/reference/frontmatter.mdx
- - section: Navigation
- contents:
- - page: Overview
- path: ./pages/guides/navigation/overview.mdx
- - page: Tabs
- path: ./pages/guides/navigation/tabs.mdx
- - page: Versions
- path: ./pages/guides/navigation/versions.mdx
- - page: Products
- path: ./pages/guides/navigation/products.mdx
- - page: Changelogs
- path: ./pages/guides/navigation/changelogs.mdx
- - page: API References
- path: ./pages/guides/navigation/api-references.mdx
- - page: Hiding Content
- path: ./pages/guides/navigation/hiding-content.mdx
- - section: SEO
- contents:
- - page: Configuring Slugs
- path: ./pages/guides/seo/configuring-slugs.mdx
- - page: Redirects
- path: ./pages/guides/seo/redirects.mdx
- - page: SEO Metadata
- path: ./pages/guides/seo/seo-metadata.mdx
- - page: Ilms.txt
- path: ./pages/guides/seo/ilms-txt.mdx
- - section: Authentication
- contents:
- - page: SSO
- path: ./pages/guides/authentication/sso.mdx
- - page: RBAC
- path: ./pages/guides/authentication/rbac.mdx
- - page: API Key Injection
- path: ./pages/guides/authentication/api-key-injection.mdx
- - section: Enterprise
- contents:
- - page: Self-hosted
- path: ./pages/guides/enterprise/self-hosted.mdx
- - section: Integrations
- contents:
- - section: Analytics
- contents:
- - page: Google
- path: ./pages/guides/integrations/analytics/google.mdx
- - page: PostHog
- path: ./pages/guides/integrations/analytics/posthog.mdx
- - page: Fullstory
- path: ./pages/guides/integrations/analytics/fullstory.mdx
- - page: Segment
- path: ./pages/guides/integrations/analytics/segment.mdx
- - section: Support
- contents:
- - page: Postman
- path: ./pages/guides/integrations/support/postman.mdx
- - page: Postman
- path: ./pages/guides/integrations/postman.mdx
- - page: Feature Flags
- path: ./pages/guides/integrations/feature-flags.mdx
- - page: Self-hosted
- path: ./pages/guides/integrations/self-hosted.mdx
+ - page: Overview
+ path: ./pages/guides/getting-started/overview.mdx
+ - page: Quickstart
+ path: ./pages/guides/getting-started/quickstart.mdx
+ - page: Migrate from an existing site
+ path: ./pages/guides/getting-started/migrate-from-existing-site.mdx
+ - page: Setting up your domain
+ path: ./pages/guides/getting-started/setting-up-your-domain.mdx
+ - page: Customer Showcase
+ path: ./pages/guides/getting-started/customer-showcase.mdx
+ - section: Reference
+ collapsed: true
+ contents:
+ - page: What is docs.yml
+ path: ./pages/guides/reference/what-is-docs-yml.mdx
+ - page: Frontmatter
+ path: ./pages/guides/reference/frontmatter.mdx
+ - section: Navigation
+ collapsed: true
+ contents:
+ - page: Overview
+ path: ./pages/guides/navigation/overview.mdx
+ - page: Tabs
+ path: ./pages/guides/navigation/tabs.mdx
+ - page: Versions
+ path: ./pages/guides/navigation/versions.mdx
+ - page: Products
+ path: ./pages/guides/navigation/products.mdx
+ - page: Changelogs
+ path: ./pages/guides/navigation/changelogs.mdx
+ - page: API References
+ path: ./pages/guides/navigation/api-references.mdx
+ - page: Hiding Content
+ path: ./pages/guides/navigation/hiding-content.mdx
+ - section: SEO
+ collapsed: true
+ contents:
+ - page: Configuring Slugs
+ path: ./pages/guides/seo/configuring-slugs.mdx
+ - page: Redirects
+ path: ./pages/guides/seo/redirects.mdx
+ - page: SEO Metadata
+ path: ./pages/guides/seo/seo-metadata.mdx
+ - page: Ilms.txt
+ path: ./pages/guides/seo/ilms-txt.mdx
+ - section: Authentication
+ collapsed: true
+ contents:
+ - page: SSO
+ path: ./pages/guides/authentication/sso.mdx
+ - page: RBAC
+ path: ./pages/guides/authentication/rbac.mdx
+ - page: API Key Injection
+ path: ./pages/guides/authentication/api-key-injection.mdx
+ - section: Enterprise
+ collapsed: true
+ contents:
+ - page: Self-hosted
+ path: ./pages/guides/enterprise/self-hosted.mdx
+ - section: Analytics
+ collapsed: true
+ contents:
+ - page: Google
+ path: ./pages/guides/integrations/analytics/google.mdx
+ - page: PostHog
+ path: ./pages/guides/integrations/analytics/posthog.mdx
+ - page: Fullstory
+ path: ./pages/guides/integrations/analytics/fullstory.mdx
+ - page: Segment
+ path: ./pages/guides/integrations/analytics/segment.mdx
+ - section: Support
+ collapsed: true
+ contents:
+ - page: Postman
+ path: ./pages/guides/integrations/support/postman.mdx
+ - section: Integrations
+ collapsed: true
+ contents:
+ - page: Postman
+ path: ./pages/guides/integrations/postman.mdx
+ - page: Feature Flags
+ path: ./pages/guides/integrations/feature-flags.mdx
+ - page: Self-hosted
+ path: ./pages/guides/integrations/self-hosted.mdx
- section: Component Library
contents:
- page: Overview
@@ -136,6 +142,7 @@ navigation:
- page: Custom React Components
path: ./pages/component-library/custom-components/custom-react-components.mdx
- section: Changelog
+ collapsed: true
contents:
- page: Overview
path: ./pages/changelog/overview.mdx
diff --git a/fern/products/docs/pages/component-library/custom-components/custom-react-components.mdx b/fern/products/docs/pages/component-library/custom-components/custom-react-components.mdx
index 47b7b83b..8b89ae76 100644
--- a/fern/products/docs/pages/component-library/custom-components/custom-react-components.mdx
+++ b/fern/products/docs/pages/component-library/custom-components/custom-react-components.mdx
@@ -1,6 +1,7 @@
---
title: Custom React Components
description: Integrate your own React components into documentation.
+edit-this-page: true
---
# Custom React Components
diff --git a/fern/products/home/pages/welcome.mdx b/fern/products/home/pages/welcome.mdx
index 302ae797..52c60cd8 100644
--- a/fern/products/home/pages/welcome.mdx
+++ b/fern/products/home/pages/welcome.mdx
@@ -25,7 +25,7 @@ layout: custom
pointer-events: none;
top: 0;
left: 0;
- opacity: 0.5;
+ opacity: 1;
}
.gradient-radial.is-green {
background-color: #dbfdd3;
@@ -51,7 +51,7 @@ layout: custom
}
.gradient-radial.hero-1 {
transform-style: preserve-3d;
- transform: rotate(-34deg)scale(1.4,.5)
+ transform: rotate(-34deg)scale(1.4,.5);
position: absolute;
top: 54%;
left: 0%;
@@ -65,21 +65,21 @@ layout: custom
}
.gradient-radial.hero-3 {
transform-style: preserve-3d;
- transform: rotate(-20deg)scaleY(1.4)
+ transform: rotate(-20deg)scaleY(1.4);
position: absolute;
top: 20%;
left: 8%;
}
.gradient-radial.hero-4 {
transform-style: preserve-3d;
- transform: rotate(37deg)scale(1.1,1.5)
+ transform: rotate(37deg)scale(1.1,1.5);
position: absolute;
top: 37%;
right: 11%;
}
.gradient-radial.hero-5 {
transform-style: preserve-3d;
- transform: rotate(37deg)scale(.9,1.8)
+ transform: rotate(37deg)scale(.9,1.8);
position: absolute;
top: 52%;
right: -7%;
@@ -250,10 +250,10 @@ layout: custom
cursor: pointer;
padding: 0;
border-radius: 0.25rem;
+ }
- &:hover {
- background-color: var(--grayscale-a3);
- }
+ .language-icon:hover {
+ background-color: var(--grayscale-a3);
}
.language-icon-img {
@@ -274,59 +274,10 @@ layout: custom
gap: 0.75rem;
}
- .btn-primary {
- border: 1px solid var(--accent-9);
- border-radius: 6px;
- background-color: var(--accent-9);
- color: var(--accent-contrast);
- text-align: center;
- letter-spacing: var(--_typography---letter-spacing--button);
- white-space: nowrap;
- justify-content: center;
- align-items: center;
- padding: .5rem 0.75rem;
- font-size: .875rem;
- font-weight: 400;
- line-height: 1.2;
- text-decoration: none;
- transition: box-shadow .3s cubic-bezier(.19,1,.22,1), color .3s cubic-bezier(.19,1,.22,1), background-color .3s cubic-bezier(.19,1,.22,1);
- display: flex;
- box-shadow: 0 1.5em 1.375em 0 #0087000a, 0 .5em .5em #0087000f, 0 .25em .25em #00870012, 0 .15625em .125rem #00870014, 0 .071875em .75em #0087001f;
- cursor: pointer;
- width: fit-content;
- gap: 0.5rem;
-
- &:hover {
- border-color: var(--accent-10);
- background-color: var(--accent-10);
- box-shadow: 0 1.5em 1.375em 0 #0000000a, 0 .5em .5em #0000000f, 0 .25em .25em #00000012, 0 .15625em .125rem #00000014, 0 .071875em .75em #0000001f;
- }
- }
-
- .btn-secondary {
- background-color: var(--grayscale-a3);
- color: var(--grayscale-a10);
- padding: 0.5rem 0.75rem;
- border-radius: 6px;
- font-size: 0.875rem;
- border: none;
- cursor: pointer;
- transition: box-shadow .3s cubic-bezier(.19,1,.22,1), color .3s cubic-bezier(.19,1,.22,1), background-color .3s cubic-bezier(.19,1,.22,1);
- width: fit-content;
- display: flex;
- align-items: center;
- gap: 0.5rem;
-
- &:hover {
- background-color: var(--grayscale-a4);
- color: var(--grayscale-a12);
- }
- }
-
.community-section {
border-top: 1px solid var(--grayscale-5);
border-bottom: 1px solid var(--grayscale-5);
- padding: 3rem 2rem;;
+ padding: 3rem 2rem;
}
.community-title-container {
@@ -365,13 +316,6 @@ layout: custom
margin-bottom: 0.5rem;
}
- .community-card-arrow {
- background-color: rgba(61,37,20,0.05);
- border-radius: 0.5rem;
- padding: 0.5rem;
- align-self: flex-start;
- }
-
.twitter-strikethrough {
text-decoration: line-through;
}
@@ -403,22 +347,6 @@ layout: custom
gap: 1.5rem;
}
- .help-button {
- border: 1px solid #e0e1e6;
- border-radius: 0.75rem;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
- padding: 0.75rem;
- display: flex;
- align-items: center;
- gap: 0.5rem;
- cursor: pointer;
- }
-
- .help-button-text {
- font-size: 1rem;
- color: #1e1f24;
- }
-
.footer {
padding: 3rem 2rem;
}
@@ -430,12 +358,6 @@ layout: custom
margin-bottom: 3rem;
}
- .footer-left {
- display: flex;
- flex-direction: column;
- gap: 1.5rem;
- }
-
.footer-logo {
display: flex;
align-items: center;
@@ -485,63 +407,6 @@ layout: custom
align-self: flex-start;
}
- .footer-right {
- display: flex;
- justify-content: flex-end;
- }
-
- .newsletter-container {
- background-color: var(--grayscale-2);
- border: 1px solid var(--grayscale-6);
- border-radius: 0.5rem;
- padding: 0.75rem;
- width: 20rem;
- }
-
- .newsletter-label {
- font-size: 0.75rem;
- color: var(--grayscale-10);
- margin-bottom: 0.75rem;
- font-family: var(--font-code);
- }
-
- .newsletter-form {
- display: flex;
- gap: 0.5rem;
- }
-
- .newsletter-input {
- display: flex;
- padding: 12px;
- flex-direction: column;
- justify-content: center;
- align-items: flex-start;
- flex: 1 0 0;
- border-radius: 8px;
- border: 0.5px solid var(--grayscale-8);
- background: var(--grayscale-1);
- box-shadow: 0px 0px 0px 0.559px rgba(14, 63, 126, 0.04), 0px 0.559px 0.559px -0.28px rgba(42, 51, 69, 0.04), 0px 1.677px 1.677px -0.839px rgba(42, 51, 70, 0.04), 0px 3.354px 3.354px -1.677px rgba(42, 51, 70, 0.04), 0px 6.709px 6.709px -3.354px rgba(14, 63, 126, 0.04), 0px 13.417px 13.417px -6.709px rgba(14, 63, 126, 0.04), 4.472px 4.472px 32.336px 0px var(--radix-gray-2, #F9F9FB);
- text-decoration: none;
- font-family: var(--font-code);
- font-size: 0.875rem;
- font-style: normal;
- font-weight: 400;
- }
-
- .newsletter-input-text {
- font-size: 0.75rem;
- color: #80828d;
- }
-
- .newsletter-button {
- background-color: #008700;
- color: white;
- padding: 0.5rem;
- border-radius: 0.5rem;
- border: none;
- cursor: pointer;
- }
-
.footer-links {
display: flex;
gap: 2rem;
@@ -581,20 +446,6 @@ layout: custom
color: #1e1f24;
}
- .footer-bottom {
- display: flex;
- justify-content: space-between;
- padding-top: 3rem;
- }
-
- .footer-bottom-text {
- font-weight: 400;
- font-size: 0.875rem;
- color: var(--grayscale-10);
- text-decoration: none;
- transition: color 0.15s ease-in-out;
- }
-
.a-btn {
text-decoration: none !important;
font-weight: 400 !important;
@@ -713,7 +564,7 @@ layout: custom
-
+
\ No newline at end of file
diff --git a/fern/products/sdks/overview/typescript/design.mdx b/fern/products/sdks/overview/typescript/design.mdx
index 7440bc07..693d72aa 100644
--- a/fern/products/sdks/overview/typescript/design.mdx
+++ b/fern/products/sdks/overview/typescript/design.mdx
@@ -4,23 +4,27 @@ description: "Key design decisions behind our TypeScript SDK generator"
---
-
- Zero external dependencies.
+
+ Zero external dependencies in the final SDK.
-
+
Works seamlessly in both Node.js and browser environments.
-
- Full TypeScript support.
+
+ Full type safety with TypeScript's static type checking.
-
+
Handle paginated responses with built-in iterators.
-
+
Designed to fail gracefully as your API evolves.
+
+
+ Suppports OpenAPI, AsyncAPI, OpenRPC, gRPC, and Fern Definition.
+