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

- Docs Preview + Docs Preview
@@ -883,17 +734,6 @@ layout: custom {/* Footer Links */}
- {/* Newsletter Signup */} - {/*
-
Subscribe to our updates
-
-
- marty.mcfly@hillvalley.edu -
- -
-
*/}

Documentation

@@ -924,10 +764,6 @@ layout: custom
- {/*
-
© 2025 Fern • Birch Solutions, Inc.
-
Located in Brooklyn, New York.
-
*/}
\ 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. +