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/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..781855886 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:"/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 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 = () => {

Documentation