From 8994cd5be511c08352f42a457d345af85ea00662 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 22 Jul 2025 12:51:51 -0400 Subject: [PATCH 1/5] fix: improving links on home page --- fern/products/home/pages/welcome.mdx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/fern/products/home/pages/welcome.mdx b/fern/products/home/pages/welcome.mdx index 711e45d18..cb699c13c 100644 --- a/fern/products/home/pages/welcome.mdx +++ b/fern/products/home/pages/welcome.mdx @@ -148,18 +148,13 @@ import { FernFooter } from "../../../components/FernFooter"; Arrow right Arrow right - - Import your brand language - Arrow right light - Arrow right light - Add multiple specs to your docs site Arrow right light Arrow right light - - Set up tabs + + Configure your docs site Arrow right light Arrow right light @@ -173,12 +168,12 @@ import { FernFooter } from "../../../components/FernFooter"; Arrow right light Arrow right light - + Customize slug from MDX Arrow right light Arrow right light - + See all available components Arrow right light Arrow right light From 87b8862b6eef05602b9db9015968ed7a9779d492 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 22 Jul 2025 15:13:57 -0400 Subject: [PATCH 2/5] fix: improving links on home page --- fern/assets/styles.css | 96 +++++++++++++- fern/docs.yml | 6 +- fern/products/docs/docs.yml | 22 ++- ...ble-snippets.mdx => reusable-markdown.mdx} | 4 +- .../sdks/images/icons/csharp-light.svg | 16 +++ fern/products/sdks/images/icons/go-light.svg | 14 ++ .../products/sdks/images/icons/java-light.svg | 7 + fern/products/sdks/images/icons/php-light.svg | 5 + .../sdks/images/icons/python-light.svg | 11 ++ .../products/sdks/images/icons/ruby-light.svg | 125 ++++++++++++++++++ fern/products/sdks/images/icons/ts-light.svg | 11 ++ 11 files changed, 298 insertions(+), 19 deletions(-) rename fern/products/docs/pages/component-library/custom-components/{reusable-snippets.mdx => reusable-markdown.mdx} (94%) create mode 100644 fern/products/sdks/images/icons/csharp-light.svg create mode 100644 fern/products/sdks/images/icons/go-light.svg create mode 100644 fern/products/sdks/images/icons/java-light.svg create mode 100644 fern/products/sdks/images/icons/php-light.svg create mode 100644 fern/products/sdks/images/icons/python-light.svg create mode 100644 fern/products/sdks/images/icons/ruby-light.svg create mode 100644 fern/products/sdks/images/icons/ts-light.svg diff --git a/fern/assets/styles.css b/fern/assets/styles.css index 97090c8a1..2a6da6006 100644 --- a/fern/assets/styles.css +++ b/fern/assets/styles.css @@ -38,9 +38,7 @@ } /*** START -- PRODUCT SELECTOR STYLING ***/ - @media (min-width: 1024px) { - .fern-product-selector { transform: translate(-2px, 4px); } @@ -212,6 +210,10 @@ /*** END -- PRODUCT SELECTOR STYLING ***/ /*** START -- DOCS HOMEPAGE STYLING ***/ +a[href*="changelog"] svg { + display: none; +} + .docs-homepage { position: relative; .fern-card { @@ -284,6 +286,96 @@ /*** END -- DOCS HOMEPAGE STYLING ***/ /*** START -- SDKS HOMEPAGE STYLING ***/ +a[href*="changelog"] svg { + display: none; +} + +/* TypeScript */ +div:has(a[href*="/sdks/generators/typescript/quickstart"]) > button.fern-sidebar-link span.mr-auto::before, +div:has(a[href*="/sdks/generators/type-script/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/typescript-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + +/* Python */ +div:has(a[href*="/sdks/generators/python/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/python-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + +/* Go */ +div:has(a[href*="/sdks/generators/go/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/go-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + +/* C# / .NET */ +div:has(a[href*="/sdks/generators/csharp/quickstart"]) > button.fern-sidebar-link span.mr-auto::before, +div:has(a[href*="/sdks/generators/net/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/csharp-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + +/* PHP */ +div:has(a[href*="/sdks/generators/php/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/php-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + +/* Ruby */ +div:has(a[href*="/sdks/generators/ruby/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 4px; + background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/ruby-light.svg"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + vertical-align: middle; +} + .sdks-homepage { position: relative; diff --git a/fern/docs.yml b/fern/docs.yml index 18e3a0afb..ae56985b7 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -315,9 +315,9 @@ redirects: destination: /learn/docs/preview-publish/publishing-your-docs permanent: true # General getting started pattern - - source: /learn/docs/getting-started/:slug* - destination: /learn/docs/guides/getting-started/:slug* - permanent: true + # - source: /learn/docs/getting-started/:slug* + # destination: /learn/docs/guides/getting-started/:slug* + # permanent: true # Building and Customizing Your Docs redirects - specific cases first - source: /learn/docs/building-and-customizing-your-docs/navigation diff --git a/fern/products/docs/docs.yml b/fern/products/docs/docs.yml index 8f5b84bc1..8f4f35869 100644 --- a/fern/products/docs/docs.yml +++ b/fern/products/docs/docs.yml @@ -7,15 +7,11 @@ navigation: path: ./pages/getting-started/quickstart.mdx - link: Customer Showcase href: https://buildwithfern.com/customers - - section: Component Library + - section: Writing Content contents: - - section: Writing Content - contents: - - page: Markdown - path: ./pages/component-library/writing-content/markdown.mdx - - page: Visual Editor - path: ./pages/component-library/writing-content/visual-editor.mdx - - section: Default Components + - page: Markdown + path: ./pages/component-library/writing-content/markdown.mdx + - section: Components contents: - page: Overview path: ./pages/component-library/default-components/overview.mdx @@ -71,12 +67,12 @@ navigation: - page: Tooltips path: ./pages/component-library/default-components/tooltips.mdx icon: fa-regular fa-comment - - page: Reusable Snippets - path: ./pages/component-library/custom-components/reusable-snippets.mdx + - page: Visual Editor + path: ./pages/component-library/writing-content/visual-editor.mdx + - page: Reusable Markdown + path: ./pages/component-library/custom-components/reusable-markdown.mdx - page: Custom React Components path: ./pages/component-library/custom-components/custom-react-components.mdx - - page: Custom CSS & JS - path: ./pages/component-library/custom-components/custom-css-js.mdx - section: Configuration collapsed: true contents: @@ -88,6 +84,8 @@ navigation: path: ./pages/configuration/frontmatter.mdx - page: Search path: ./pages/configuration/search.mdx + - page: Custom CSS & JS + path: ./pages/component-library/custom-components/custom-css-js.mdx - section: Preview & Publish collapsed: true contents: diff --git a/fern/products/docs/pages/component-library/custom-components/reusable-snippets.mdx b/fern/products/docs/pages/component-library/custom-components/reusable-markdown.mdx similarity index 94% rename from fern/products/docs/pages/component-library/custom-components/reusable-snippets.mdx rename to fern/products/docs/pages/component-library/custom-components/reusable-markdown.mdx index 62191532a..ebb8cc5d2 100644 --- a/fern/products/docs/pages/component-library/custom-components/reusable-snippets.mdx +++ b/fern/products/docs/pages/component-library/custom-components/reusable-markdown.mdx @@ -1,6 +1,6 @@ --- -title: Reusable Snippets -description: Reusable, custom snippets to keep content in sync. Edit once, update everywhere. +title: Reusable Markdown +description: Reusable, custom markdown to keep content in sync. Edit once, update everywhere. --- Keep your documentation DRY (Don't Repeat Yourself) by defining a reusable snippet once, and then referencing it in multiple places. This way, you only need to update the snippet in one place to keep all references in sync. diff --git a/fern/products/sdks/images/icons/csharp-light.svg b/fern/products/sdks/images/icons/csharp-light.svg new file mode 100644 index 000000000..9bf4281fd --- /dev/null +++ b/fern/products/sdks/images/icons/csharp-light.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/fern/products/sdks/images/icons/go-light.svg b/fern/products/sdks/images/icons/go-light.svg new file mode 100644 index 000000000..051648bff --- /dev/null +++ b/fern/products/sdks/images/icons/go-light.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/fern/products/sdks/images/icons/java-light.svg b/fern/products/sdks/images/icons/java-light.svg new file mode 100644 index 000000000..751e63e84 --- /dev/null +++ b/fern/products/sdks/images/icons/java-light.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/fern/products/sdks/images/icons/php-light.svg b/fern/products/sdks/images/icons/php-light.svg new file mode 100644 index 000000000..665259094 --- /dev/null +++ b/fern/products/sdks/images/icons/php-light.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/fern/products/sdks/images/icons/python-light.svg b/fern/products/sdks/images/icons/python-light.svg new file mode 100644 index 000000000..e0a9b6479 --- /dev/null +++ b/fern/products/sdks/images/icons/python-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/fern/products/sdks/images/icons/ruby-light.svg b/fern/products/sdks/images/icons/ruby-light.svg new file mode 100644 index 000000000..46a8ef298 --- /dev/null +++ b/fern/products/sdks/images/icons/ruby-light.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fern/products/sdks/images/icons/ts-light.svg b/fern/products/sdks/images/icons/ts-light.svg new file mode 100644 index 000000000..43ae30380 --- /dev/null +++ b/fern/products/sdks/images/icons/ts-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + From e72b4e3199b0ade39d8466462c00988f489bcb85 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 22 Jul 2025 15:16:58 -0400 Subject: [PATCH 3/5] fix: improving links on home page --- fern/assets/styles.css | 86 ------------------------------------------ 1 file changed, 86 deletions(-) diff --git a/fern/assets/styles.css b/fern/assets/styles.css index 2a6da6006..fa0d12427 100644 --- a/fern/assets/styles.css +++ b/fern/assets/styles.css @@ -290,92 +290,6 @@ a[href*="changelog"] svg { display: none; } -/* TypeScript */ -div:has(a[href*="/sdks/generators/typescript/quickstart"]) > button.fern-sidebar-link span.mr-auto::before, -div:has(a[href*="/sdks/generators/type-script/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/typescript-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - -/* Python */ -div:has(a[href*="/sdks/generators/python/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/python-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - -/* Go */ -div:has(a[href*="/sdks/generators/go/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/go-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - -/* C# / .NET */ -div:has(a[href*="/sdks/generators/csharp/quickstart"]) > button.fern-sidebar-link span.mr-auto::before, -div:has(a[href*="/sdks/generators/net/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/csharp-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - -/* PHP */ -div:has(a[href*="/sdks/generators/php/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/php-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - -/* Ruby */ -div:has(a[href*="/sdks/generators/ruby/quickstart"]) > button.fern-sidebar-link span.mr-auto::before { - content: ""; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 4px; - background-image: url("https://fern-docs.s3.us-east-2.amazonaws.com/SDK+Icons/ruby-light.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - vertical-align: middle; -} - .sdks-homepage { position: relative; From de46c6af712800bca189d3c7b270b08662794fdb Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 22 Jul 2025 16:30:20 -0400 Subject: [PATCH 4/5] fix: improving links on home page --- fern/assets/styles.css | 196 +--------------- fern/components/FernFooter.tsx | 84 ------- fern/components/FernStatus.tsx | 212 ------------------ fern/components/images/BuiltWithFernLogo.tsx | 37 --- fern/components/images/builtwithfern-dark.tsx | 39 ---- .../images/builtwithfern-frame-dark.tsx | 105 --------- .../images/builtwithfern-frame-light.tsx | 105 --------- .../components/images/builtwithfern-light.tsx | 37 --- fern/components/images/soc2.tsx | 130 ----------- fern/docs.yml | 4 - fern/footer-dist/output.js | 14 +- fern/products/home/pages/welcome.mdx | 15 +- footer/src/FernFooter.tsx | 24 +- 13 files changed, 24 insertions(+), 978 deletions(-) delete mode 100644 fern/components/FernFooter.tsx delete mode 100644 fern/components/FernStatus.tsx delete mode 100644 fern/components/images/BuiltWithFernLogo.tsx delete mode 100644 fern/components/images/builtwithfern-dark.tsx delete mode 100644 fern/components/images/builtwithfern-frame-dark.tsx delete mode 100644 fern/components/images/builtwithfern-frame-light.tsx delete mode 100644 fern/components/images/builtwithfern-light.tsx delete mode 100644 fern/components/images/soc2.tsx diff --git a/fern/assets/styles.css b/fern/assets/styles.css index fa0d12427..fe6b5bcda 100644 --- a/fern/assets/styles.css +++ b/fern/assets/styles.css @@ -674,147 +674,6 @@ a[href*="changelog"] svg { gap: 1.5rem; } - .footer { - padding: 3rem 2rem; - } - - .footer-top { - display: flex; - justify-content: space-between; - gap: 2rem; - margin-bottom: 3rem; - position: relative; - } - - .footer-logo { - display: flex; - align-items: center; - gap: 0.25rem; - - /* svg { - display: none !important; - } */ - - svg { - transition: filter 150ms ease; - } - - &:hover { - svg { - filter: saturate(1) opacity(1); - } - } - } - - .footer-logo-img { - height: 1rem; - margin: 0; - filter: saturate(0) opacity(0.7); - } - - .footer-logo-frame { - position: absolute; - top: 50%; - left: 0; - transform: translate(-32px, calc(-50% - 4px)); - filter: saturate(0) opacity(0.7); - } - - .footer-status { - display: flex; - flex-direction: row; - gap: 1rem; - } - - .status-text { - font-size: 0.875rem; - color: var(--grayscale-10); - font-weight: 400; - } - - .soc2-badge { - display: flex; - align-items: center; - gap: 0.5rem; - border-radius: 9999px; - padding: 0.25rem 0.75rem 0.25rem 0.25rem; - align-self: flex-start; - text-decoration: none; - transition: background-color 150ms ease, color 150ms ease; - - &:hover { - background-color: var(--grayscale-a4); - - .status-text { - color: var(--grayscale-12); - } - } - } - - .soc2-badge-img { - width: 1.5rem; - height: 1.5rem; - background-color: #62636C; - border-radius: 1000px; - } - - .footer-links { - display: flex; - gap: 2rem; - padding-top: 2rem; - align-items: flex-end; - justify-content: space-between; - } - - .footer-columns { - display: flex; - gap: 2rem; - } - - .footer-column { - display: flex; - flex-direction: column; - gap: 1rem; - width: 170px; - } - - .footer-column-title { - font-size: 0.875rem; - font-weight: 400; - color: var(--grayscale-9); - letter-spacing: -0.025em; - } - - .footer-column-links { - display: flex; - flex-direction: column; - gap: 1rem; - } - - .footer-link { - font-weight: 400; - font-size: 0.875rem; - color: var(--grayscale-11); - text-decoration: none; - transition: color 0.15s ease-in-out; - - svg { - display: none !important; - } - } - - .footer-link:hover { - color: var(--grayscale-12); - } - - .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; @@ -961,49 +820,7 @@ a[href*="changelog"] svg { gap: 1rem; } - .footer { - padding: 2rem 1.5rem; - } - - .footer-top { - flex-direction: column; - gap: 1.5rem; - margin-bottom: 2rem; - } - - .footer-logo-frame { - transform: translate(-32px, calc(-50% - 68px)); - } - - .footer-status { - flex-direction: column; - gap: 0.75rem; - padding-top: 2rem; - } - - .footer-links { - display: grid; - grid-template-columns: 1fr; - gap: 1.5rem; - align-items: flex-start; - padding-top: 1rem; - } - - .footer-columns { - display: grid; - grid-template-columns: 1fr; - gap: 2rem; - width: 100%; - order: 1; - } - - .footer-column { - width: 100%; - } - - .footer-bottom-text { - order: 2; - } + } /* Tablet breakpoint - Better use of space */ @@ -1019,17 +836,6 @@ a[href*="changelog"] svg { .feature-grid { gap: 1px; } - - .footer-columns { - flex-direction: row; - flex-wrap: wrap; - justify-content: center; - } - - .footer-column { - width: calc(50% - 1rem); - min-width: 200px; - } } /* Very small screens */ diff --git a/fern/components/FernFooter.tsx b/fern/components/FernFooter.tsx deleted file mode 100644 index 1c06e182c..000000000 --- a/fern/components/FernFooter.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react'; -import { FernStatusWidget } from './FernStatus'; - -import { BuiltWithFernLight } from './images/builtwithfern-light'; -import { BuiltWithFernDark } from './images/builtwithfern-dark'; -import { BuiltWithFernFrameLight } from './images/builtwithfern-frame-light'; -import { BuiltWithFernFrameDark } from './images/builtwithfern-frame-dark'; -import { Soc2Logo } from './images/soc2'; - -export const FernFooter = () => { - return ( - - ); -}; \ No newline at end of file diff --git a/fern/components/FernStatus.tsx b/fern/components/FernStatus.tsx deleted file mode 100644 index 014964940..000000000 --- a/fern/components/FernStatus.tsx +++ /dev/null @@ -1,212 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -interface StatusData { - ongoing_incidents?: Array<{ - current_worst_impact: string; - }>; - in_progress_maintenances?: Array; - scheduled_maintenances?: Array<{ - starts_at: string; - }>; -} - -interface StatusState { - dotClass: string; - statusMessage: string; -} - -export const FernStatusWidget = () => { - const [status, setStatus] = useState({ - dotClass: 'is-loading', - statusMessage: 'Checking status...' - }); - - const apiEndpoint = 'https://status.buildwithfern.com/api/v1/summary'; - const refreshInterval = 5 * 60 * 1000; // 5 minutes - - const updateStatus = (data: StatusData) => { - let dotClass = 'is-green'; - let statusMessage = 'All systems operational'; - - // Check for ongoing incidents - if (data.ongoing_incidents && data.ongoing_incidents.length > 0) { - let worstImpact = 0; - for (const incident of data.ongoing_incidents) { - let impactLevel = 0; - - if (incident.current_worst_impact === 'degraded_performance') { - impactLevel = 1; - } else if (incident.current_worst_impact === 'partial_outage') { - impactLevel = 2; - } else if (incident.current_worst_impact === 'full_outage') { - impactLevel = 3; - } - - if (impactLevel > worstImpact) { - worstImpact = impactLevel; - } - } - - // Set status based on severity - if (worstImpact === 3) { - dotClass = 'is-red'; - statusMessage = 'Service outage'; - } else if (worstImpact === 2) { - dotClass = 'is-orange'; - statusMessage = 'Partial outage'; - } else if (worstImpact === 1) { - dotClass = 'is-yellow'; - statusMessage = 'Degraded performance'; - } - } - - // Check for in-progress maintenance - if (data.in_progress_maintenances && data.in_progress_maintenances.length > 0) { - if (dotClass === 'is-green') { - dotClass = 'is-blue'; - statusMessage = 'Maintenance in progress'; - } - } - - // Check for scheduled maintenance - if (data.scheduled_maintenances && data.scheduled_maintenances.length > 0) { - if (dotClass === 'is-green') { - const now = new Date(); - let soonMaintenance = false; - - for (const maintenance of data.scheduled_maintenances) { - const startsAt = new Date(maintenance.starts_at); - const hoursDiff = (startsAt.getTime() - now.getTime()) / (1000 * 60 * 60); - - if (hoursDiff <= 24) { - soonMaintenance = true; - break; - } - } - - if (soonMaintenance) { - dotClass = 'is-blue'; - statusMessage = 'Scheduled maintenance soon'; - } - } - } - - setStatus({ dotClass, statusMessage }); - }; - - const fetchStatus = async () => { - try { - const response = await fetch(apiEndpoint); - if (response.ok) { - const data: StatusData = await response.json(); - updateStatus(data); - } else { - setStatus({ dotClass: 'is-red', statusMessage: 'Cannot check status' }); - } - } catch (error) { - console.error('Error fetching status:', error); - setStatus({ dotClass: 'is-red', statusMessage: 'Cannot check status' }); - } - }; - - useEffect(() => { - fetchStatus(); - const interval = setInterval(fetchStatus, refreshInterval); - return () => clearInterval(interval); - }, []); - - const getBackgroundColor = () => { - switch (status.dotClass) { - case 'is-green': return '#00c853'; - case 'is-red': return '#f44336'; - case 'is-orange': return '#ff9800'; - case 'is-blue': return '#2196f3'; - case 'is-yellow': return '#ffc107'; - case 'is-loading': return '#cccccc'; - default: return '#cccccc'; - } - }; - - return ( - -
-
- {status.statusMessage} - - -
-
- ); -}; diff --git a/fern/components/images/BuiltWithFernLogo.tsx b/fern/components/images/BuiltWithFernLogo.tsx deleted file mode 100644 index 976fd4521..000000000 --- a/fern/components/images/BuiltWithFernLogo.tsx +++ /dev/null @@ -1,37 +0,0 @@ -interface BuiltWithFernLogoProps { - width?: number; - height?: number; - className?: string; -} - -export const BuiltWithFernLogo = ({ - width = 145, - height = 16, - className = "" -}: BuiltWithFernLogoProps) => { - return ( - - - - - - ); -}; - -export default BuiltWithFernLogo; \ No newline at end of file diff --git a/fern/components/images/builtwithfern-dark.tsx b/fern/components/images/builtwithfern-dark.tsx deleted file mode 100644 index 14986a708..000000000 --- a/fern/components/images/builtwithfern-dark.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; - -interface BuiltWithFernDarkProps { - width?: number; - height?: number; - className?: string; -} - -export const BuiltWithFernDark = ({ - width = 145, - height = 16, - className = "" -}: BuiltWithFernDarkProps) => { - return ( - - - - - - ); -}; - -export default BuiltWithFernDark; diff --git a/fern/components/images/builtwithfern-frame-dark.tsx b/fern/components/images/builtwithfern-frame-dark.tsx deleted file mode 100644 index c6e067b16..000000000 --- a/fern/components/images/builtwithfern-frame-dark.tsx +++ /dev/null @@ -1,105 +0,0 @@ -interface BuiltWithFernFrameDarkProps { - width?: number; - height?: number; - className?: string; -} - -export const BuiltWithFernFrameDark = ({ - width = 217, - height = 120, - className = "" -}: BuiltWithFernFrameDarkProps) => { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; - -export default BuiltWithFernFrameDark; diff --git a/fern/components/images/builtwithfern-frame-light.tsx b/fern/components/images/builtwithfern-frame-light.tsx deleted file mode 100644 index d84b630a2..000000000 --- a/fern/components/images/builtwithfern-frame-light.tsx +++ /dev/null @@ -1,105 +0,0 @@ -interface BuiltWithFernFrameLightProps { - width?: number; - height?: number; - className?: string; -} - -export const BuiltWithFernFrameLight = ({ - width = 217, - height = 120, - className = "" -}: BuiltWithFernFrameLightProps) => { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; - -export default BuiltWithFernFrameLight; diff --git a/fern/components/images/builtwithfern-light.tsx b/fern/components/images/builtwithfern-light.tsx deleted file mode 100644 index c5fad90f5..000000000 --- a/fern/components/images/builtwithfern-light.tsx +++ /dev/null @@ -1,37 +0,0 @@ -interface BuiltWithFernLightProps { - width?: number; - height?: number; - className?: string; -} - -export const BuiltWithFernLight = ({ - width = 145, - height = 16, - className = "" -}: BuiltWithFernLightProps) => { - return ( - - - - - - ); -}; - -export default BuiltWithFernLight; diff --git a/fern/components/images/soc2.tsx b/fern/components/images/soc2.tsx deleted file mode 100644 index 9cd0d4c56..000000000 --- a/fern/components/images/soc2.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import React from 'react'; - -interface Soc2LogoProps { - width?: number; - height?: number; - className?: string; -} - -export const Soc2Logo = ({ - width = 32, - height = 32, - className = "" -}: Soc2LogoProps) => { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; - -export default Soc2Logo; \ No newline at end of file diff --git a/fern/docs.yml b/fern/docs.yml index ae56985b7..91bfdb068 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -135,10 +135,6 @@ layout: searchbar-placement: header tabs-placement: header -experimental: - mdx-components: - - ./components - js: - path: ./footer-dist/output.js strategy: beforeInteractive diff --git a/fern/footer-dist/output.js b/fern/footer-dist/output.js index cfdbb98aa..159d72776 100644 --- a/fern/footer-dist/output.js +++ b/fern/footer-dist/output.js @@ -189,18 +189,21 @@ Error generating stack: `+o.message+` padding-top: 2rem; align-items: flex-end; justify-content: space-between; + width: 100%; } .footer-columns { display: flex; gap: 2rem; + flex: 1; } .footer-column { display: flex; flex-direction: column; gap: 1rem; - width: 170px; + flex: 1; + min-width: 120px; } .footer-column-title { @@ -254,6 +257,7 @@ Error generating stack: `+o.message+` color: var(--grayscale-10); text-decoration: none; transition: color 0.15s ease-in-out; + width: fit-content; } /* Responsive Design - Mobile */ @@ -288,16 +292,12 @@ Error generating stack: `+o.message+` .footer-columns { display: grid; - grid-template-columns: 1fr; + grid-template-columns: 2fr; gap: 2rem; width: 100%; order: 1; } - .footer-column { - width: 100%; - } - .footer-bottom-text { order: 2; } @@ -316,4 +316,4 @@ Error generating stack: `+o.message+` min-width: 200px; } } - `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/learn/v2/api-definition/introduction/what-is-an-api-definition",className:"footer-link",children:"API Definition"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/docs/getting-started/overview",className:"footer-link",children:"Docs"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Ei="fern-footer",Ri=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Ei);n||(n=document.createElement("div"),n.setAttribute("id",Ei),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ri(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ri()}).observe(document.body,{childList:!0,subtree:!0})}); + `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/v2/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"/learn/v2/docs/getting-started/overview",className:"footer-link",children:"Docs"}),f.jsx("a",{href:"/ask-fern",className:"footer-link",children:"Ask Fern"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Ei="fern-footer",Ri=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Ei);n||(n=document.createElement("div"),n.setAttribute("id",Ei),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ri(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ri()}).observe(document.body,{childList:!0,subtree:!0})}); diff --git a/fern/products/home/pages/welcome.mdx b/fern/products/home/pages/welcome.mdx index cb699c13c..61a3339bf 100644 --- a/fern/products/home/pages/welcome.mdx +++ b/fern/products/home/pages/welcome.mdx @@ -113,8 +113,8 @@ import { FernFooter } from "../../../components/FernFooter"; Arrow right light Arrow right light - - Configuration + + Configure Arrow right light Arrow right light @@ -148,11 +148,6 @@ import { FernFooter } from "../../../components/FernFooter"; Arrow right Arrow right - - Add multiple specs to your docs site - Arrow right light - Arrow right light - Configure your docs site Arrow right light @@ -168,8 +163,8 @@ import { FernFooter } from "../../../components/FernFooter"; Arrow right light Arrow right light - - Customize slug from MDX + + Configure slugs via MDX Arrow right light Arrow right light @@ -228,7 +223,7 @@ import { FernFooter } from "../../../components/FernFooter"; See our most recent product updates.

- Docs + View Arrow right dark Arrow right dark diff --git a/footer/src/FernFooter.tsx b/footer/src/FernFooter.tsx index 447d94cf3..abaaa2cb3 100644 --- a/footer/src/FernFooter.tsx +++ b/footer/src/FernFooter.tsx @@ -112,18 +112,21 @@ export const FernFooter: React.FC = () => { padding-top: 2rem; align-items: flex-end; justify-content: space-between; + width: 100%; } .footer-columns { display: flex; gap: 2rem; + flex: 1; } .footer-column { display: flex; flex-direction: column; gap: 1rem; - width: 170px; + flex: 1; + min-width: 120px; } .footer-column-title { @@ -177,6 +180,7 @@ export const FernFooter: React.FC = () => { color: var(--grayscale-10); text-decoration: none; transition: color 0.15s ease-in-out; + width: fit-content; } /* Responsive Design - Mobile */ @@ -211,16 +215,12 @@ export const FernFooter: React.FC = () => { .footer-columns { display: grid; - grid-template-columns: 1fr; + grid-template-columns: 2fr; gap: 2rem; width: 100%; order: 1; } - .footer-column { - width: 100%; - } - .footer-bottom-text { order: 2; } @@ -253,10 +253,6 @@ export const FernFooter: React.FC = () => {
- {/* -
- All systems operational -
*/} @@ -284,9 +280,11 @@ export const FernFooter: React.FC = () => { From ed10bab2ddf1a65eee39ff75b8469f3d599bcfee Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 22 Jul 2025 17:42:43 -0400 Subject: [PATCH 5/5] fix: server's broken --- check_urls.py | 180 + docs.xml | 3927 +++++++++++++++++ fern/footer-dist/output.js | 2 +- .../docs/pages/getting-started/overview.mdx | 55 +- fern/products/home/home.yml | 2 +- 5 files changed, 4159 insertions(+), 7 deletions(-) create mode 100644 check_urls.py create mode 100644 docs.xml diff --git a/check_urls.py b/check_urls.py new file mode 100644 index 000000000..23ef547b8 --- /dev/null +++ b/check_urls.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python3 +""" +URL Checker Script for Fern Docs Sitemap +Checks all URLs in the sitemap for 404 errors and other issues. +""" + +import xml.etree.ElementTree as ET +import requests +import time +import sys +from urllib.parse import urlparse +from concurrent.futures import ThreadPoolExecutor, as_completed +import argparse + +class URLChecker: + def __init__(self, sitemap_path, max_workers=10, delay=0.1, timeout=30): + self.sitemap_path = sitemap_path + self.max_workers = max_workers + self.delay = delay + self.timeout = timeout + self.session = requests.Session() + self.session.headers.update({ + 'User-Agent': 'Fern-URL-Checker/1.0' + }) + + def parse_sitemap(self): + """Parse the XML sitemap and extract all URLs.""" + try: + tree = ET.parse(self.sitemap_path) + root = tree.getroot() + + # Handle namespace + namespace = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'} + urls = [] + + for url_elem in root.findall('ns:url', namespace): + loc_elem = url_elem.find('ns:loc', namespace) + if loc_elem is not None: + urls.append(loc_elem.text.strip()) + + return urls + except ET.ParseError as e: + print(f"❌ Error parsing XML sitemap: {e}") + return [] + except FileNotFoundError: + print(f"❌ Sitemap file not found: {self.sitemap_path}") + return [] + + def check_url(self, url): + """Check a single URL and return result.""" + try: + response = self.session.get(url, timeout=self.timeout, allow_redirects=True) + return { + 'url': url, + 'status_code': response.status_code, + 'final_url': response.url, + 'redirected': url != response.url, + 'error': None + } + except requests.exceptions.RequestException as e: + return { + 'url': url, + 'status_code': None, + 'final_url': None, + 'redirected': False, + 'error': str(e) + } + + def check_urls(self, urls): + """Check all URLs concurrently.""" + results = [] + failed_urls = [] + redirect_urls = [] + + print(f"🔍 Checking {len(urls)} URLs...") + print(f"⚙️ Using {self.max_workers} workers with {self.delay}s delay") + print("=" * 60) + + with ThreadPoolExecutor(max_workers=self.max_workers) as executor: + # Submit all URL check tasks + future_to_url = {executor.submit(self.check_url, url): url for url in urls} + + for i, future in enumerate(as_completed(future_to_url), 1): + result = future.result() + results.append(result) + + # Add delay between requests + if self.delay > 0: + time.sleep(self.delay) + + # Print progress + if i % 50 == 0 or i == len(urls): + print(f"Progress: {i}/{len(urls)} URLs checked") + + # Categorize results + if result['error']: + failed_urls.append(result) + print(f"❌ ERROR: {result['url']} - {result['error']}") + elif result['status_code'] == 404: + failed_urls.append(result) + print(f"❌ 404: {result['url']}") + elif result['status_code'] >= 400: + failed_urls.append(result) + print(f"⚠️ {result['status_code']}: {result['url']}") + elif result['redirected']: + redirect_urls.append(result) + print(f"🔄 REDIRECT: {result['url']} → {result['final_url']}") + elif result['status_code'] == 200: + print(f"✅ OK: {result['url']}") + else: + print(f"ℹ️ {result['status_code']}: {result['url']}") + + return results, failed_urls, redirect_urls + + def print_summary(self, results, failed_urls, redirect_urls): + """Print summary of results.""" + print("\n" + "=" * 60) + print("📊 SUMMARY") + print("=" * 60) + + total_urls = len(results) + success_urls = len([r for r in results if r['status_code'] == 200 and not r['error']]) + + print(f"Total URLs checked: {total_urls}") + print(f"✅ Successful (200): {success_urls}") + print(f"🔄 Redirects: {len(redirect_urls)}") + print(f"❌ Failed/Errors: {len(failed_urls)}") + + if failed_urls: + print(f"\n❌ FAILED URLS ({len(failed_urls)}):") + print("-" * 40) + for result in failed_urls: + if result['error']: + print(f"ERROR: {result['url']} - {result['error']}") + else: + print(f"{result['status_code']}: {result['url']}") + + if redirect_urls: + print(f"\n🔄 REDIRECTED URLS ({len(redirect_urls)}):") + print("-" * 40) + for result in redirect_urls: + print(f"{result['url']} → {result['final_url']}") + + return len(failed_urls) == 0 + +def main(): + parser = argparse.ArgumentParser(description='Check URLs in Fern sitemap for 404 errors') + parser.add_argument('--sitemap', default='fern/docs.xml', help='Path to sitemap XML file') + parser.add_argument('--workers', type=int, default=10, help='Number of concurrent workers') + parser.add_argument('--delay', type=float, default=0.1, help='Delay between requests (seconds)') + parser.add_argument('--timeout', type=int, default=30, help='Request timeout (seconds)') + parser.add_argument('--max-urls', type=int, help='Limit number of URLs to check (for testing)') + + args = parser.parse_args() + + checker = URLChecker(args.sitemap, args.workers, args.delay, args.timeout) + + print("🚀 Fern Docs URL Checker") + print("=" * 60) + + # Parse sitemap + urls = checker.parse_sitemap() + if not urls: + print("❌ No URLs found in sitemap") + sys.exit(1) + + # Limit URLs if specified (for testing) + if args.max_urls: + urls = urls[:args.max_urls] + print(f"🔬 Testing mode: checking first {len(urls)} URLs") + + # Check URLs + results, failed_urls, redirect_urls = checker.check_urls(urls) + + # Print summary and exit + success = checker.print_summary(results, failed_urls, redirect_urls) + sys.exit(0 if success else 1) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/docs.xml b/docs.xml new file mode 100644 index 000000000..d9eeb3791 --- /dev/null +++ b/docs.xml @@ -0,0 +1,3927 @@ +This XML file does not appear to have any style information associated with it. The document tree is shown below. + + +https://buildwithfern.com/learn + + +https://buildwithfern.com/learn/api-definition/introduction/what-is-an-api-definition + + +https://buildwithfern.com/learn/api-definition/introduction/what-is-the-fern-folder + + +https://buildwithfern.com/learn/api-definition/openapi/overview + + +https://buildwithfern.com/learn/api-definition/openapi/authentication + + +https://buildwithfern.com/learn/api-definition/openapi/servers + + +https://buildwithfern.com/learn/api-definition/openapi/endpoints/http + + +https://buildwithfern.com/learn/api-definition/openapi/endpoints/multipart + + +https://buildwithfern.com/learn/api-definition/openapi/endpoints/sse + + +https://buildwithfern.com/learn/api-definition/openapi/webhooks + + +https://buildwithfern.com/learn/api-definition/openapi/audiences + + +https://buildwithfern.com/learn/api-definition/openapi/extensions/method-names + + +https://buildwithfern.com/learn/api-definition/openapi/extensions/parameter-names + + +https://buildwithfern.com/learn/api-definition/openapi/extensions/others + + +https://buildwithfern.com/learn/api-definition/openapi/overlay-customizations + + +https://buildwithfern.com/learn/api-definition/openapi/sync-specification + + +https://buildwithfern.com/learn/api-definition/openapi/frameworks/fastapi + + +https://buildwithfern.com/learn/api-definition/fern/overview + + +https://buildwithfern.com/learn/api-definition/fern/authentication + + +https://buildwithfern.com/learn/api-definition/fern/types + + +https://buildwithfern.com/learn/api-definition/fern/endpoints + + +https://buildwithfern.com/learn/api-definition/fern/endpoints/http + + +https://buildwithfern.com/learn/api-definition/fern/endpoints/multipart + + +https://buildwithfern.com/learn/api-definition/fern/endpoints/bytes + + +https://buildwithfern.com/learn/api-definition/fern/endpoints/sse + + +https://buildwithfern.com/learn/api-definition/fern/webhooks + + +https://buildwithfern.com/learn/api-definition/fern/websockets + + +https://buildwithfern.com/learn/api-definition/fern/errors + + +https://buildwithfern.com/learn/api-definition/fern/imports + + +https://buildwithfern.com/learn/api-definition/fern/examples + + +https://buildwithfern.com/learn/api-definition/fern/audiences + + +https://buildwithfern.com/learn/api-definition/fern/availability + + +https://buildwithfern.com/learn/api-definition/fern/api-yml/overview + + +https://buildwithfern.com/learn/api-definition/fern/api-yml/environments + + +https://buildwithfern.com/learn/api-definition/fern/api-yml/global-headers + + +https://buildwithfern.com/learn/api-definition/fern/api-yml/errors + + +https://buildwithfern.com/learn/api-definition/fern/packages + + +https://buildwithfern.com/learn/api-definition/fern/depending-on-other-ap-is + + +https://buildwithfern.com/learn/api-definition/fern/export-openapi + + +https://buildwithfern.com/learn/sdks/introduction/overview + + +https://buildwithfern.com/learn/sdks/introduction/language-support + + +https://buildwithfern.com/learn/sdks/introduction/customer-showcase + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/7/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/5/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/5/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/4/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/4/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/4/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/4/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/4/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/3/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/3/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/3/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/3/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2025/1/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/12/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/11/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/10/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/9/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/9/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/9/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/9/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/8/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/7/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/6/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/5/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/4/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/3/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/3/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/2/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/2/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/2/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/2/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ts/2024/2/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/7/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/6/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/5/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/4/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/3/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/2/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/2/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/2/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2025/1/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/12/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/12/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/11/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/11/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/11/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/11/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/11/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/10/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/10/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/9/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/8/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/7/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/5/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/4/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/3/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/2/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/1/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/1/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/1/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/1/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/python/2024/1/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/7/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/7/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/6/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/5/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/3/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/2/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/2/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/2/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/1/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/1/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/1/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/1/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2025/1/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/12/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/11/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/10/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/10/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/9/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/8/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/8/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/8/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/8/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/7/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/7/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/6/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/5/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/5/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/5/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/4/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/3/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/3/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/2/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/1/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/1/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/1/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/1/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2024/1/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2023/12/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2023/11/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2023/11/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/go/2023/10/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/5/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/5/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/5/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/4/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/3/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/2/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2025/1/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/11/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/10/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/10/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/10/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/8/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/7/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/6/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/6/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/6/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/6/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/csharp/2024/5/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/7/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/7/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/7/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/7/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/6/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/6/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/6/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/6/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/5/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/28 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/4/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/31 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/3/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/2/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/19 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/16 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2025/1/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/12/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/12/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/12/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/12/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/12/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/9/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/9/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/9/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/9/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/7/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/7/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/7/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/7/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/6/26 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/6/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/6/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/6/6 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/6/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/5/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/3/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/3/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/23 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/21 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/14 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/java/2024/2/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/7/10 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/7/2 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/7/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/6/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/4/29 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/4/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/3/4 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/11 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/7 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2025/2/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/12/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/11/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/10/30 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/10/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/9/25 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/php/2024/9/24 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/8/5 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/7/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/7/3 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/7/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/6/13 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/5/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/5/17 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/4/9 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/4/8 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/3/22 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/3/18 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/3/12 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/2/27 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/2/20 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/2/15 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/2/1 + + +https://buildwithfern.com/learn/sdks/introduction/changelog/ruby/2024/1/30 + + +https://buildwithfern.com/learn/sdks/capabilities/strongly-typed + + +https://buildwithfern.com/learn/sdks/capabilities/method-names + + +https://buildwithfern.com/learn/sdks/capabilities/schema-validation + + +https://buildwithfern.com/learn/sdks/capabilities/discriminated-unions + + +https://buildwithfern.com/learn/sdks/capabilities/multipart-form-data + + +https://buildwithfern.com/learn/sdks/capabilities/forward-compatibility + + +https://buildwithfern.com/learn/sdks/capabilities/registry-publishing + + +https://buildwithfern.com/learn/sdks/capabilities/auto-pagination + + +https://buildwithfern.com/learn/sdks/capabilities/oauth + + +https://buildwithfern.com/learn/sdks/capabilities/retries + + +https://buildwithfern.com/learn/sdks/capabilities/webhook-signature-verification + + +https://buildwithfern.com/learn/sdks/capabilities/idempotency-headers + + +https://buildwithfern.com/learn/sdks/capabilities/server-sent-events + + +https://buildwithfern.com/learn/sdks/capabilities/integration-tests + + +https://buildwithfern.com/learn/sdks/capabilities/code-snippets + + +https://buildwithfern.com/learn/sdks/capabilities/custom-code + + +https://buildwithfern.com/learn/sdks/capabilities/merging-apis + + +https://buildwithfern.com/learn/sdks/capabilities/websockets + + +https://buildwithfern.com/learn/sdks/capabilities/mcp + + +https://buildwithfern.com/learn/sdks/reference/configuration + + +https://buildwithfern.com/learn/sdks/guides/generate-your-first-sdk + + +https://buildwithfern.com/learn/sdks/guides/preview-your-sdk-locally + + +https://buildwithfern.com/learn/sdks/guides/publish-a-public-facing-sdk + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/npm-type-script + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/pypi + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/nuget + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/pkgsite + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/maven-central + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/rubygems + + +https://buildwithfern.com/learn/sdks/guides/publish-to-package-managers/packagist + + +https://buildwithfern.com/learn/docs/getting-started/overview + + +https://buildwithfern.com/learn/docs/getting-started/customer-showcase + + +https://buildwithfern.com/learn/docs/getting-started/quickstart + + +https://buildwithfern.com/learn/docs/getting-started/global-configuration + + +https://buildwithfern.com/learn/docs/getting-started/project-structure + + +https://buildwithfern.com/learn/docs/getting-started/development + + +https://buildwithfern.com/learn/docs/getting-started/publish-your-docs + + +https://buildwithfern.com/learn/docs/getting-started/changelog + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/6/5 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/5/23 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/5/22 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/5/20 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/5/13 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/5/2 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/4/29 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/4/28 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/4/27 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/2/4 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/1/21 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2025/1/14 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/12/30 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/11/27 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/10/31 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/9/24 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/8/20 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/7/30 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/6/25 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/5/22 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/4/20 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/3/24 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/2/22 + + +https://buildwithfern.com/learn/docs/getting-started/changelog/2024/1/24 + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/navigation + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/product-switching + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/versioning + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/announcements + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/links-and-redirects + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/customizing-slugs + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/hiding-content + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/custom-css-global-js + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/pull-request-preview + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/custom-domain + + +https://buildwithfern.com/learn/user-feedback + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/rbac + + +https://buildwithfern.com/learn/docs/building-and-customizing-your-docs/search + + +https://buildwithfern.com/learn/docs/content/write-markdown + + +https://buildwithfern.com/learn/docs/content/components/overview + + +https://buildwithfern.com/learn/docs/content/components/accordions + + +https://buildwithfern.com/learn/docs/content/components/accordion-groups + + +https://buildwithfern.com/learn/docs/content/components/aside + + +https://buildwithfern.com/learn/docs/content/components/button + + +https://buildwithfern.com/learn/docs/content/components/callouts + + +https://buildwithfern.com/learn/docs/content/components/cards + + +https://buildwithfern.com/learn/docs/content/components/card-groups + + +https://buildwithfern.com/learn/docs/content/components/code-blocks + + +https://buildwithfern.com/learn/docs/content/components/embed + + +https://buildwithfern.com/learn/docs/content/components/request-snippet + + +https://buildwithfern.com/learn/docs/content/components/response-snippet + + +https://buildwithfern.com/learn/docs/content/components/schema-snippet + + +https://buildwithfern.com/learn/docs/content/components/frames + + +https://buildwithfern.com/learn/docs/content/components/icons + + +https://buildwithfern.com/learn/docs/content/components/paramfield + + +https://buildwithfern.com/learn/docs/content/components/steps + + +https://buildwithfern.com/learn/docs/content/components/tabs + + +https://buildwithfern.com/learn/docs/content/components/tooltips + + +https://buildwithfern.com/learn/docs/content/custom-react-components + + +https://buildwithfern.com/learn/docs/content/frontmatter + + +https://buildwithfern.com/learn/docs/content/reusable-snippets + + +https://buildwithfern.com/learn/docs/content/changelog + + +https://buildwithfern.com/learn/docs/content/visual-editor + + +https://buildwithfern.com/learn/docs/api-references/generate-api-ref + + +https://buildwithfern.com/learn/docs/api-references/sdk-snippets + + +https://buildwithfern.com/learn/docs/api-references/http-snippets + + +https://buildwithfern.com/learn/docs/api-references/api-explorer + + +https://buildwithfern.com/learn/docs/api-references/api-explorer/auto-populate-api-keys + + +https://buildwithfern.com/learn/docs/api-references/endpoint-errors + + +https://buildwithfern.com/learn/docs/api-references/audiences + + +https://buildwithfern.com/learn/docs/api-references/customize-api-reference-layout + + +https://buildwithfern.com/learn/docs/api-references/write-markdown-in-api-reference + + +https://buildwithfern.com/learn/docs/api-references/generate-webhook-reference + + +https://buildwithfern.com/learn/docs/api-references/server-urls + + +https://buildwithfern.com/learn/docs/api-references/generate-websocket-ref + + +https://buildwithfern.com/learn/docs/api-references/generate-openrpc-ref + + +https://buildwithfern.com/learn/docs/integrations/overview + + +https://buildwithfern.com/learn/docs/integrations/analytics/google + + +https://buildwithfern.com/learn/docs/integrations/analytics/posthog + + +https://buildwithfern.com/learn/docs/integrations/analytics/fullstory + + +https://buildwithfern.com/learn/docs/integrations/analytics/segment + + +https://buildwithfern.com/learn/docs/integrations/analytics/mixpanel + + +https://buildwithfern.com/learn/docs/integrations/support/intercom + + +https://buildwithfern.com/learn/docs/integrations/postman + + +https://buildwithfern.com/learn/docs/integrations/feature-flags + + +https://buildwithfern.com/learn/docs/developer-tools/llms-txt + + +https://buildwithfern.com/learn/docs/developer-tools/cursor + + +https://buildwithfern.com/learn/docs/developer-tools/gitlab + + +https://buildwithfern.com/learn/docs/developer-tools/vale + + +https://buildwithfern.com/learn/docs/developer-tools/view-markdown + + +https://buildwithfern.com/learn/ask-fern/overview + + +https://buildwithfern.com/learn/ask-fern/customer-showcase + + +https://buildwithfern.com/learn/ask-fern/custom-prompting + + +https://buildwithfern.com/learn/ask-fern/citations + + +https://buildwithfern.com/learn/cli-reference/overview + + +https://buildwithfern.com/learn/cli-reference/options + + +https://buildwithfern.com/learn/cli-reference/commands + + +https://buildwithfern.com/learn/cli-reference/changelog + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/7/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/6/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/5/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/4/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/3/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/2/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2025/1/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/12/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/11/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/10/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/9/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/8/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/7/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/6/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/5/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/4/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/3/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/2/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2024/1/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/12/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/11/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/10/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/9/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/8/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/7/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/6/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/5/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/4/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/26 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/10 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/3 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/3/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/25 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/7 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/5 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/4 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/2 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/2/1 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/31 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/30 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/29 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/27 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/22 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/21 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/20 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/19 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/18 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/17 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/13 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/12 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/11 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/9 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/8 + + +https://buildwithfern.com/learn/cli-reference/changelog/2023/1/6 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/28 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/24 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/23 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/16 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/15 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/14 + + +https://buildwithfern.com/learn/cli-reference/changelog/2022/12/13 + + +https://buildwithfern.com/learn/api-reference/overview + + +https://buildwithfern.com/learn/api-reference/snippets/get + + +https://buildwithfern.com/learn/api-reference/snippets/load + + +https://buildwithfern.com/learn/api-reference/tokens/generate + + +https://buildwithfern.com/learn/api-reference/tokens/revoke + + \ No newline at end of file diff --git a/fern/footer-dist/output.js b/fern/footer-dist/output.js index 159d72776..781855886 100644 --- a/fern/footer-dist/output.js +++ b/fern/footer-dist/output.js @@ -316,4 +316,4 @@ Error generating stack: `+o.message+` min-width: 200px; } } - `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/v2/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"/learn/v2/docs/getting-started/overview",className:"footer-link",children:"Docs"}),f.jsx("a",{href:"/ask-fern",className:"footer-link",children:"Ask Fern"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Ei="fern-footer",Ri=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Ei);n||(n=document.createElement("div"),n.setAttribute("id",Ei),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ri(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ri()}).observe(document.body,{childList:!0,subtree:!0})}); + `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/v2/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"/learn/v2/docs/getting-started/overview",className:"footer-link",children:"Docs"}),f.jsx("a",{href:"/learn/v2/ask-fern",className:"footer-link",children:"Ask Fern"}),f.jsx("a",{href:"/learn/v2/api-definition/introduction/what-is-an-api-definition",className:"footer-link",children:"API Definition"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Ei="fern-footer",Ri=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Ei);n||(n=document.createElement("div"),n.setAttribute("id",Ei),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ri(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ri()}).observe(document.body,{childList:!0,subtree:!0})}); diff --git a/fern/products/docs/pages/getting-started/overview.mdx b/fern/products/docs/pages/getting-started/overview.mdx index 8b61b2108..260a182b2 100644 --- a/fern/products/docs/pages/getting-started/overview.mdx +++ b/fern/products/docs/pages/getting-started/overview.mdx @@ -1,5 +1,5 @@ --- -title: Documentation +title: Fern Docs description: Meet documentation that is stunning by default, AI-ready, and designed to convert. --- @@ -9,8 +9,14 @@ description: Meet documentation that is stunning by default, AI-ready, and desig {/* Dashed Pattern - Right Side */}
+ + {/*

Meet documentation that is stunning by default, AI-ready, and designed to convert.

*/} + +

Get started

+

Import your existing syling and specs to get started with Fern Docs.

+ - +
Quickstart @@ -27,7 +33,7 @@ description: Meet documentation that is stunning by default, AI-ready, and desig
- +
Configure with ease @@ -43,8 +49,13 @@ description: Meet documentation that is stunning by default, AI-ready, and desig
- - + + +

Features

+

Build your own components, enable Ask Fern, and make docs writing approachable.

+ + +
Flexible component library @@ -77,5 +88,39 @@ description: Meet documentation that is stunning by default, AI-ready, and desig
+ + +
+ Visual Editor + +
+
+ Bring your own API Spec + Arrow right light + Arrow right light +
+
+

Use one or more of an OpenAPI, AsyncAPI, gRPC, OpenRPC, and the Fern Definition spec.

+
+
+
+
+ + +
+ Visual Editor + +
+
+ Ask Fern + Arrow right light + Arrow right light +
+
+

A personalized chatbot that can answer questions about your documentation.

+
+
+
+
diff --git a/fern/products/home/home.yml b/fern/products/home/home.yml index 28ed4eccc..ee29ac746 100644 --- a/fern/products/home/home.yml +++ b/fern/products/home/home.yml @@ -1,3 +1,3 @@ navigation: - - page: What is AI search? + - page: Home path: ./pages/welcome.mdx \ No newline at end of file