1<!DOCTYPE html><html lang="en" data-scroll-behavior="smooth" class="commitmono_646427da-module__jSfceG__variable greed_2f85d8aa-module__tlRNVa__variable antialiased dark font-sans"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/immutable/chunks/0tom-9wncp29o.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/1tgmw_008sseu.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/1laydpwcl507_.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/2a1kg4-oqt4cr.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/30agtboqrg1qd.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/1re0slxr72nbi.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/39x7xm7ajfqc7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/36mbjjiqpcnpb.css" data-precedence="next"/><link href="/_next/static/immutable/chunks/2z0fhphd4y6k9.css" rel="stylesheet" as="style" data-precedence="dynamic"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/immutable/chunks/2qawd7zl0koov.js"/>
1<script src="/_next/static/immutable/chunks/2v8nt9btpwu_q.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3_19671qw05h-.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3oipcz0d9z6py.js" async=""></script>
1<script src="/_next/static/immutable/chunks/0qeuy97hubk1f.js" async=""></script>
1<script src="/_next/static/immutable/chunks/27d64wea6jy0k.js" async=""></script>
1<script src="/_next/static/immutable/chunks/turbopack-33v1xyk0avm5w.js" async=""></script>
1<script src="/_next/static/immutable/chunks/27ckhi906u_js.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2_nmhy6ddcc7z.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/3wgrhs5tzkd_f.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/3j3d8v8nq53p2.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/3mvch_c-usue6.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/1xk_k1w8lv0r6.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2q41lq0u-2h2d.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2oux9zkscqjey.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/0iw0pry_5t_ad.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/01kjk1ynqkjsw.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/0uh0do2r04yd-.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2yraze2kc2-nv.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/294_4ng-gmvuz.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2p0nsw-od_6cr.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/03ey9nhyp1anf.js" async="" crossorigin=""></script>
1<link rel="preload" href="/_next/static/immutable/chunks/3l-4jj81zpd-v.css" as="style"/><link rel="preload" href="/_next/static/immutable/chunks/3gb0tb3v514tx.css" as="style"/><link rel="preload" href="/_next/static/immutable/chunks/391otn6taey06.js" as="script" fetchPriority="low"/><meta name="theme-color" content="#020202"/><meta name="color-scheme" content="dark"/><title>Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra</title><meta name="description" content="Mastra.ai articles - In-depth pieces on building AI agents."/><meta name="sentry-trace" content="4975ae8c3d0485517117640a6ee63c45-f9c51f2b85858a31-1"/><meta name="baggage" content="sentry-environment=vercel-production,sentry-release=ae47bac364170a850db499abe60f14efdc3faf1c,sentry-public_key=eff91afdc73645f3f7de729456be7d68,sentry-trace_id=4975ae8c3d0485517117640a6ee63c45,sentry-org_id=4509090735783936,sentry-transaction=GET%20%2Ftemplates%2F%5Bslug%5D,sentry-sampled=true,sentry-sample_rand=0.9942697144454259,sentry-sample_rate=1"/><link rel="canonical" href="https://mastra.ai/articles"/><meta property="og:title" content="Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra"/><meta property="og:description" content="Mastra.ai articles - In-depth pieces on building AI agents."/><meta property="og:url" content="https://mastra.ai/articles"/><meta property="og:image" content="https://mastra.ai/api/og/page?title=Articles"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra"/><meta name="twitter:description" content="Mastra.ai articles - In-depth pieces on building AI agents."/><meta name="twitter:image" content="https://mastra.ai/api/og/page?title=Articles"/><link rel="icon" href="/favicon/new-brand/favicon.ico" sizes="32x32" type="image/x-icon"/><link rel="icon" href="/favicon/new-brand/icon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/favicon/new-brand/apple-touch-icon.png"/><link rel="icon" href="/favicon/new-brand/icon-512.png" type="image/png" sizes="512x512"/><link rel="icon" href="/favicon/new-brand/icon-192.png" type="image/png" sizes="192x192"/><meta name="next-size-adjust" content=""/><meta name="sentry-trace" content="151449c1593af467cc0b3300d3d83e8d-8a3ee4017ffb065b-1"/><meta name="baggage" content="sentry-environment=vercel-production,sentry-release=ae47bac364170a850db499abe60f14efdc3faf1c,sentry-public_key=eff91afdc73645f3f7de729456be7d68,sentry-trace_id=151449c1593af467cc0b3300d3d83e8d,sentry-org_id=4509090735783936,sentry-transaction=GET%20%2Farticles,sentry-sampled=true,sentry-sample_rand=0.19434036969920532,sentry-sample_rate=1"/>
1<script src="/_next/static/immutable/chunks/0c0hxoamwjsbw.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div>
1<script> 2(function () { 3 try { 4 var ATTR = "data-auth-hint"; 5 var EVENT = "mastra-auth-hint"; 6 var WINDOW_KEY = "__mastraAuthHint"; 7 8 function resolve(authed) { 9 try { 10 document.documentElement.setAttribute( 11 ATTR, 12 authed === true ? "authed" : authed === false ? "anon" : "unknown" 13 ); 14 } catch (e) {} 15 try { 16 document.dispatchEvent(new CustomEvent(EVENT)); 17 } catch (e) {} 18 } 19 20 function parseHint(data) { 21 if (typeof data !== "object" || data === null) return null; 22 if (!("authed" in data)) return null; 23 var value = data.authed; 24 return typeof value === "boolean" ? value : null; 25 } 26 27 function fetchHint() { 28 var promise = fetch("/api/auth/hint", { credentials: "same-origin" }) 29 .then(function (response) { 30 if (!response.ok) { 31 resolve(null); 32 return null; 33 } 34 return response.json(); 35 }) 36 .then(function (data) { 37 resolve(parseHint(data)); 38 }) 39 .catch(function () { 40 resolve(null); 41 }) 42 .finally(function () { 43 if (window[WINDOW_KEY] === promise) { 44 window[WINDOW_KEY] = null; 45 } 46 }); 47 window[WINDOW_KEY] = promise; 48 return promise; 49 } 50 51 try { 52 document.documentElement.setAttribute(ATTR, "unknown"); 53 } catch (e) {} 54 55 window[WINDOW_KEY] = null; 56 fetchHint(); 57 } catch (e) {} 58})(); 59</script>
59<style id="c15t-theme">:root, .c15t-theme-root { 60--c15t-primary: #ffffff; 61--c15t-primary-hover: rgba(255, 255, 255, 0.9); 62--c15t-surface: #0f0f0f; 63--c15t-surface-hover: #171717; 64--c15t-border: #1c1c1c; 65--c15t-border-hover: #393939; 66--c15t-text: #f0f0f0; 67--c15t-text-muted: #939393; 68--c15t-text-on-primary: #000000; 69--c15t-overlay: rgba(0, 0, 0, 0.6); 70--c15t-switch-track: #262626; 71--c15t-switch-track-active: #ffffff; 72--c15t-switch-thumb: #000000; 73--c15t-font-family: var(--greed), ui-sans-serif, system-ui, sans-serif; 74--c15t-font-size-sm: 0.875rem; 75--c15t-font-size-base: 1rem; 76--c15t-font-size-lg: 1.125rem; 77--c15t-font-weight-normal: 400; 78--c15t-font-weight-medium: 500; 79--c15t-font-weight-semibold: 600; 80--c15t-line-height-tight: 1.25; 81--c15t-line-height-normal: 1.5; 82--c15t-line-height-relaxed: 1.75; 83--c15t-space-xs: 0.25rem; 84--c15t-space-sm: 0.5rem; 85--c15t-space-md: 1rem; 86--c15t-space-lg: 1.5rem; 87--c15t-space-xl: 2rem; 88--c15t-radius-sm: 0.44rem; 89--c15t-radius-md: 10px; 90--c15t-radius-lg: 0.44rem; 91--c15t-radius-full: 9999px; 92--c15t-shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05); 93--c15t-shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08); 94--c15t-shadow-lg: 0 8px 24px hsla(0, 0%, 0%, 0.12); 95--c15t-duration-fast: 80ms; 96--c15t-duration-normal: 150ms; 97--c15t-duration-slow: 200ms; 98--c15t-easing: cubic-bezier(0.4, 0, 0.2, 1); 99--c15t-easing-out: cubic-bezier(0.215, 0.61, 0.355, 1); 100--c15t-easing-in-out: cubic-bezier(0.645, 0.045, 0.355, 1); 101--c15t-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1); 102} 103 104:root.dark, .dark .c15t-theme-root, :root.c15t-dark, .c15t-dark .c15t-theme-root { 105--c15t-primary: #ffffff; 106--c15t-primary-hover: rgba(255, 255, 255, 0.9); 107--c15t-surface: #0f0f0f; 108--c15t-surface-hover: #171717; 109--c15t-border: #1c1c1c; 110--c15t-border-hover: #393939; 111--c15t-text: #f0f0f0; 112--c15t-text-muted: #939393; 113--c15t-text-on-primary: #000000; 114--c15t-overlay: rgba(0, 0, 0, 0.6); 115--c15t-switch-track: #262626; 116--c15t-switch-track-active: #ffffff; 117--c15t-switch-thumb: #000000; 118--c15t-font-family: var(--greed), ui-sans-serif, system-ui, sans-serif; 119--c15t-font-size-sm: 0.875rem; 120--c15t-font-size-base: 1rem; 121--c15t-font-size-lg: 1.125rem; 122--c15t-font-weight-normal: 400; 123--c15t-font-weight-medium: 500; 124--c15t-font-weight-semibold: 600; 125--c15t-line-height-tight: 1.25; 126--c15t-line-height-normal: 1.5; 127--c15t-line-height-relaxed: 1.75; 128--c15t-space-xs: 0.25rem; 129--c15t-space-sm: 0.5rem; 130--c15t-space-md: 1rem; 131--c15t-space-lg: 1.5rem; 132--c15t-space-xl: 2rem; 133--c15t-radius-sm: 0.44rem; 134--c15t-radius-md: 10px; 135--c15t-radius-lg: 0.44rem; 136--c15t-radius-full: 9999px; 137--c15t-shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05); 138--c15t-shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08); 139--c15t-shadow-lg: 0 8px 24px hsla(0, 0%, 0%, 0.12); 140--c15t-duration-fast: 80ms; 141--c15t-duration-normal: 150ms; 142--c15t-duration-slow: 200ms; 143--c15t-easing: cubic-bezier(0.4, 0, 0.2, 1); 144--c15t-easing-out: cubic-bezier(0.215, 0.61, 0.355, 1); 145--c15t-easing-in-out: cubic-bezier(0.645, 0.045, 0.355, 1); 146--c15t-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1); 147} 148 149/* 150 * Utility class to disable transitions during theme switching. 151 * Apply this class to the root element before switching themes, 152 * then remove it after a short delay to prevent flash of 153 * animated content during the color scheme change. 154 * 155 * Example usage: 156 * document.documentElement.classList.add('c15t-no-transitions'); 157 * // Switch theme... 158 * requestAnimationFrame(() => { 159 * document.documentElement.classList.remove('c15t-no-transitions'); 160 * }); 161 */ 162.c15t-no-transitions, 163.c15t-no-transitions *, 164.c15t-no-transitions *::before, 165.c15t-no-transitions *::after { 166 transition: none !important; 167 animation: none !important; 168}</style>
168<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Mastra","legalName":"Kepler Software Inc","alternateName":["Mastra AI","mastra-ai","@mastra/core"],"url":"https://mastra.ai","logo":{"@type":"ImageObject","url":"https://mastra.ai/brand/mastra-logo-wordmark.png","width":4096,"height":1001,"caption":"Mastra"},"disambiguatingDescription":"Mastra is an open-source TypeScript framework for building AI agents and AI-powered applications, created by the team behind Gatsby.js. Mastra is not affiliated with Mastra Italian Bakery Bistro in Utah or any European consumer product brands that share the Mastra name.","description":"Mastra is an open-source TypeScript framework for building AI-powered applications and agents. Mastra provides AI primitives including agents, workflows, workspaces, memory, MCP servers, observability and evals for TypeScript and JavaScript developers.","foundingDate":"2024-10","founder":[{"@type":"Person","name":"Sam Bhagwat","jobTitle":"CEO","sameAs":["https://www.linkedin.com/in/sambhagwat","https://x.com/calcsam","https://mastra.ai/authors/sam-bhagwat"],"alumniOf":{"@type":"CollegeOrUniversity","name":"Stanford University"},"affiliation":{"@type":"Organization","name":"Gatsby","url":"https://www.gatsbyjs.com","description":"Gatsby is an open-source React web framework used by hundreds of thousands of developers."}},{"@type":"Person","name":"Abhi Aiyer","jobTitle":"CTO","sameAs":["https://www.linkedin.com/in/abhi-aiyer-aa41bb42","https://x.com/abhiaiyer","https://github.com/abhiaiyer91","https://mastra.ai/authors/abhi-aiyer"],"affiliation":{"@type":"Organization","name":"Gatsby","url":"https://www.gatsbyjs.com","description":"Gatsby is an open-source React web framework used by hundreds of thousands of developers."}},{"@type":"Person","name":"Shane Thomas","jobTitle":"CPO","sameAs":["https://www.linkedin.com/in/smthomas3","https://x.com/smthomas3","https://github.com/smthomas","https://mastra.ai/authors/shane-thomas"],"affiliation":{"@type":"Organization","name":"Gatsby","url":"https://www.gatsbyjs.com","description":"Gatsby is an open-source React web framework used by hundreds of thousands of developers."}}],"sameAs":["https://github.com/mastra-ai","https://github.com/mastra-ai/mastra","https://x.com/mastra","https://www.youtube.com/@mastra-ai","https://www.ycombinator.com/companies/mastra","https://www.crunchbase.com/organization/mastra-44ba","https://www.producthunt.com/products/mastra","https://www.npmjs.com/package/@mastra/core","https://dev.to/mastra_ai"],"knowsAbout":["TypeScript","AI agents","AI agent frameworks","Model Context Protocol","large language models","retrieval-augmented generation","JavaScript","open-source software"],"memberOf":{"@type":"Organization","name":"Y Combinator","url":"https://www.ycombinator.com","description":"Y Combinator is a startup accelerator based in San Francisco."},"makesOffer":[{"@type":"Offer","itemOffered":{"@type":["SoftwareSourceCode","SoftwareApplication"],"name":"Mastra Framework","alternateName":["Mastra AI Framework","@mastra/core"],"description":"Open-source TypeScript framework for building AI agents and AI-powered applications with workflows, workspaces, memory, MCP servers, observability, and evals.","url":"https://mastra.ai/ai-agent-framework","codeRepository":"https://github.com/mastra-ai/mastra","programmingLanguage":"TypeScript","runtimePlatform":"Node.js","license":"https://www.apache.org/licenses/LICENSE-2.0","applicationCategory":"AI Agent Framework","operatingSystem":"Cross-platform","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"bestRating":5,"ratingCount":28313}}},{"@type":"Offer","itemOffered":{"@type":"SoftwareApplication","name":"Mastra Studio","description":"Monitor, improve, and collaborate on your agents. Understand agent performance, iterate fast, and ship better agents with Studio.","url":"https://mastra.ai/studio","applicationCategory":"DeveloperApplication","operatingSystem":"Cross-platform","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"bestRating":5,"ratingCount":28313}}},{"@type":"Offer","itemOffered":{"@type":"SoftwareApplication","name":"Mastra Server","description":"Deploy from the CLI, monitor every deploy, and connect to any front-end. Run your Mastra agents on a platform purpose-built for them.","url":"https://mastra.ai/ai-agent-deployment","applicationCategory":"DeveloperApplication","operatingSystem":"Cross-platform","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"bestRating":5,"ratingCount":28313}}},{"@type":"Offer","itemOffered":{"@type":"SoftwareApplication","name":"Gateway","alternateName":["Mastra Gateway","Memory Gateway","AI Gateway"],"description":"Route all LLM traffic through a single gateway. Add observational memory, access 300+ models, and get transparent pricing.","url":"https://mastra.ai/ai-gateway","applicationCategory":"DeveloperApplication","operatingSystem":"Cross-platform","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"bestRating":5,"ratingCount":28313}}},{"@type":"Offer","itemOffered":{"@type":"SoftwareApplication","name":"Mastra Code","description":"AI coding agent that helps developers build software using Mastra's AI primitives, available as an interactive terminal interface.","url":"https://code.mastra.ai","applicationCategory":"DeveloperApplication","operatingSystem":"Cross-platform","isAccessibleForFree":true,"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"bestRating":5,"ratingCount":28313}}}]}</script>
168<div class="page flex flex-col w-full mx-auto font-sans"><div id="top" aria-hidden="true"></div><header class="header"><div class="header--top-bar"><div class="relative lg:hidden"><div style="-webkit-touch-callout:none"><a class="relative block h-[21.5px] w-22 md:h-[29.313px] md:w-30" aria-label="mastra" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 131 32" data-wordmark-layer="text" aria-hidden="true" class="block h-full w-full text-white"><path fill="currentColor" d="M56.557 22v-6.876q0-1.11-.662-1.772-.637-.685-1.701-.685-1.276 0-2.127.969t-.874 2.504V22H48.31V10.611h2.883v2.198a4.65 4.65 0 0 1 1.607-1.796q1.063-.685 2.457-.685 1.323 0 2.363.638 1.04.615 1.465 1.795a4.1 4.1 0 0 1 1.678-1.795q1.11-.639 2.504-.638 1.961 0 3.166 1.205 1.23 1.181 1.229 3.213V22h-2.883v-6.64q0-1.276-.661-1.984-.638-.71-1.749-.71-1.228 0-2.08.922-.85.922-.85 2.316V22zm18.687.33q-1.677 0-3-.779a5.8 5.8 0 0 1-2.056-2.174q-.733-1.37-.733-3.071 0-1.725.733-3.072a5.6 5.6 0 0 1 2.055-2.15q1.324-.803 2.978-.803 1.417 0 2.575.59a4.47 4.47 0 0 1 1.843 1.654v-1.914h2.883V22h-2.883v-1.914a4.4 4.4 0 0 1-1.843 1.678q-1.158.567-2.552.567m.733-2.291q1.583 0 2.622-1.016 1.04-1.016 1.04-2.717t-1.04-2.718-2.622-1.016q-1.608 0-2.6 1.04-.992 1.015-.992 2.694 0 1.677.992 2.717.993 1.016 2.6 1.016m14.077 2.292q-2.646 0-4.182-1.11-1.536-1.135-1.583-2.93l2.788-.19q0 .993.803 1.63.828.639 2.198.639 1.18 0 1.772-.426.614-.45.614-1.11 0-.637-.567-.969-.567-.33-1.441-.52a67 67 0 0 0-1.89-.378q-.993-.19-1.867-.52a3.7 3.7 0 0 1-1.442-.945q-.567-.614-.567-1.654 0-1.653 1.442-2.599 1.44-.969 3.757-.969 2.22 0 3.638.922 1.442.897 1.536 2.48l-2.717.166q-.024-.708-.662-1.205-.615-.52-1.819-.52-1.04 0-1.63.402-.591.378-.591.992 0 .591.567.898t1.441.473l1.867.354a8.8 8.8 0 0 1 1.89.52q.874.33 1.441.993.568.638.568 1.772 0 1.771-1.442 2.788-1.44 1.016-3.922 1.016m12.568 0q-1.89 0-3.072-1.016-1.158-1.016-1.157-2.86v-5.67h-2.505v-2.174h2.504v-3.45h2.883v3.45h3.733v2.174h-3.733v5.293q0 1.015.449 1.465.472.425 1.276.425.473 0 .992-.165.52-.189.898-.591l.449 2.363q-.402.33-1.158.543a5.7 5.7 0 0 1-1.559.213m4.297-.331V10.611h2.883v2.387a3.73 3.73 0 0 1 1.465-1.961q1.086-.757 2.552-.757.425 0 .827.095.425.07.85.26l-.283 2.74a4.5 4.5 0 0 0-.898-.4 3.3 3.3 0 0 0-.992-.143q-.496 0-1.111.166-.591.165-1.158.59-.543.426-.898 1.205-.354.757-.354 1.938V22zm14.658.33q-1.677 0-3-.779a5.8 5.8 0 0 1-2.056-2.174q-.732-1.37-.732-3.071 0-1.725.732-3.072a5.6 5.6 0 0 1 2.056-2.15q1.323-.803 2.977-.803 1.417 0 2.575.59a4.47 4.47 0 0 1 1.843 1.654v-1.914h2.883V22h-2.883v-1.914a4.4 4.4 0 0 1-1.843 1.678q-1.157.567-2.552.567m.733-2.291q1.583 0 2.623-1.016t1.039-2.717q0-1.702-1.039-2.718-1.04-1.016-2.623-1.016-1.607 0-2.599 1.04-.993 1.015-.993 2.694 0 1.677.993 2.717.992 1.016 2.599 1.016"></path></svg><span class="inline-block leading-none absolute" aria-hidden="true" data-logo-state="fallback" data-logo-visual-state="fallback" style="left:0.38167938931297707%;top:17.67121875%;width:25.954198473282442%;height:65.625%"><span data-logo-layer="fallback" class="pointer-events-none absolute text-white [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1000 610"><defs><clipPath id="logo-lottie-frame0_svg__a"><path d="M0 0h1000v610H0z"></path></clipPath></defs><g clip-path="url(#logo-lottie-frame0_svg__a)"><path fill="currentColor" d="M146.5 344.176c9.105 0 17.994.913 26.58 2.654a131.8 131.8 0 0 1 47.16 19.663 132.3 132.3 0 0 1 19.522 15.957 131.7 131.7 0 0 1 16.106 19.34 130 130 0 0 1 12.161 22.2 129 129 0 0 1 7.686 24.53 130 130 0 0 1 2.68 26.338c0 9.023-.923 17.831-2.68 26.339a129 129 0 0 1-7.686 24.531 130 130 0 0 1-12.16 22.198 131.7 131.7 0 0 1-16.107 19.34 132.3 132.3 0 0 1-19.521 15.957 131.85 131.85 0 0 1-47.161 19.663 133.7 133.7 0 0 1-26.58 2.654c-9.104 0-17.993-.915-26.578-2.656a131.8 131.8 0 0 1-47.156-19.664 132.3 132.3 0 0 1-19.517-15.957 131.6 131.6 0 0 1-16.103-19.34 130 130 0 0 1-12.16-22.198 129 129 0 0 1-7.683-24.53 130 130 0 0 1-2.68-26.337c0-9.022.923-17.83 2.68-26.337a129 129 0 0 1 7.684-24.531 130 130 0 0 1 12.159-22.197 131.6 131.6 0 0 1 16.103-19.34 132.3 132.3 0 0 1 19.517-15.957 132 132 0 0 1 22.401-12.049 131.7 131.7 0 0 1 24.755-7.615 133.7 133.7 0 0 1 26.578-2.656M319.144 4.46c18.208 0 35.556 3.656 51.334 10.27a132.2 132.2 0 0 1 41.923 28.005c11.935 11.824 21.593 25.904 28.268 41.539s10.367 32.824 10.369 50.868c0 3.073-.846 15.152-1.262 18.111-1.493 10.648-3.146 21.604-4.503 32.641-1.663 13.514-2.24 28.603-2.19 41.949.042 11.346 3.351 31.26 6.515 40.056 4.303 11.967 3.5 12.418 9.785 22.465l7.
16863 11.64 6.882 10.107 9.725 14.21c.703.855 14.282 21.69 18.261 21.688 4.138-.004 16.768-21.94 21.33-27.979l7.918-11.933 6.183-8.97 7.102-12.475c5.354-10.08 6.594-12.268 9.582-24.673 2.844-11.806 3.436-19.263 4.332-37.287.793-15.97-.54-26.739-2.22-40.594-1.353-11.155-4.847-44.897-4.847-47.032 0-17.567 3.893-34.423 10.237-49.724 6.687-16.131 16.536-30.643 28.784-42.78A132.2 132.2 0 0 1 632.2 16.558c15.778-6.613 33.124-10.27 51.332-10.271 15.856 0 31.06 2.772 45.143 7.856a132.1 132.1 0 0 1 48.119 30.418c11.934 11.824 21.593 25.904 28.268 41.539s10.366 32.825 10.366 50.869c0 3.508-1.098 17.26-1.636 20.618-1.425 8.894-2.971 17.976-4.356 27.128-2.105 13.905-6.374 29.145-5.919 42.958.434 13.184 1.196 26.446 3.634 37.18 3.462 15.249 8.525 21.77 13.05 30.667l9.872 15.641c8.903 9.176 10.273 14.173 21.351 21.31 11.836 7.624 25.139 12.28 38.763 16.483 13.53 4.174 25.657 10.573 37.103 18.437a132.1 132.1 0 0 1 29.991 28.449 130 130 0 0 1 19.499 35.947c4.749 13.487 7.33 27.98 7.331 43.072 0 18.045-3.69 35.235-10.363 50.87-6.674 15.635-16.33 29.715-28.262 41.539a132.1 132.1 0 0 1-44.68 29.125c-15.031 5.904-31.42 9.149-48.573 9.149-18.21 0-35.556-3.657-51.334-10.27a132.2 132.2 0 0 1-41.918-28.005c-11.895-11.788-21.528-25.817-28.2-41.394-6.71-15.674-10.424-32.914-10.424-51.014 0-3.874.842-20.59 1.462-24.285 8.879-52.919 10.688-57.614 8.334-84.925-1.276-14.809-4.638-29.037-11.14-40.11l-12.141-20.791-8.435-14.46c-4.155-6.395-10.373-19.158-14.683-19.475-3.328-.246-12.516 15.715-16.862 21.603l-8.268 11.524-8.803 12.796c-7.415 11.943-9.524 19.117-12.329 28.846-3.517 12.198-4.005 23.82-4.028 37.047-.02 10.963.787 22.118 1.973 33.244 1.504 14.104 3.616 28.164 5.424 41.729.376 2.823 1.139 14.332 1.139 17.257 0 18.045-3.692 35.235-10.366 50.87-6.675 15.635-16.333 29.715-28.268 41.539a132.2 132.2 0 0 1-41.924 28.005c-15.779 6.612-33.127 10.269-51.336 10.269-17.924 0-35.013-3.544-50.591-9.962a132.1 132.1 0 0 1-42.661-28.314c-10.7-10.602-19.57-23.019-26.098-36.743-8.034-16.887-12.527-35.755-12.527-55.664 0-12.817 1.373-23.398 1.744-36.637.527-18.846 1.402-26.346 1.726-41.846.37-17.743-1.823-28.457-5.289-39.156-3.83-11.827-8.641-21.906-15.855-32.545 0 0-8.85-13.217-20.296-24.18-9.08-8.695-22.707-16.088-30.558-20.98-10.083-6.283-20.695-12-31.306-17.623-8.027-4.255-16.055-8.454-23.854-12.805a132.2 132.2 0 0 1-29.494-22.388 131.3 131.3 0 0 1-19.202-24.637 129.3 129.3 0 0 1-14.217-33.46 129.8 129.8 0 0 1-4.363-33.46c.002-18.043 3.692-35.231 10.366-50.866s16.33-29.714 28.262-41.538a132.2 132.2 0 0 1 39.313-26.882C281.67 8.533 299.927 4.46 319.144 4.459"></path></g></svg></span><span data-logo-layer="lottie" class="pointer-events-none absolute opacity-0 [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"></span></span></a></div></div><div data-testid="announcement-lip" data-variant="accent" class="announcement-lip--measure lg:hidden"><div class="announcement-lip--clip"><div class="announcement-lip--content"><div class="flex"><a target="_blank" rel="noopener noreferrer" class="announcement-lip--link group" href="https://luma.com/mastra-xy3o"><span class="announcement-lip--viewport"><span class="announcement-lip--track"><span class="announcement-lip--row"><span class="announcement-lip--meta shrink-0">1 Oct</span><span class="announcement-lip--sep" aria-hidden="true">â¢</span><span class="announcement-lip--title">Build Secure Agents with Auth and FGA</span><svg class="announcement-lip--arrow size-3.5 shrink-0 rotate-90 transition-transform duration-200 group-hover:translate-x-0.5" aria-hidden="true"><use href="/icons/sprite.svg#arrow"></use></svg></span><span class="announcement-lip--row" aria-hidden="true"><span class="announcement-lip--meta shrink-0">1 Oct</span><span class="announcement-lip--sep" aria-hidden="true">â¢</span><span class="announcement-lip--title">Build Secure Agents with Auth and FGA</span><svg class="announcement-lip--arrow size-3.5 shrink-0 rotate-90 transition-transform duration-200 group-hover:translate-x-0.5" aria-hidden="true"><use href="/icons/sprite.svg#arrow"></use></svg></span></span></span></a></div></div></div></div><button class="grid p-2 shrink-0 place-items-center focus:outline-hidden focu
168s-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green) lg:hidden"><span class="sr-only">Open main menu</span><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="7.5" width="14" height="1" rx="0.5" style="transform-origin:center" class="transition-transform duration-150 ease-ease-out-quad translate-y-[-3.5px]"></rect><rect x="1" y="7.5" width="14" height="1" rx="0.5" style="transform-origin:center" class="transition-transform duration-150 ease-ease-out-quad translate-y-[3.5px]"></rect></svg></button><nav class="hidden lg:flex z-10 text-[15px] font-medium relative flex-1"><ul class="flex items-center list-none gap-1"><li class="mr-5 xl:mr-[32px] relative"><div style="-webkit-touch-callout:none"><a class="relative block h-[21.5px] w-22 md:h-[29.313px] md:w-30" aria-label="mastra" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 131 32" data-wordmark-layer="text" aria-hidden="true" class="block h-full w-full text-white"><path fill="currentColor" d="M56.557 22v-6.876q0-1.11-.662-1.772-.637-.685-1.701-.685-1.276 0-2.127.969t-.874 2.504V22H48.31V10.611h2.883v2.198a4.65 4.65 0 0 1 1.607-1.796q1.063-.685 2.457-.685 1.323 0 2.363.638 1.04.615 1.465 1.795a4.1 4.1 0 0 1 1.678-1.795q1.11-.639 2.504-.638 1.961 0 3.166 1.205 1.23 1.181 1.229 3.213V22h-2.883v-6.64q0-1.276-.661-1.984-.638-.71-1.749-.71-1.228 0-2.08.922-.85.922-.85 2.316V22zm18.687.33q-1.677 0-3-.779a5.8 5.8 0 0 1-2.056-2.174q-.733-1.37-.733-3.071 0-1.725.733-3.072a5.6 5.6 0 0 1 2.055-2.15q1.324-.803 2.978-.803 1.417 0 2.575.59a4.47 4.47 0 0 1 1.843 1.654v-1.914h2.883V22h-2.883v-1.914a4.4 4.4 0 0 1-1.843 1.678q-1.158.567-2.552.567m.733-2.291q1.583 0 2.622-1.016 1.04-1.016 1.04-2.717t-1.04-2.718-2.622-1.016q-1.608 0-2.6 1.04-.992 1.015-.992 2.694 0 1.677.992 2.717.993 1.016 2.6 1.016m14.077 2.292q-2.646 0-4.182-1.11-1.536-1.135-1.583-2.93l2.788-.19q0 .993.803 1.63.828.639 2.198.639 1.18 0 1.772-.426.614-.45.614-1.11 0-.637-.567-.969-.567-.33-1.441-.52a67 67 0 0 0-1.89-.378q-.993-.19-1.867-.52a3.7 3.7 0 0 1-1.442-.945q-.567-.614-.567-1.654 0-1.653 1.442-2.599 1.44-.969 3.757-.969 2.22 0 3.638.922 1.442.897 1.536 2.48l-2.717.166q-.024-.708-.662-1.205-.615-.52-1.819-.52-1.04 0-1.63.402-.591.378-.591.992 0 .591.567.898t1.441.473l1.867.354a8.8 8.8 0 0 1 1.89.52q.874.33 1.441.993.568.638.568 1.772 0 1.771-1.442 2.788-1.44 1.016-3.922 1.016m12.568 0q-1.89 0-3.072-1.016-1.158-1.016-1.157-2.86v-5.67h-2.505v-2.174h2.504v-3.45h2.883v3.45h3.733v2.174h-3.733v5.293q0 1.015.449 1.465.472.425 1.276.425.473 0 .992-.165.52-.189.898-.591l.449 2.363q-.402.33-1.158.543a5.7 5.7 0 0 1-1.559.213m4.297-.331V10.611h2.883v2.387a3.73 3.73 0 0 1 1.465-1.961q1.086-.757 2.552-.757.425 0 .827.095.425.07.85.26l-.283 2.74a4.5 4.5 0 0 0-.898-.4 3.3 3.3 0 0 0-.992-.143q-.496 0-1.111.166-.591.165-1.158.59-.543.426-.898 1.205-.354.757-.354 1.938V22zm14.658.33q-1.677 0-3-.779a5.8 5.8 0 0 1-2.056-2.174q-.732-1.37-.732-3.071 0-1.725.732-3.072a5.6 5.6 0 0 1 2.056-2.15q1.323-.803 2.977-.803 1.417 0 2.575.59a4.47 4.47 0 0 1 1.843 1.654v-1.914h2.883V22h-2.883v-1.914a4.4 4.4 0 0 1-1.843 1.678q-1.157.567-2.552.567m.733-2.291q1.583 0 2.623-1.016t1.039-2.717q0-1.702-1.039-2.718-1.04-1.016-2.623-1.016-1.607 0-2.599 1.04-.993 1.015-.993 2.694 0 1.677.993 2.717.992 1.016 2.599 1.016"></path></svg><span class="inline-block leading-none absolute" aria-hidden="true" data-logo-state="fallback" data-logo-visual-state="fallback" style="left:0.38167938931297707%;top:17.67121875%;width:25.954198473282442%;height:65.625%"><span data-logo-layer="fallback" class="pointer-events-none absolute text-white [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1000 610"><defs><clipPath id="logo-lottie-frame0_svg__a"><path d="M0 0h1000v610H0z"></path></clipPath></defs><g clip-path="url(#logo-lottie-frame0_svg__a)">
168<path fill="currentColor" d="M146.5 344.176c9.105 0 17.994.913 26.58 2.654a131.8 131.8 0 0 1 47.16 19.663 132.3 132.3 0 0 1 19.522 15.957 131.7 131.7 0 0 1 16.106 19.34 130 130 0 0 1 12.161 22.2 129 129 0 0 1 7.686 24.53 130 130 0 0 1 2.68 26.338c0 9.023-.923 17.831-2.68 26.339a129 129 0 0 1-7.686 24.531 130 130 0 0 1-12.16 22.198 131.7 131.7 0 0 1-16.107 19.34 132.3 132.3 0 0 1-19.521 15.957 131.85 131.85 0 0 1-47.161 19.663 133.7 133.7 0 0 1-26.58 2.654c-9.104 0-17.993-.915-26.578-2.656a131.8 131.8 0 0 1-47.156-19.664 132.3 132.3 0 0 1-19.517-15.957 131.6 131.6 0 0 1-16.103-19.34 130 130 0 0 1-12.16-22.198 129 129 0 0 1-7.683-24.53 130 130 0 0 1-2.68-26.337c0-9.022.923-17.83 2.68-26.337a129 129 0 0 1 7.684-24.531 130 130 0 0 1 12.159-22.197 131.6 131.6 0 0 1 16.103-19.34 132.3 132.3 0 0 1 19.517-15.957 132 132 0 0 1 22.401-12.049 131.7 131.7 0 0 1 24.755-7.615 133.7 133.7 0 0 1 26.578-2.656M319.144 4.46c18.208 0 35.556 3.656 51.334 10.27a132.2 132.2 0 0 1 41.923 28.005c11.935 11.824 21.593 25.904 28.268 41.539s10.367 32.824 10.369 50.868c0 3.073-.846 15.152-1.262 18.111-1.493 10.648-3.146 21.604-4.503 32.641-1.663 13.514-2.24 28.603-2.19 41.949.042 11.346 3.351 31.26 6.515 40.056 4.303 11.967 3.5 12.418 9.785 22.465l7.63 11.64 6.882 10.107 9.725 14.21c.703.855 14.282 21.69 18.261 21.688 4.138-.004 16.768-21.94 21.33-27.979l7.918-11.933 6.183-8.97 7.102-12.475c5.354-10.08 6.594-12.268 9.582-24.673 2.844-11.806 3.436-19.263 4.332-37.287.793-15.97-.54-26.739-2.22-40.594-1.353-11.155-4.847-44.897-4.847-47.032 0-17.567 3.893-34.423 10.237-49.724 6.687-16.131 16.536-30.643 28.784-42.78A132.2 132.2 0 0 1 632.2 16.558c15.778-6.613 33.124-10.27 51.332-10.271 15.856 0 31.06 2.772 45.143 7.856a132.1 132.1 0 0 1 48.119 30.418c11.934 11.824 21.593 25.904 28.268 41.539s10.366 32.825 10.366 50.869c0 3.508-1.098 17.26-1.636 20.618-1.425 8.894-2.971 17.976-4.356 27.128-2.105 13.905-6.374 29.145-5.919 42.958.434 13.184 1.196 26.446 3.634 37.18 3.462 15.249 8.525 21.77 13.05 30.667l9.872 15.641c8.903 9.176 10.273 14.173 21.351 21.31 11.836 7.624 25.139 12.28 38.763 16.483 13.53 4.174 25.657 10.573 37.103 18.437a132.1 132.1 0 0 1 29.991 28.449 130 130 0 0 1 19.499 35.947c4.749 13.487 7.33 27.98 7.331 43.072 0 18.045-3.69 35.235-10.363 50.87-6.674 15.635-16.33 29.715-28.262 41.539a132.1 132.1 0 0 1-44.68 29.125c-15.031 5.904-31.42 9.149-48.573 9.149-18.21 0-35.556-3.657-51.334-10.27a132.2 132.2 0 0 1-41.918-28.005c-11.895-11.788-21.528-25.817-28.2-41.394-6.71-15.674-10.424-32.914-10.424-51.014 0-3.874.842-20.59 1.462-24.285 8.879-52.919 10.688-57.614 8.334-84.925-1.276-14.809-4.638-29.037-11.14-40.11l-12.141-20.791-8.435-14.46c-4.155-6.395-10.373-19.158-14.683-19.475-3.328-.246-12.516 15.715-16.862 21.603l-8.268 11.524-8.803 12.796c-7.415 11.943-9.524 19.117-12.329 28.846-3.517 12.198-4.005 23.82-4.028 37.047-.02 10.963.787 22.118 1.973 33.244 1.504 14.104 3.616 28.164 5.424 41.729.376 2.823 1.139 14.332 1.139 17.257 0 18.045-3.692 35.235-10.366 50.87-6.675 15.635-16.333 29.715-28.268 41.539a132.2 132.2 0 0 1-41.924 28.005c-15.779 6.612-33.127 10.269-51.336 10.269-17.924 0-35.013-3.544-50.591-9.962a132.1 132.1 0 0 1-42.661-28.314c-10.7-10.602-19.57-23.019-26.098-36.743-8.034-16.887-12.527-35.755-12.527-55.664 0-12.817 1.373-23.398 1.744-36.637.527-18.846 1.402-26.346 1.726-41.846.37-17.743-1.823-28.457-5.289-39.156-3.83-11.827-8.641-21.906-15.855-32.545 0 0-8.85-13.217-20.296-24.18-9.08-8.695-22.707-16.088-30.558-20.98-10.083-6.283-20.695-12-31.306-17.623-8.027-4.255-16.055-8.454-23.854-12.805a132.2 132.2 0 0 1-29.494-22.388 131.3 131.3 0 0 1-19.202-24.637 129.3 129.3 0 0 1-14.217-33.46 129.8 129.8 0 0 1-4.363-33.46c.002-18.043 3.692-35.231 10.366-50.866s16.33-29.714 28.262-41.538a132.2 132.2 0 0 1 39.313-26.882C281.67 8.533 299.927 4.46 319.144 4.459"></path></g></svg></span><span data-logo-layer="lottie" class="pointer-events-none absolute opacity-0 [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"></span></span></a></div><div data-testid="announcement-lip" data-variant="accent" class="announcement-lip--measure hidden lg:block"><div class="announcement-lip--clip"><div class="announcement-lip--content"><div class="flex"><a target="_blank" rel="noopener noreferrer" class="announcement-lip--link group" href="https://luma.com/mastra-xy3o"><span class="announcement-lip--viewport"><span class="announcement-lip--track"><span class="announcement-lip--row"><span class="announcement-lip--meta shrink-0">1 Oct</span><span class="announcement-lip--sep" aria-hidden="true">â¢</span><span class="announcement-lip--title">Build Secure Agents with Auth and FGA</span><svg class="announcement-lip--arrow size-3.5 shrink-0 rotate-90 transition-transform duration-200 group-hover:translate-x-0.5" aria-hidden="true"><use href="/icons/sprite.svg#arrow"></use></svg></span><span class="announcement-lip--row" aria-hidden="true"><span class="announcement-lip--meta shrink-0">1 Oct</span><span class="announcement-lip--sep" aria-hidden="true">â¢</span><span class="announcement-lip--title">Build Secure Agents with Auth and FGA</span><svg class="announcement-lip--arrow size-3.5 shrink-0 rotate-90 transition-transform duration-200 group-hover:translate-x-0.5" aria-hidden="true"><use href="/icons/sprite.svg#arrow"></use></svg></span></span></span></a></div></div></div></div></li><li><button type="button" aria-expanded="false" aria-haspopup="true" class="group desktop-navigation--menu-link"><span aria-hidden="true" class="size-[6px] rounded-full bg-current mr-2 opacity-60 transition-opacity duration-300 group-hover:opacity-100 group-aria-expanded:opacity-100"></span>Product</button></li><li><button type="button" aria-expanded="false" aria-haspopup="true" class="group desktop-navigation--menu-link"><span aria-hidden="true" class="size-[6px] rounded-full bg-current mr-2 opacity-60 transition-opacity duration-300 group-hover:opacity-100 group-aria-expanded:opacity-100"></span>Solutions</button></li><li><button type="button" aria-expanded="false" aria-haspopup="true" class="group desktop-navigation--menu-link"><span aria-hidden="true" class="size-[6px] rounded-full bg-current mr-2 opacity-60 transition-opacity duration-300 group-hover:opacity-100 group-aria-expanded:opacity-100"></span>Resources</button></li><li><a class="group desktop-navigation--menu-link" href="/pricing">Pricing</a></li><li><a class="group desktop-navigation--menu-link" href="/customers">Customers</a></li><li><a class="group desktop-navigation--menu-link" href="/docs">Docs</a></li></ul><div class="nav-dropdown-panel" data-state="closed"><div class="nav-dropdown-shell--measure"><div class="nav-dropdown-shell--clip"><div class="nav-dropdown-shell--content"><div><div class="nav-dropdown-content-stack"><div aria-hidden="true"><div class="nav-columns nav-columns--product"><section class="nav-product-group"><p class="nav-column-heading">Open Source</p><div class="nav-product-grid"><a class="nav-col-product group" href="/ai-agent-framework"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Framework</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&w=3840&q=75"/></span></a><a class="nav-col-product group" href="/factory"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Factory</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&w=3840&q=75"/></span></a><a class="nav-col-product group" href="/studio"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Studio</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&w=3840&q=75"/></span></a></div></section><section class="nav-product-group"><p class="nav-column-heading">Platform & Enterprise</p><div class="nav-product-grid"><a class="nav-col-product group" href="/platform-observability"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Observability</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&w=3840&q=75"/></span></a><a class="nav-col-product group" href="/agent-builder"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Agent Builder</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full o
168bject-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&w=3840&q=75"/></span></a><a class="nav-col-product group" href="/ai-agent-deployment"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">Server</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&w=3840&q=75"/></span></a><a class="nav-col-product group" href="/fde-support"><span class="nav-col-product--content"><span class="nav-col-product--title text-ds-label text-ds-main-white">
168FDE + Support</span></span><span class="nav-col-product--decoration"><img alt="" loading="lazy" width="400" height="400" decoding="async" data-nimg="1" class="h-full w-full object-cover" style="color:transparent" sizes="60px" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=32&q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=48&q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=64&q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=96&q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=128&q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=256&q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=384&q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=640&q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=750&q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=828&q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=1080&q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=1200&q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=1920&q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=2048&q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=3840&q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&w=3840&q=75"/></span></a></div></section></div></div><div aria-hidden="true"><div class="nav-columns nav-columns--solution"><p class="nav-column-heading">By Use Case</p><div class="nav-solution-grid"><a class="nav-resource-link group" href="/real-world-agents"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#person"></use></svg><span class="nav-resource-link--title">Real-world agents</span></a><a class="nav-resource-link group" href="/customer-facing-agents"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#customers-new"></use></svg><span class="nav-resource-link--title">Customer-facing agents</span></a><a class="nav-resource-link group" href="/developer-infrastructure"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/dev-infra"></use></svg><span class="nav-resource-link--title">Developer Infra</span></a></div></div></div><div aria-hidden="true"><div class="nav-columns nav-columns--resource"><section class="nav-resource-column"><p class="nav-column-heading">Get Started</p><div class="nav-col-resource"><a class="nav-resource-link group" href="/docs"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/quickstart"></use></svg><span class="nav-resource-link--title">Quickstart</span></a><a class="nav-resource-link group" href="/templates"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/template"></use></svg><span class="nav-resource-link--title">Templates</span></a><a class="nav-resource-link group" href="/learn"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/course"></use></svg><span class="nav-resource-link--title">Course</span></a></div></section><section class="nav-resource-column"><p class="nav-column-heading">Latest</p><div class="nav-col-resource"><a class="nav-resource-link group" href="/blog"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/blog"></use></svg><span class="nav-resource-link--title">Blog</span></a><a class="nav-resource-link group" href="/research"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/research"></use></svg><span class="nav-resource-link--title">Research</span></a><a target="_blank" rel="noopener noreferrer" class="nav-resource-link group" href="https://github.com/mastra-ai/mastra/releases"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/changelog"></use></svg><span class="nav-resource-link--title">Changelog</span></a></div></section><section class="nav-resource-column"><p class="nav-column-heading">Books</p><div class="nav-col-resource"><a class="nav-resource-link group" href="/books/principles-of-building-ai-agents"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/book"></use></svg><span class="nav-resource-link--title"><span class="text-ds-main-gray">1<!-- --> ⢠</span>Principles</span></a><a class="nav-resource-link group" href="/books/patterns-of-building-ai-agents"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/book"></use></svg><span class="nav-resource-link--title"><span class="text-ds-main-gray">2<!-- --> ⢠</span>Patterns</span></a></div></section><section class="nav-resource-column"><p class="nav-column-heading">Workshops</p><div class="nav-col-resource"><a class="nav-resource-link group" href="/workshops"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/workshops"></use></svg><span class="nav-resource-link--title">Workshops</span></a><a class="nav-resource-link group" href="/podcasts"><svg class="h-4 w-4 shrink-0 nav-resource-link--icon"><use href="/icons/sprite.svg#nav/podcast"></use></svg><span class="nav-resource-link--title">Agents Hour</span></a></div></section></div></div></div></div></div></div></div></div></nav><ul class="lg:flex hidden lg:w-fit flex-col p-2 text-ds-main-white md:p-0 lg:flex-row lg:items-center gap-1 ml-auto" data-testid="desktop-nav-actions"><li><a target="_blank" rel="noopener noreferrer" href="https://github.com/mastra-ai/mastra" class="font-medium min-w-[82px] w-fit focus:outline-hidden text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green) rounded-md transition-colors flex items-center gap-2 justify-start pl-[7px] pr-2.5 py-2 h-8.5 text-[15px]"><svg class="shrink-0 w-[18px] h-[18px]"><use href="/icons/sprite.svg#github"></use></svg>28.3k</a></li><li class="w-full flex flex-col lg:flex-row gap-3" style="min-width:168px" data-testid="nav-cta"></li></ul></div><nav aria-label="mobile menu" class="flex-col items-start gap-3 overflow-hidden border-t-ds-surface-hover-lip lg:hidden relative z-10 bg-ds-surface-antigrid hidden"><ul class="flex flex-col gap-8 py-6 w-full overflow-y-scroll"><li data-open="false"><span class="text-lg capitalize px-3 text-ds-main-gray font-medium">product</span><ul class="flex flex-col text-2xl gap-1 mt-4"><li><a class="mobile-nav--item-link" href="/ai-agent-framework"><span>Framework</span><span class="text-ds-caption text-ds-main-gray block">Build agents and workflows</span></a></li><li><a class="mobile-nav--item-link" href="/factory"><span>Factory</span><span class="text-ds-caption text-ds-main-gray block">Issue to production, run by agents</span></a></li><li><a class="mobile-nav--item-link" href="/studio"><span>Studio</span><span class="text-ds-caption text-ds-main-gray block">Collaborate, evaluate, iterate</span></a></li><li><a class="mobile-nav--item-link" href="/platform-observability"><span>Observability</span><span class="text-ds-caption text-ds-main-gray block">Metrics, logs, traces</span></a></li><li><a class="mobile-nav--item-link" href="/agent-builder"><span>Agent Builder</span><span class="text-ds-caption text-ds-main-gray block">Composable agent studio</span></a></li><li><a class="mobile-nav--item-link" href="/ai-agent-deployment"><span>Server</span><span class="text-ds-caption text-ds-main-gray block">Cloud deployment for agents</span></a></li><li><a class="mobile-nav--item-link" href="/fde-support"><span>
168FDE + Support</span><span class="text-ds-caption text-ds-main-gray block">Build with Mastra engineers</span></a></li></ul></li><li data-open="false"><span class="text-lg capitalize px-3 text-ds-main-gray font-medium">solutions</span><ul class="flex flex-col text-2xl gap-1 mt-4"><li><a class="mobile-nav--item-link" href="/real-world-agents"><span>Real-world agents</span><span class="text-ds-caption text-ds-main-gray block">Company brain. Slack agents, process automation</span></a></li><li><a class="mobile-nav--item-link" href="/customer-facing-agents"><span>Customer-facing agents</span><span class="text-ds-caption text-ds-main-gray block">Give your users an assistant</span></a></li><li><a class="mobile-nav--item-link" href="/developer-infrastructure"><span>Developer Infra</span><span class="text-ds-caption text-ds-main-gray block">Replace manual toil with agentic infra</span></a></li></ul></li><li data-open="false"><span class="text-lg capitalize px-3 text-ds-main-gray font-medium">resources</span><div class="flex flex-col gap-6 mt-4"><div><span class="text-ds-overline text-ds-main-gray px-3">Get Started</span><ul class="flex flex-col text-2xl gap-1 mt-2"><li><a class="mobile-nav--item-link" href="/docs"><span>Quickstart</span><span class="text-ds-caption text-ds-main-gray block">Build your first agent</span></a></li><li><a class="mobile-nav--item-link" href="/templates"><span>Templates</span><span class="text-ds-caption text-ds-main-gray block">Agent projects</span></a></li><li><a class="mobile-nav--item-link" href="/learn"><span>Course</span><span class="text-ds-caption text-ds-main-gray block">Video course on agents</span></a></li></ul></div><div><span class="text-ds-overline text-ds-main-gray px-3">Latest</span><ul class="flex flex-col text-2xl gap-1 mt-2"><li><a class="mobile-nav--item-link" href="/blog"><span>Blog</span><span class="text-ds-caption text-ds-main-gray block">Latest from Mastra team</span></a></li><li><a class="mobile-nav--item-link" href="/research"><span>Research</span><span class="text-ds-caption text-ds-main-gray block">Research and benchmarks</span></a></li><li><a target="_blank" rel="noopener noreferrer" class="mobile-nav--item-link" href="https://github.com/mastra-ai/mastra/releases"><span>Changelog</span><span class="text-ds-caption text-ds-main-gray block">Updates and fixes</span></a></li></ul></div><div><span class="text-ds-overline text-ds-main-gray px-3">Books</span><ul class="flex flex-col text-2xl gap-1 mt-2"><li><a class="mobile-nav--item-link" href="/books/principles-of-building-ai-agents"><span><span class="text-ds-main-gray">1<!-- --> ⢠</span>Principles</span><span class="text-ds-caption text-ds-main-gray block">Principles of Building AI Agents</span></a></li><li><a class="mobile-nav--item-link" href="/books/patterns-of-building-ai-agents"><span><span class="text-ds-main-gray">2<!-- --> ⢠</span>Patterns</span><span class="text-ds-caption text-ds-main-gray block">Patterns of Building AI Agents</span></a></li></ul></div><div><span class="text-ds-overline text-ds-main-gray px-3">Workshops</span><ul class="flex flex-col text-2xl gap-1 mt-2"><li><a class="mobile-nav--item-link" href="/workshops"><span>Workshops</span><span class="text-ds-caption text-ds-main-gray block">Live sessions with the team</span></a></li><li><a class="mobile-nav--item-link" href="/podcasts"><span>Agents Hour</span><span class="text-ds-caption text-ds-main-gray block">Weekly livestreams and guests</span></a></li></ul></div></div></li><li data-open="false"><span class="text-lg capitalize px-3 text-ds-main-gray font-medium">more</span><ul class="flex flex-col text-2xl gap-1 mt-4"><li><a class="mobile-nav--item-link" href="/pricing"><span>Pricing</span></a></li><li><a class="mobile-nav--item-link" href="/customers"><span>Customers</span></a></li><li><a class="mobile-nav--item-link" href="/docs"><span>Docs</span></a></li><li><a class="mobile-nav--item-link" href="/contact"><span>Contact</span></a></li></ul></li></ul><ul class="flex border-t-2 border-t-ds-surface-hover-lip w-full lg:w-fit flex-col p-2 text-ds-main-white md:p-0 lg:flex-row gap-5 lg:items-center"><li class="px-3"><a target="_blank" rel="noopener noreferrer" href="https://github.com/mastra-ai/mastra" class="font-medium min-w-[82px] w-fit focus:outline-hidden text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green) rounded-md transition-colors flex items-center gap-2 justify-start pl-[7px] pr-2.5 py-2 h-8.5 text-[15px]"><svg class="shrink-0 w-[18px] h-[18px]"><use href="/icons/sprite.svg#github"></use></svg>28.3k</a></li><li class="w-full flex flex-col lg:flex-row gap-3" style="min-height:88px" data-testid="nav-cta"></li></ul></nav></header><div class="relative isolate bg-[#0a0a0a]"><main class="relative z-10"><div class="sections-grid blog-page overflow-x-clip">
168<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://mastra.ai/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https://mastra.ai/articles"}]}</script>
168<script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"The 9 Best AI Agent Auth Solutions (August 2026): Features, Use Cases, and Architectures","url":"https://mastra.ai/articles/best-ai-agent-auth-solutions"},{"@type":"ListItem","position":2,"name":"The 9 Best Email Inbox APIs for SaaS Products (August 2026): Features, Use Cases, and Architectures","url":"https://mastra.ai/articles/best-email-inbox-apis-for-saas-products"},{"@type":"ListItem","position":3,"name":"The 9 Best Natoma Alternatives (August 2026): Features, Use Cases, and Architectures","url":"https://mastra.ai/articles/best-natoma-alternatives"},{"@type":"ListItem","position":4,"name":"AI agents for marketing: 10 best platforms for 2026","url":"https://mastra.ai/articles/ai-agents-for-marketing"},{"@type":"ListItem","position":5,"name":"No-code AI agent builder: how to choose one in 2026","url":"https://mastra.ai/articles/no-code-ai-agent-builder"},{"@type":"ListItem","position":6,"name":"AI agent architecture: patterns, components, and production design","url":"https://mastra.ai/articles/ai-agent-architecture"},{"@type":"ListItem","position":7,"name":"Prompt caching: how it works and how to cut LLM token costs","url":"https://mastra.ai/articles/prompt-caching"},{"@type":"ListItem","position":8,"name":"Langfuse vs LangSmith: a hands-on comparison for LLM observability","url":"https://mastra.ai/articles/langfuse-vs-langsmith"},{"@type":"ListItem","position":9,"name":"LLM vs generative AI: key differences and how to choose","url":"https://mastra.ai/articles/llm-vs-generative-ai"},{"@type":"ListItem","position":10,"name":"The 9 Best AI Browser Automation Platforms (August 2026): Features, Tradeoffs, and Use Cases","url":"https://mastra.ai/articles/best-ai-browser-automation-platforms"},{"@type":"ListItem","position":11,"name":"The 10 Best AI Voice Tools (August 2026): Features, Use Cases, and Architecture","url":"https://mastra.ai/articles/best-ai-voice-tools"},{"@type":"ListItem","position":12,"name":"The 9 Best Databases for AI Agents (August 2026): Features, Tradeoffs, and Use Cases","url":"https://mastra.ai/articles/best-databases-for-ai-agents"}]}</script>
168<section class="ds-section [--ds-section-stage-shell-fill:transparent] [&_.ds-section--stage-content]:pb-14 [&_.ds-section--stage-content]:pt-24 md:[&_.ds-section--stage-content]:pt-[120px] ds-section--inverse-bottom"><div class="ds-section--stage-shell ds-section--stage-shell-inverse-bottom"><div class="ds-section--stage-content"><div class="flex flex-col gap-8"><div class="flex max-w-[760px] flex-col gap-6"><h1 class="font-serif text-ds-main-white text-headline-2xl">Mastra Articles</h1><p class="max-w-[560px] text-[1.0625rem] leading-[1.5] text-ds-main-gray">Long-form articles and engineering deep-dives on building AI agents, workflows, and TypeScript tooling with Mastra.</p></div><div class="flex w-full flex-wrap items-center gap-3"><div class="hidden lg:flex gap-2 md:w-fit"><a data-active="true" class="focus:outline-hidden flex h-fit shrink-0 items-center gap-1 rounded-full border border-ds-border-antigrid px-3.5 py-1.5 text-body-sm text-ds-main-gray transition-colors hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white data-[active=true]:border-ds-border-elevation data-[active=true]:bg-ds-surface-elevation-sm data-[active=true]:text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green)" href="/articles">All Posts</a><a data-active="false" class="focus:outline-hidden flex h-fit shrink-0 items-center gap-1 rounded-full border border-ds-border-antigrid px-3.5 py-1.5 text-body-sm text-ds-main-gray transition-colors hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white data-[active=true]:border-ds-border-elevation data-[active=true]:bg-ds-surface-elevation-sm data-[active=true]:text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green)" href="/articles/category/foundations">Foundations</a></div><div class="lg:block flex justify-between w-full lg:w-auto lg:ml-auto items-center"><div class="lg:hidden shrink-0"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_1dadbsnpfej9b_" data-state="closed" data-open="false" class="relative group capitalize font-sans flex h-8 lg:h-10 outline-solid outline-2 outline-offset-2 outline-ds-dark-gray shrink-0 items-center justify-center gap-2 overflow-hidden rounded-full px-3 lg:px-4 font-medium shadow-xs transition-all bg-white text-black">All Posts<svg class="shrink-0 size-2 rotate-90 transition-transform duration-150 group-data-[open=true]:-rotate-90"><use href="/icons/sprite.svg#chevron-right"></use></svg></button></div><div data-expanded="false" class="data-[expanded=true]:w-full"><button class="cursor-pointer font-sans items-center justify-center gap-2 whitespace-nowrap text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ds-green disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground font-normal size-8 hidden rounded-full border border-ds-border-antigrid p-2 transition-colors hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm lg:block" type="button" aria-label="Open articles search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-3 -ml-[0.5px] text-ds-main-gray"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button><div class="lg:hidden ml-auto"><div data-expanded="false" class="group relative md:w-fit md:ml-auto lg:h-auto data-[expanded=true]:w-full "><div tabindex="-1" data-slot="command" class="bg-popover text-popover-foreground flex h-full w-full flex-col rounded-md overflow-visible group-data-[expanded=true]:block group-data-[expanded=false]:hidden lg:group-data-[expanded=false]:block lg:visible" cmdk-root=""><label cmdk-label="" for="radix-_R_qdadbsnpfej9bH2_" id="radix-_R_qdadbsnpfej9bH1_" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0"></label><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3 top-1/2 transform -translate-y-1/2 size-4 text-ds-main-gray z-10"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><div data-slot="command-input-wrapper"><input data-slot="command-input" class="placeholder:text-ds-main-gray h-9 lg:h-fit focus-visible:ring-(--color-ds-green) flex w-full border-0.5 bg-transparent px-3 shadow-xs transition-colors focus-visible:outline-hidden focu
168s-visible:ring-1 disabled:opacity-50 text-sm pl-10 py-1 placeholder:text-sm rounded-full border-ds-surface-hover-lip cursor-pointer" id="radix-_R_qdadbsnpfej9bH2_" aria-label="Search blog posts" placeholder="Search posts" autoComplete="off" cmdk-input="" autoCorrect="off" spellCheck="false" aria-autocomplete="list" role="combobox" aria-expanded="true" aria-controls="radix-_R_qdadbsnpfej9b_" aria-labelledby="radix-_R_qdadbsnpfej9bH1_" type="text" value=""/></div><button type="button" data-search="false" aria-label="Clear blog search" class="absolute right-3 lg:data-[search=false]:hidden lg:data-[search=true]:block top-1/2 transform -translate-y-1/2 text-ds-main-gray z-10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x size-4 md:size-3"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div></div><button type="button" data-expanded="false" aria-label="Expand blog search" class="rounded-full data-[expanded=true]:hidden lg:hidden border-0.5 border-ds-surface-hover-lip p-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-3 text-ds-main-gray"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button></div></div></div></div></div></div></div></div></section><section class="ds-section ds-section--inverse-bottom ds-section--inverse-top"><div class="ds-section--stage-shell ds-section--stage-shell-inverse"><div class="ds-section--stage-content"><div class="grid gap-6 lg:grid-cols-2"><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-ai-agent-auth-solutions"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 9 Best AI Agent Auth Solutions (August 2026): Features, Use Cases, and Architectures</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares nine AI agent auth solutions, explains how they approach identity and authorization, and helps you choose the right auth infrastructure for your AI application.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 24, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-email-inbox-apis-for-saas-products"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 9 Best Email Inbox APIs for SaaS Products (August 2026): Features, Use Cases, and Architectures</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares nine email inbox APIs and related email infrastructure for SaaS products, explains how their approaches differ, and helps you choose the right option for your application.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 24, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-natoma-alternatives"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 9 Best Natoma Alternatives (August 2026): Features, Use Cases, and Architectures</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares nine Natoma alternatives, explains how they approach agent access, governance, and integrations, and helps you choose the right platform for your AI application.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 24, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/ai-agents-for-marketing"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">AI agents for marketing: 10 best platforms for 2026</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">See the 10 best AI agents for marketing in 2026, what each is built for, and how to build your own with governance and evals in place.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 18, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/no-code-ai-agent-builder"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">No-code AI agent builder: how to choose one in 2026</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Learn how to choose a no-code AI agent builder in 2026: 12 platforms ranked, the capabilities worth scoring, and when to move to code.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 18, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/ai-agent-architecture"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">
168AI agent architecture: patterns, components, and production design</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Learn AI agent architecture from components to orchestration patterns, memory, observability, and production design choices for building reliable agents.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 17, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/prompt-caching"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">Prompt caching: how it works and how to cut LLM token costs</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Learn how prompt caching works, how providers price cached tokens, and how to structure prompts and monitor cache hits to cut LLM token costs.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 17, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/langfuse-vs-langsmith"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">Langfuse vs LangSmith: a hands-on comparison for LLM observability</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">A hands-on Langfuse vs LangSmith comparison covering tracing, evals, prompt management, integrations, self-hosting, and pricing for LLM observability.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 16, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/llm-vs-generative-ai"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">LLM vs generative AI: key differences and how to choose</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">LLM vs generative AI explained: how they differ in scope, architecture, and use cases, plus how to choose the right approach for your app.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 16, 2026</span><div class="flex items-center gap-2"><img alt="Aron Schuhmann" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Faron.jpg&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Faron.jpg&w=48&q=75"/><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-ai-browser-automation-platforms"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 9 Best AI Browser Automation Platforms (August 2026): Features, Tradeoffs, and Use Cases</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares nine leading AI browser automation platforms, explains how their architectures differ, and helps you choose the right approach for building browser-based AI agents.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 15, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-ai-voice-tools"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 10 Best AI Voice Tools (August 2026): Features, Use Cases, and Architecture</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares 10 leading voice AI tools, explains the architectural differences between them, and helps you choose the right voice infrastru
168cture for your next AI application.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 15, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a><a class="group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]" href="/articles/best-databases-for-ai-agents"><div class="flex flex-col gap-2.5"><h2 class="font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white">The 9 Best Databases for AI Agents (August 2026): Features, Tradeoffs, and Use Cases</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">This guide compares nine leading databases for AI agents, explains where each one excels, and helps you choose the right data infrastructure for your next AI application.</p></div><div class="flex flex-wrap items-center justify-between gap-3"><div class="flex flex-row-reverse items-center gap-3"><span class="block shrink-0 text-xs text-ds-main-gray">Aug 15, 2026</span><div class="flex items-center gap-2"><img alt="Sam Bhagwat" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent" srcSet="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=32&q=75 1x, /_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75 2x" src="/_next/image?url=%2Fauthors%2Fcalcsam.png&w=48&q=75"/></div></div><div class="flex items-center gap-2"><span class="shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white"># <!-- -->foundations</span></div></div></a></div><nav aria-label="Articles pagination" class="mt-12 flex flex-wrap items-center justify-center gap-2"><a class="flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors bg-ds-main-white font-medium text-ds-surface-bg" aria-current="page" href="/articles">1</a><a class="flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white" href="/articles/page/2">2</a><span class="px-1 text-sm text-ds-main-gray">â¦</span><a class="flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white" href="/articles/page/7">7</a><a class="flex h-10 min-w-10 items-center justify-center rounded-full text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white px-4" rel="next" href="/articles/page/2">Next</a></nav></div></div></section><section data-footer-cta="" aria-label="Footer call to action" class="relative isolate flex min-h-[420px] w-full flex-col items-center justify-start bg-ds-surface-bg px-6 pb-24 pt-28 text-center sm:min-h-[520px] md:h-[736px] md:min-
168h-0 md:px-0 md:pb-0 md:pt-[257px]"><div aria-hidden="true" data-footer-shader="gray" class="pointer-events-none absolute inset-x-0 z-0 h-[1040px] md:h-[1360px] bottom-auto top-0"><div aria-hidden="true" data-footer-shader-fallback="" class="absolute inset-0 bg-cover bg-center" style="background-image:url("/new-brand/footer-shader-fallback-gray.jpg")"></div><div data-footer-shader-mount="" class="absolute inset-0"></div></div><div class="relative z-10 flex flex-col items-center gap-10 md:gap-16"><div class="flex flex-col items-center gap-4 md:gap-6"><h2 class="max-w-[980px] text-headline-3xl text-ds-main-white text-balance">Ship better agents</h2></div><div class="flex flex-col items-center"><div class="flex w-full flex-col items-center gap-4 md:w-fit md:flex-row md:items-center md:gap-5 md:justify-center"><div class="group relative"><button type="button" data-testid="agent-prompt-cta-trigger" aria-label="Copy agent prompt" class="inline-flex shrink-0 cursor-pointer items-center justify-center whitespace-nowrap rounded-full border-[1.5px] border-transparent [background-clip:padding-box,border-box] [background-image:linear-gradient(var(--gradient-stroke-button-fill),var(--gradient-stroke-button-fill)),linear-gradient(180deg,var(--gradient-stroke-button-border-start)_0%,var(--gradient-stroke-button-border-end)_100%)] [background-origin:padding-box,border-box] text-[#ccc] no-underline transition-transform duration-150 [--gradient-stroke-button-border-end:#2b2b2b00] [--gradient-stroke-button-border-start:#383838] [--gradient-stroke-button-fill:#1c1c1c] hover:[--gradient-stroke-button-border-start:#464646] hover:[--gradient-stroke-button-fill:#242424] active:scale-[0.98] focus:outline-hidden focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green) h-[50px] w-full min-w-[246px] gap-3 px-[22px] text-[17px] font-medium leading-none md:w-[298px]"><span aria-hidden="true" class="block h-[50px] overflow-hidden leading-[50px]"><span class="flex flex-col text-left transition-transform duration-200 motion-reduce:transition-none"><span>Copy agent prompt</span><span>Copied</span></span></span><svg class="shrink-0 size-[22px]"><use href="/icons/sprite.svg#claude"></use></svg><svg class="shrink-0 size-[22px]"><use href="/icons/sprite.svg#openai-codex"></use></svg><svg class="shrink-0 size-[22px]"><use href="/icons/sprite.svg#cursor"></use></svg></button><div data-testid="agent-prompt-cta-panel" aria-hidden="true" class="pointer-events-none absolute z-20 w-full overflow-hidden rounded-3xl border-[1.5px] border-ds-border-overlay bg-ds-surface-elevation-sm p-5 h-40 flex flex-col shadow-lg transition-opacity duration-150 top-full mt-3 invisible opacity-0 left-1/2 -translate-x-1/2"><pre class="m-0 min-h-0 flex-1 overflow-hidden whitespace-pre-wrap font-mono text-xs font-medium leading-[1.4] tracking-[0.18px] text-ds-special-gray [mask-image:linear-gradient(to_bottom,#000_55%,transparent_100%)] [-webkit-mask-image:linear-gradient(to_bottom,#000_55%,transparent_100%)]" style="font-feature-settings:"ss01", "ss02"">Create a new Mastra project. Mastra is a framework for AI applications and agents on a modern TypeScript stack. Before running the command, ask these questions one at a time and wait for each answer unless it was already provided: 169 170Project name? (default: "my-mastra-app") 171Provider? (required; options: "openai", "anthropic", "google", "xai") 172If the provider isn't supported, ask again and list the supported values. 173 174Run: `npm create mastra@latest <project-name> -- --llm <provider>` 175 176The command creates a default Mastra project, installs Mastra skills for detected coding assistants, and initializes Git when appropriate. 177 178After creation, enter the project directory and start the dev server: `npx bgproc start -n <project-name> -w -- npm run dev` 179 180Open Mastra Studio at `http://localhost:4111`. Studio is the interface for building, testing, and managing agents, workflows, and tools. 181 182Also mention that the Mastra model router provides access to thousands of models: https://mastra.ai/models</pre></div></div><a target="_blank" rel="noopener noreferrer" class="inline-flex h-[50px] w-full shrink-0 items-center justify-center gap-[11px] rounded-full border border-transparent bg-transparent px-[22px] text-[17px] font-medium leading-none text-ds-main-gray no-underline transition-colors hover:border-ds-surface-hover-lip hover:bg-ds-surface-hover hover:text-ds-main-white focus:outline-hidden focu
182s-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green) md:w-fit" href="https://mastra.ai/guides/getting-started/quickstart"><span>Quickstart</span><img alt="" loading="lazy" width="24" height="24" decoding="async" data-nimg="1" class="size-[18px] text-current" style="color:transparent" src="/_next/static/immutable/media/redirect.1hnz0o7buwx2_.svg"/></a></div></div></div></section></div><!--$--><!--/$--></main><div class="relative z-10"><footer class="relative isolate z-10 w-full" data-global-footer=""><div class="relative z-30 mx-auto w-[calc(100%-calc(var(--ds-antigrid-gap)*2px))] max-w-[1723px]"><div class="ds-section--stage-shell ds-section--stage-shell-inverse-bottom [--ds-section-stage-shell-fill:var(--color-ds-surface-elevation-lg)] [--ds-section-stage-shell-padding:16px] [--ds-section-stage-shell-width:100%] md:[--ds-section-stage-shell-padding:27px]"><div class="ds-section--stage-content"><div class="relative z-10 rounded-[32px] border-2 border-ds-border-antigrid bg-ds-surface-bg md:h-[680px] md:rounded-[40px]"><div class="mx-auto grid w-full max-w-ds-layout-content-v2 grid-cols-2 gap-x-8 gap-y-12 px-[calc(var(--ds-antigrid-gap)*1px)] py-16 md:h-full md:grid-cols-6 md:grid-rows-[148px_282px_auto] md:gap-x-0 md:gap-y-0 md:px-0 md:py-[91px]"><a href="#top" class="col-span-2 flex w-fit md:col-span-1 md:col-start-1 md:row-start-1 md:pl-ds-antigrid-padding" aria-label="Back to top"><span class="relative leading-none block h-[21px] w-[34px]" aria-hidden="true" data-logo-state="fallback" data-logo-visual-state="fallback"><span data-logo-layer="fallback" class="pointer-events-none absolute text-white [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1000 610"><defs><clipPath id="logo-lottie-frame0_svg__a"><path d="M0 0h1000v610H0z"></path></clipPath></defs><g clip-path="url(#logo-lottie-frame0_svg__a)"><path fill="currentColor" d="M146.5 344.176c9.105 0 17.994.913 26.58 2.654a131.8 131.8 0 0 1 47.16 19.663 132.3 132.3 0 0 1 19.522 15.957 131.7 131.7 0 0 1 16.106 19.34 130 130 0 0 1 12.161 22.2 129 129 0 0 1 7.686 24.53 130 130 0 0 1 2.68 26.338c0 9.023-.923 17.831-2.68 26.339a129 129 0 0 1-7.686 24.531 130 130 0 0 1-12.16 22.198 131.7 131.7 0 0 1-16.107 19.34 132.3 132.3 0 0 1-19.521 15.957 131.85 131.85 0 0 1-47.161 19.663 133.7 133.7 0 0 1-26.58 2.654c-9.104 0-17.993-.915-26.578-2.656a131.8 131.8 0 0 1-47.156-19.664 132.3 132.3 0 0 1-19.517-15.957 131.6 131.6 0 0 1-16.103-19.34 130 130 0 0 1-12.16-22.198 129 129 0 0 1-7.683-24.53 130 130 0 0 1-2.68-26.337c0-9.022.923-17.83 2.68-26.337a129 129 0 0 1 7.684-24.531 130 130 0 0 1 12.159-22.197 131.6 131.6 0 0 1 16.103-19.34 132.3 132.3 0 0 1 19.517-15.957 132 132 0 0 1 22.401-12.049 131.7 131.7 0 0 1 24.755-7.615 133.7 133.7 0 0 1 26.578-2.656M319.144 4.46c18.208 0 35.556 3.656 51.334 10.27a132.2 132.2 0 0 1 41.923 28.005c11.935 11.824 21.593 25.904 28.268 41.539s10.367 32.824 10.369 50.868c0 3.073-.846 15.152-1.262 18.111-1.493 10.648-3.146 21.604-4.503 32.641-1.663 13.514-2.24 28.603-2.19 41.949.042 11.346 3.351 31.26 6.515 40.056 4.303 11.967 3.5 12.418 9.785 22.465l7.63 11.64 6.882 10.107 9.725 14.21c.703.855 14.282 21.69 18.261 21.688 4.138-.004 16.768-21.94 21.33-27.979l7.918-11.933 6.183-8.97 7.102-12.475c5.354-10.08 6.594-12.268 9.582-24.673 2.844-11.806 3.436-19.263 4.332-37.287.793-15.97-.54-26.739-2.22-40.594-1.353-11.155-4.847-44.897-4.847-47.032 0-17.567 3.893-34.423 10.237-49.724 6.687-16.131 16.536-30.643 28.784-42.78A132.2 132.2 0 0 1 632.2 16.558c15.778-6.613 33.124-10.27 51.332-10.271 15.856 0 31.06 2.772 45.143 7.856a132.1 132.1 0 0 1 48.119 30.418c11.934 11.824 21.593 25.904 28.268 41.539s10.366 32.825 10.366 50.869c0 3.508-1.098 17.26-1.636 20.618-1.425 8.894-2.971 17.976-4.356 27.128-2.105 13.905-6.374 29.145-5.919 42.958.434 13.184 1.196 26.446 3.634 37.18 3.462 15.249 8.525 21.77 13.05 30.667l9.872 15.641c8.903 9.176 10.273 14.173 21.351 21.31 11.836 7.624 25.139 12.28 38.763 16.483 13.53 4.174 25.657 10.573 37.103 18.437a132.1 132.1 0 0 1 29.991 28.449 130 130 0 0 1 19.499 35.947c4.749 13.487 7.33 27.98 7.331 43.072 0 18.045-3.69 35.235-10.363 50.87-6.674 15.635-16.33 29.715-28.262 41.539a132.1 132.1 0 0 1-44.68 29.125c-15.031 5.904-31.42 9.149-48.573 9.149-18.21 0-35.556-3.657-51.334-10.27a132.2 132.2 0 0 1-41.918-28.005c-11.895-11.788-21.528-25.817-28.2-41.394-6.71-15.674-10.424-32.914-10.424-51.014 0-3.874.842-20.59 1.462-24.285 8.879-52.919 10.688-57.614 8.334-84.925-1.276-14.809-4.638-29.037-11.14-40.11l-12.141-20.791-8.435-14.46c-4.155-6.395-10.373-19.158-14.683-19.475-3.328-.246-12.516 15.715-16.862 21.603l-8.268 11.524-8.803 12.796c-7.415 11.943-9.524 19.117-12.329 28.846-3.517 12.198-4.005 23.82-4.028 37.047-.02 10.963.787 22.118 1.973 33.244 1.504 14.104 3.616 28.164 5.424 41.729.376 2.823 1.139 14.332 1.139 17.257 0 18.045-3.692 35.235-10.366 50.87-6.675 15.635-16.333 29.715-28.268 41.539a132.2 132.2 0 0 1-41.924 28.005c-15.779 6.612-33.127 10.269-51.336 10.269-17.924 0-35.013-3.544-50.591-9.962a132.1 132.1 0 0 1-42.661-28.314c-10.7-10.602-19.57-23.019-26.098-36.743-8.034-16.887-12.527-35.755-12.527-55.664 0-12.817 1.373-23.398 1.744-36.637.527-18.846 1.402-26.346 1.726-41.846.37-17.743-1.823-28.457-5.289-39.156-3.83-11.827-8.641-21.906-15.855-32.545 0 0-8.85-13.217-20.296-24.18-9.08-8.695-22.707-16.088-30.558-20.98-10.083-6.283-20.695-12-31.306-17.623-8.027-4.25
1825-16.055-8.454-23.854-12.805a132.2 132.2 0 0 1-29.494-22.388 131.3 131.3 0 0 1-19.202-24.637 129.3 129.3 0 0 1-14.217-33.46 129.8 129.8 0 0 1-4.363-33.46c.002-18.043 3.692-35.231 10.366-50.866s16.33-29.714 28.262-41.538a132.2 132.2 0 0 1 39.313-26.882C281.67 8.533 299.927 4.46 319.144 4.459"></path></g></svg></span><span data-logo-layer="lottie" class="pointer-events-none absolute opacity-0 [&_svg]:block! [&_svg]:h-full! [&_svg]:w-full!" style="height:99.9876418191074%;left:-1.467012664198425%;top:-0.7309633982620791%;width:100.32100070515617%"></span></span></a><div class="col-span-2 w-full min-w-0 md:col-span-3 md:col-start-4 md:row-start-1 md:pl-ds-antigrid-padding md:pr-ds-antigrid-padding"><form class="mt-16 items-start flex flex-col gap-2 !mt-0 w-full min-w-0 md:max-w-[598px]"><div class="flex flex-col w-full gap-3.5"><div class="subscribe-form-module__GWK2aq__label"><span class="subscribe-form-module__GWK2aq__bubble" aria-hidden="true"><span class="subscribe-form-module__GWK2aq__dot"></span></span><span class="subscribe-form-module__GWK2aq__labelText">Get weekly updates:</span></div><div class="flex w-full min-w-0 gap-2 flex-row max-[430px]:flex-col"><div class="form-item min-w-0 flex-1 w-full"><input type="email" class="ds-input ds-input--sm min-w-0 flex-1 focus-visible:!ring-[var(--color-ds-orange)] focus-visible:!border-[var(--color-ds-orange)] [--selection-color:var(--color-ds-orange)] md:min-w-[400px] !min-w-0" id="email" aria-label="Email address" placeholder="[email protected]" aria-describedby="_R_p9mj9b_-form-item-description" aria-invalid="false" name="email" value=""/><span class="md:absolute flex gap-2 items-center"></span></div><button type="submit" class="cta sm light min-w-[7.5rem] w-auto !min-w-0 shrink-0 !px-4 max-[430px]:w-full" aria-busy="false"><span aria-live="polite" style="opacity:1;transform:none">Subscribe</span></button></div></div></form></div><nav aria-labelledby="footer-framework" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-framework" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Framework</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/ai-agents">Agents</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/rag-pipeline">RAG</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/ai-workflows">Workflows</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/ai-agent-observability">Observability</a></li></ul></nav><nav aria-labelledby="footer-product" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-product" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Product</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/ai-agent-framework">Framework</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/platform-observability">Observability</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/studio">Studio</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/agent-builder">
182Agent Builder</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/ai-agent-deployment">Server</a></li></ul></nav><nav aria-labelledby="footer-developers" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-developers" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Developers</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/docs">Docs</a></li><li><a href="https://github.com/mastra-ai/mastra/releases" target="_blank" rel="noopener noreferrer" aria-label="Changelog (opens in a new tab)" class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white">Changelog</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/templates">Templates</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/learn">Course</a></li></ul></nav><nav aria-labelledby="footer-resources" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-resources" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Resources</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/blog">Blog</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/research">Research</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/articles">Guides</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/books/principles-of-building-ai-agents">Book · Principles</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/books/patterns-of-building-ai-agents">Book · Patterns</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/podcasts">Podcast · Agents Hour</a></li></ul></nav><nav aria-labelledby="footer-company" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-company" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Company</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/about">About</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/customers">Customers</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/careers">Careers</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/contact">Contact Us</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/newsletter">Newsletter</a></li></ul></nav><nav aria-labelledby="footer-connect" class="flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding"><h2 id="footer-connect" class="flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white">Connect</h2><ul class="m-0 flex list-none flex-col p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/contact">Contact Us</a></li><li><a href="https://github.com/mastra-ai/mastra" target="_blank" rel="noopener noreferrer" aria-label="GitHub (opens in a new tab)" class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white">GitHub</a></li><li><a href="https://discord.gg/mastra-ai" target="_blank" rel="noopener noreferrer" aria-label="Discord (opens in a new tab)" class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white">Discord</a></li><li><a href="https://www.youtube.com/@mastra-ai" target="_blank" rel="noopener noreferrer" aria-label="YouTube (opens in a new tab)" class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white">YouTube</a></li><li><a href="https://x.com/@mastra" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter) (opens in a new tab)" class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white">X (Twitter)</a></li></ul></nav><nav aria-label="Trust and platform status" class="col-span-2 flex flex-col md:col-span-2 md:col-start-1 md:row-start-3 md:pl-ds-antigrid-padding"><ul class="m-0 flex list-none flex-col p-0"><li><a href="https://trust.mastra.ai" target="_blank" rel="noopener noreferrer" class="inline-flex h-[34px] items-center gap-3.5 font-mono text-[12.5px] uppercase leading-3 text-ds-special-gray transition-colors hover:text-ds-main-white"><span class="inline-flex size-3.5 items-center justify-center rounded-full bg-ds-surface-hover" aria-hidden="true"><span class="block size-1.5 rounded-full bg-ds-main-gray"></span></span><span>Security</span></a></li><li><a href="https://statuspage.incident.io/mastra-platform" target="_blank" rel="noopener noreferrer" aria-label="Mastra platform status: Checking status" class="inline-flex h-[34px] items-center gap-3.5 font-mono text-[12.5px] uppercase leading-3 text-ds-main-gray transition-colors hover:text-ds-main-white"><span class="inline-flex size-3.5 items-center justify-center rounded-full bg-ds-surface-hover" aria-hidden="true"><span class="block size-1.5 rounded-full bg-ds-main-gray"></span></span><span class="text-ds-main-gray">Checking status</span></a></li></ul></nav><nav aria-label="Legal" class="col-span-2 flex flex-col md:col-span-3 md:col-start-4 md:row-start-3 md:justify-self-end md:pr-ds-antigrid-padding"><ul class="m-0 flex list-none flex-row flex-wrap items-center gap-x-6 p-0"><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/privacy-policy">Privacy</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/terms-of-service">Terms</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/legal/dpa">DPA</a></li><li><a class="flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white" href="/llms.txt">llms.txt</a></li></ul></nav></div></div></div></div></div><div class="relative z-20 -mt-px h-[calc(var(--ds-antigrid-gap)*1px_+_1px)] w-full bg-ds-surface-elevation-lg" data-footer-band="" aria-hidden="true"></div></footer></div></div></div><span hidden="" data-footer-shader-portal-host=""></span>
182<section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
182<script src="/_next/static/immutable/chunks/2qawd7zl0koov.js" id="_R_" async=""></script>
182<script>(self.__next_f=self.__next_f||[]).push([0])</script>
182<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[909814,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"default\"]\n4:I[352290,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"default\"]\n5:I[343355,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/01kjk1ynqkjsw.js\"],\"RerouteGameLoader\"]\n6:I[562650,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/01kjk1ynqkjsw.js\"],\"RerouteHeroOverlay\"]\nf:I[563491,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/0uh0do2r04yd-.js\"],\"default\"]\n:HL[\"/_next/static/immutable/chunks/0tom-9wncp29o.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/1tgmw_008sseu.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/1laydpwcl507_.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/2a1kg4-oqt4cr.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/30agtboqrg1qd.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/1re0slxr72nbi.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/39x7xm7ajfqc7.css\",\"style\"]\n:HL[\"/_next/static/immutable/media/CommitMonoMastra500_Italic-s.p.03bafw9s49-c8.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/CommitMonoMastra500_Regular-s.p.1802g5xp2xkrh.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/CommitMonoMastra550_Italic-s.p.2gfun3u-_7sib.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/CommitMonoMastra550_Regular-s.p.074z52xolq-0_.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/GreedVF-s.p.3f1gxdbuwob3i.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/Orbitron-s.p.2tebmyvsboa3m.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/chunks/36mbjjiqpcnpb.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/3l-4jj81zpd-v.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/3gb0tb3v514tx.css\",\"style\"]\nd:X\n0:{\"P\":null,\"c\":[\"\",\"articles\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(resources)\",{\"children\":[\"articles\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/0tom-9wncp29o.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1tgmw_008sseu.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1laydpwcl507_.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/2a1kg4-oqt4cr.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/30agtboqrg1qd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1re0slxr72nbi.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/39x7xm7ajfqc7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"async\":true,\"nonce\":\"$undefined\"}
182],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"className\":\"orbitron_377253dd-module__UDnGAq__variable bg-black text-ds-main-white\",\"style\":{\"fontFamily\":\"var(--orbitron)\",\"--font-mono\":\"var(--orbitron)\",\"--ds-lip-clearance\":\"calc(var(--ds-lip-clearance-base) * 2)\"},\"children\":[[\"$\",\"section\",null,{\"className\":\"relative h-[calc(100svh-var(--ds-nav-height))] w-full overflow-hidden bg-ds-surface-antigrid\",\"children\":[[\"$\",\"section\",null,{\"aria-label\":\"404 recovery game (optional)\",\"className\":\"absolute inset-0 z-0\",\"children\":[\"$\",\"$L5\",null,{}]}],[\"$\",\"$L6\",null,{\"title\":[\"$\",\"h1\",null,{\"className\":\"pt-[3em] font-sans text-balance text-headline-lg font-medium tracking-[-0.03em] text-ds-main-white drop-shadow-[0_8px_40px_rgba(0,0,0,0.9)] sm:pt-0 sm:text-headline-xl lg:text-headline-2xl\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-orange\",\"children\":\"404 Route not found\"}],\",\",[\"$\",\"br\",null,{}],\"but your agent kept running.\"]}],\"description\":[\"$\",\"p\",null,{\"className\":\"mx-auto mt-3 max-w-2xl text-balance font-sans text-body-sm leading-7 text-ds-main-gray drop-shadow-[0_4px_24px_rgba(0,0,0,0.9)] sm:text-body\",\"children\":\"Help it complete the workflow and avoid an error trace.\"}]}]]}],\"$L7\"]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3l-4jj81zpd-v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3gb0tb3v514tx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L8\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/36mbjjiqpcnpb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"async\":true,\"nonce\":\"$undefined\"}],\"$L9\",\"$La\",\"$Lb\"],\"$Lc\"]}],{},null,false,null]},null,false,\"$d\"]},null,false,\"$d\"]},null,false,null],\"$Le\",false]],\"m\":\"$undefined\",\"G\":[\"$f\",[\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\"]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"CuRgDyJWYpjS4ozEXtN0o\"}\n17:I[832222,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"OutletBoundary\"]\n18:\"$Sreact.suspense\"\n1a:I[832222,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"ViewportBoundary\"]\n1c:I[832222,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"async\":true,\"nonce\":\"$undefined\"}
182]\na:[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nb:[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nc:[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@19\"}]}]\ne:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n10:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/0tom-9wncp29o.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n11:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1tgmw_008sseu.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n12:[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1laydpwcl507_.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n13:[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/2a1kg4-oqt4cr.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n14:[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/30agtboqrg1qd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n15:[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1re0slxr72nbi.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n16:[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/39x7xm7ajfqc7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n1f:I[317325,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"Analytics\"]\n20:I[256759,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"ConsentProvider\"]\n23:I[305305,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterShaderPortalHost\"]\n24:I[586668,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"LazyToaster\"]\n25:I[707773,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"AntiGridDebug\"]\nd:C\n1e:T5c1,\n(function () {\n try {\n var ATTR = \"data-auth-hint\";\n var EVENT = \"mastra-auth-hint\";\n var WINDOW_KEY = \"__mastraAuthHint\";
182\n\n function resolve(authed) {\n try {\n document.documentElement.setAttribute(\n ATTR,\n authed === true ? \"authed\" : authed === false ? \"anon\" : \"unknown\"\n );\n } catch (e) {}\n try {\n document.dispatchEvent(new CustomEvent(EVENT));\n } catch (e) {}\n }\n\n function parseHint(data) {\n if (typeof data !== \"object\" || data === null) return null;\n if (!(\"authed\" in data)) return null;\n var value = data.authed;\n return typeof value === \"boolean\" ? value : null;\n }\n\n function fetchHint() {\n var promise = fetch(\"/api/auth/hint\", { credentials: \"same-origin\" })\n .then(function (response) {\n if (!response.ok) {\n resolve(null);\n return null;\n }\n return response.json();\n })\n .then(function (data) {\n resolve(parseHint(data));\n })\n .catch(function () {\n resolve(null);\n })\n .finally(function () {\n if (window[WINDOW_KEY] === promise) {\n window[WINDOW_KEY] = null;\n }\n });\n window[WINDOW_KEY] = promise;\n return promise;\n }\n\n try {\n document.documentElement.setAttribute(ATTR, \"unknown\");\n } catch (e) {}\n\n window[WINDOW_KEY] = null;\n fetchHint();\n } catch (e) {}\n})();\n2:[\"$\",\"html\",null,{\"lang\":\"en\",\"data-scroll-behavior\":\"smooth\",\"className\":\"commitmono_646427da-module__jSfceG__variable greed_2f85d8aa-module__tlRNVa__variable antialiased dark font-sans\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$1e\"}}],false,[\"$\",\"$L1f\",null,{}],[\"$\",\"$L20\",null,{\"children\":[\"$L21\",\"$L22\",[\"$\",\"$L23\",null,{}],[\"$\",\"$L24\",null,{}],false,[\"$\",\"$L25\",null,{}]]}]]}]}]\n1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#020202\"}],[\"$\",\"meta\",\"3\",{\"name\":\"color-scheme\",\"content\":\"dark\"}]]\n26:I[789516,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"IconMark\"]\n19:null\n1d:[[\"$\",\"title\",\"0\",{\"children\":\"Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Mastra.ai articles - In-depth pieces on building AI agents.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"sentry-trace\",\"content\":\"4975ae8c3d0485517117640a6ee63c45-f9c51f2b85858a31-1\"}],[\"$\",\"meta\",\"3\",{\"name\":\"baggage\",\"content\":\"sentry-environment=vercel-production,sentry-release=ae47bac364170a850db499abe60f14efdc3faf1c,sentry-public_key=eff91afdc73645f3f7de729456be7d68,sentry-trace_id=4975ae8c3d0485517117640a6ee63c45,sentry-org_id=4509090735783936,sentry-transaction=GET%20%2Ftemplates%2F%5Bslug%5D,sentry-sampled=true,sentry-sample_rand=0.9942697144454259,sentry-sample_rate=1\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://mastra.ai/articles\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Mastra.ai articles - In-depth pieces on building AI agents.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://mastra.ai/articles\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image\",\"content\":\"https://mastra.ai/api/og/page?title=Articles\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:title\",\"content\":\"Mastra Articles: Long-form pieces on AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:description\",\"content\":\"Mastra.ai articles - In-depth pieces on building AI agents.\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:image\",\"content\":\"https://mastra.ai/api/og/page?title=Articles\"}],[\"$\",\"link\",\"13\",{\"rel\":\"icon\",\"href\":\"/favicon/new-brand/favicon.ico\",\"sizes\":\"32x32\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/favicon/new-brand/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"15\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon/new-brand/apple-touch-icon.png\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"/favicon/new-brand/icon-512.png\",\"type\":\"image/png\",\"sizes\":\"512x512\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon/new-brand/icon-192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\"}],[\"$\",\"$L26\",\"18\",{}]]\n27:T1723,{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"name\":\"Mastra\",\"legalName\":\"Kepler Software Inc\",\"alternateName\":[\"Mastra AI\",\"mastra-ai\",\"@mastra/core\"],\"url\":\"https://mastra.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mastra.ai/brand/mastra-logo-wordmark.png\",\"width\":4096,\"height\"
182:1001,\"caption\":\"Mastra\"},\"disambiguatingDescription\":\"Mastra is an open-source TypeScript framework for building AI agents and AI-powered applications, created by the team behind Gatsby.js. Mastra is not affiliated with Mastra Italian Bakery Bistro in Utah or any European consumer product brands that share the Mastra name.\",\"description\":\"Mastra is an open-source TypeScript framework for building AI-powered applications and agents. Mastra provides AI primitives including agents, workflows, workspaces, memory, MCP servers, observability and evals for TypeScript and JavaScript developers.\",\"foundingDate\":\"2024-10\",\"founder\":[{\"@type\":\"Person\",\"name\":\"Sam Bhagwat\",\"jobTitle\":\"CEO\",\"sameAs\":[\"https://www.linkedin.com/in/sambhagwat\",\"https://x.com/calcsam\",\"https://mastra.ai/authors/sam-bhagwat\"],\"alumniOf\":{\"@type\":\"CollegeOrUniversity\",\"name\":\"Stanford University\"},\"affiliation\":{\"@type\":\"Organization\",\"name\":\"Gatsby\",\"url\":\"https://www.gatsbyjs.com\",\"description\":\"Gatsby is an open-source React web framework used by hundreds of thousands of developers.\"}},{\"@type\":\"Person\",\"name\":\"Abhi Aiyer\",\"jobTitle\":\"CTO\",\"sameAs\":[\"https://www.linkedin.com/in/abhi-aiyer-aa41bb42\",\"https://x.com/abhiaiyer\",\"https://github.com/abhiaiyer91\",\"https://mastra.ai/authors/abhi-aiyer\"],\"affiliation\":{\"@type\":\"Organization\",\"name\":\"Gatsby\",\"url\":\"https://www.gatsbyjs.com\",\"description\":\"Gatsby is an open-source React web framework used by hundreds of thousands of developers.\"}},{\"@type\":\"Person\",\"name\":\"Shane Thomas\",\"jobTitle\":\"CPO\",\"sameAs\":[\"https://www.linkedin.com/in/smthomas3\",\"https://x.com/smthomas3\",\"https://github.com/smthomas\",\"https://mastra.ai/authors/shane-thomas\"],\"affiliation\":{\"@type\":\"Organization\",\"name\":\"Gatsby\",\"url\":\"https://www.gatsbyjs.com\",\"description\":\"Gatsby is an open-source React web framework used by hundreds of thousands of developers.\"}}],\"sameAs\":[\"https://github.com/mastra-ai\",\"https://github.com/mastra-ai/mastra\",\"https://x.com/mastra\",\"https://www.youtube.com/@mastra-ai\",\"https://www.ycombinator.com/companies/mastra\",\"https://www.crunchbase.com/organization/mastra-44ba\",\"https://www.producthunt.com/products/mastra\",\"https://www.npmjs.com/package/@mastra/core\",\"https://dev.to/mastra_ai\"],\"knowsAbout\":[\"TypeScript\",\"AI agents\",\"AI agent frameworks\",\"Model Context Protocol\",\"large language models\",\"retrieval-augmented generation\",\"JavaScript\",\"open-source software\"],\"memberOf\":{\"@type\":\"Organization\",\"name\":\"Y Combinator\",\"url\":\"https://www.ycombinator.com\",\"description\":\"Y Combinator is a startup accelerator based in San Francisco.\"},\"makesOffer\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":[\"SoftwareSourceCode\",\"S
182oftwareApplication\"],\"name\":\"Mastra Framework\",\"alternateName\":[\"Mastra AI Framework\",\"@mastra/core\"],\"description\":\"Open-source TypeScript framework for building AI agents and AI-powered applications with workflows, workspaces, memory, MCP servers, observability, and evals.\",\"url\":\"https://mastra.ai/ai-agent-framework\",\"codeRepository\":\"https://github.com/mastra-ai/mastra\",\"programmingLanguage\":\"TypeScript\",\"runtimePlatform\":\"Node.js\",\"license\":\"https://www.apache.org/licenses/LICENSE-2.0\",\"applicationCategory\":\"AI Agent Framework\",\"operatingSystem\":\"Cross-platform\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"ratingCount\":28313}}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"SoftwareApplication\",\"name\":\"Mastra Studio\",\"description\":\"Monitor, improve, and collaborate on your agents. Understand agent performance, iterate fast, and ship better agents with Studio.\",\"url\":\"https://mastra.ai/studio\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Cross-platform\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"ratingCount\":28313}}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"SoftwareApplication\",\"name\":\"Mastra Server\",\"description\":\"Deploy from the CLI, monitor every deploy, and connect to any front-end. Run your Mastra agents on a platform purpose-built for them.\",\"url\":\"https://mastra.ai/ai-agent-deployment\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Cross-platform\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"ratingCount\":28313}}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"SoftwareApplication\",\"name\":\"Gateway\",\"alternateName\":[\"Mastra Gateway\",\"Memory Gateway\",\"AI Gateway\"],\"description\":\"Route all LLM traffic through a single gateway. Add observational memory, access 300+ models, and get transparent pricing.\",\"url\":\"https://mastra.ai/ai-gateway\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Cross-platform\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"ratingCount\":28313}}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"SoftwareApplication\",\"name\":\"Mastra Code\",\"description\":\"AI coding agent that helps developers build software using Mastra's AI primitives, available as an interactive terminal interface.\",\"url\":\"https://code.mastra.ai\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Cross-platform\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":5,\"bestRating\":5,\"ratingCount\":28313}}}]}21:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$27\"}}]\n29:I[871395,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"SectionStageShell\"]\n28:T89e,{\"@context\":\"https://schema.org\",\"@type\":\"ItemList\",\"
182itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"The 9 Best AI Agent Auth Solutions (August 2026): Features, Use Cases, and Architectures\",\"url\":\"https://mastra.ai/articles/best-ai-agent-auth-solutions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The 9 Best Email Inbox APIs for SaaS Products (August 2026): Features, Use Cases, and Architectures\",\"url\":\"https://mastra.ai/articles/best-email-inbox-apis-for-saas-products\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The 9 Best Natoma Alternatives (August 2026): Features, Use Cases, and Architectures\",\"url\":\"https://mastra.ai/articles/best-natoma-alternatives\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AI agents for marketing: 10 best platforms for 2026\",\"url\":\"https://mastra.ai/articles/ai-agents-for-marketing\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"No-code AI agent builder: how to choose one in 2026\",\"url\":\"https://mastra.ai/articles/no-code-ai-agent-builder\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"AI agent architecture: patterns, components, and production design\",\"url\":\"https://mastra.ai/articles/ai-agent-architecture\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"Prompt caching: how it works and how to cut LLM token costs\",\"url\":\"https://mastra.ai/articles/prompt-caching\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Langfuse vs LangSmith: a hands-on comparison for LLM observability\",\"url\":\"https://mastra.ai/articles/langfuse-vs-langsmith\"},{\"@type\":\"ListItem\",\"position\":9,\"name\":\"LLM vs generative AI: key differences and how to choose\",\"url\":\"https://mastra.ai/articles/llm-vs-generative-ai\"},{\"@type\":\"ListItem\",\"position\":10,\"name\":\"The 9 Best AI Browser Automation Platforms (August 2026): Features, Tradeoffs, and Use Cases\",\"url\":\"https://mastra.ai/articles/best-ai-browser-automation-platforms\"},{\"@type\":\"ListItem\",\"position\":11,\"name\":\"The 10 Best AI Voice Tools (August 2026): Features, Use Cases, and Architecture\",\"url\":\"https://mastra.ai/articles/best-ai-voice-tools\"},{\"@type\":\"ListItem\",\"position\":12,\"name\":\"The 9 Best Databases for AI Agents (August 2026): Features, Tradeoffs, and Use Cases\",\"url\":\"https://mastra.ai/articles/best-databases-for-ai-agents\"}]}8:[\"$\",\"div\",null,{\"className\":\"sections-grid blog-page overflow-x-clip\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://mastra.ai/\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Articles\\\",\\\"item\\\":\\\"https://mastra.ai/articles\\\"}]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$28\"}}],[\"$\",\"section\",null,{\"className\":\"ds-section [--ds-section-stage-shell-fill:transparent] [\u0026_.ds-section--stage-content]:pb-14 [\u0026_.ds-section--stage-content]:pt-24 md:[\u0026_.ds-section--stage-content]:pt-[120px] ds-section--inverse-bottom\",\"children\":[false,[\"$\",\"$L29\",null,{\"variant\":\"inverse-bottom\",\"contentPadding\":\"$undefined\",\"className\":\"ds-section--stage-shell-inverse-bottom\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex max-w-[760px] flex-col gap-6\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"font-serif text-ds-main-white text-headline-2xl\",\"children\":\"Mastra Articles\"}],[\"$\",\"p\",null,{\"className\":\"max-w-[560px] text-[1.0625rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Long-form articles and engineering deep-dives on building AI agents, workflows, and TypeScript tooling with Mastra.\"}]]}],\"$L2a\"]}]}]]}],\"$L2b\",\"$L2c\"]}]\n2e:I[599361,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"ClientSideSearchSection\"]\n2f:I[55180,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"\"]\n30:I[137965,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"Image\"]\n3c:I[305305,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterShaderBackdrop\"]\n3d:I[798243,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterHeroCtas\"]\n2a:[\"$\",\"div\",null,{\"className\":\"flex w-full flex-wrap items-center gap-3\",\"children\":[\"$L2d\",[\"$\",\"$L2e\",null,{\"query\":\"\",\"posts\":[{\"slug\":\"best-ai-agent-auth-solutions\",\"data\":{\"title\":\"The 9 Best AI Agent Auth Solutions (August 2026): Features, Use Cases, and Architectures\",\"publishedAt\":\"2026-08-24\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine AI agent auth solutions, explains how they approach identity and authorization, and helps you choose the right auth infrastructure for your AI application.\"}},{\"slug\":\"best-email-inbox-apis-for-saas-products\",\"data\":{\"title\":\"The 9 Best Email Inbox APIs for SaaS Products (August 2026): Features, Use Cases, and Architectures\",\"publishedAt\":\"2026-08-24\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine email inbox APIs and related email infrastructure for SaaS products, explains how their approaches differ, and helps you choose the right option for your application.\"}},{\"slug\":\"best-natoma-alternatives\",\"data\":{\"title\":\"The 9 Best Natoma Alternatives (August 2026): Features, Use Cases, and Architectures\",\"publishedAt\":\"2026-08-24\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine Natoma alternatives, explains how they approach agent access, governance, and integrations, and helps you choose the right platform for your AI application.\"}},{\"slug\":\"ai-agents-for-marketing\",\"data\":{\"title\":\"AI agents for marketing: 10 best platforms for 2026\",\"publishedAt\":\"2026-08-18\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"See the 10 best AI agents for marketing in 2026, what each is built for, and how to build your own with governance and evals in place.\"}}
182,{\"slug\":\"no-code-ai-agent-builder\",\"data\":{\"title\":\"No-code AI agent builder: how to choose one in 2026\",\"publishedAt\":\"2026-08-18\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to choose a no-code AI agent builder in 2026: 12 platforms ranked, the capabilities worth scoring, and when to move to code.\"}},{\"slug\":\"ai-agent-architecture\",\"data\":{\"title\":\"AI agent architecture: patterns, components, and production design\",\"publishedAt\":\"2026-08-17\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn AI agent architecture from components to orchestration patterns, memory, observability, and production design choices for building reliable agents.\"}},{\"slug\":\"prompt-caching\",\"data\":{\"title\":\"Prompt caching: how it works and how to cut LLM token costs\",\"publishedAt\":\"2026-08-17\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how prompt caching works, how providers price cached tokens, and how to structure prompts and monitor cache hits to cut LLM token costs.\"}},{\"slug\":\"langfuse-vs-langsmith\",\"data\":{\"title\":\"Langfuse vs LangSmith: a hands-on comparison for LLM observability\",\"publishedAt\":\"2026-08-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"A hands-on Langfuse vs LangSmith comparison covering tracing, evals, prompt management, integrations, self-hosting, and pricing for LLM observability.\"}},{\"slug\":\"llm-vs-generative-ai\",\"data\":{\"title\":\"LLM vs generative AI: key differences and how to choose\",\"publishedAt\":\"2026-08-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"LLM vs generative AI explained: how they differ in scope, architecture, and use cases, plus how to choose the right approach for your app.\"}},{\"slug\":\"best-ai-browser-automation-platforms\",\"data\":{\"title\":\"The 9 Best AI Browser Automation Platforms (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine leading AI browser automation platforms, explains how their architectures differ, and helps you choose the right approach for building browser-based AI agents.\"}},{\"slug\":\"best-ai-voice-tools\",\"data\":{\"title\":\"The 10 Best AI Voice Tools (August 2026): Features, Use Cases, and Architecture\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares 10 leading voice AI tools, explains the architectural differences between them, and helps you choose the right voice infrastructure for your next AI application.\"}},{\"slug\":\"best-databases-for-ai-agents\",\"data\":{\"title\":\"The 9 Best Databases for AI Agents (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine leading databases for AI agents, explains where each one excels, and helps you choose the right data infrastructure for your next AI application.\"}},{\"slug\":\"best-mcp-gateways\",\"data\":{\"title\":\"The 9 Best MCP Gateways (August 2026): Features, Differences, and Use Cases\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares nine leading MCP gateways, explains how they approach governance and infrastructure, and helps you choose the right gateway for your AI application.\"}},{\"slug\":\"custom-ai-agents\",\"data\":{\"title\":\"Custom AI agents: how to build, deploy, and scale them\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to build, deploy, and scale custom AI agents in TypeScript, from model selection and tools to memory, guardrails, evals, and observability.\"}},{\"slug\":\"generative-ai-examples\",\"data\":{\"title\":\"Generative AI examples: real-world uses by industry\",\"publishedAt\":\"2026-08-15\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"See generative AI examples across healthcare, finance, retail, and software, plus how developers build, evaluate, and ship gen AI apps.\"}},{\"slug\":\"prompt-engineering\",\"data\":{\"title\":\"What is prompt engineering? A developer's guide\",\"publishedAt\":\"2026-08-14\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"What is prompt engineering? Learn the definition, techniques, best practices, and how prompts evolve into context engineering for production AI agents.\"}},{\"slug\":\"ai-calendar-assistants\",\"data\":{\"title\":\"7 Best AI Calendar Assistants in 2026\",\"publishedAt\":\"2026-08-13\",\"draft\":false,\"categories\":[\"foun
182dations\"],\"author\":\"Sam Bhagwat\",\"summary\":\"AI calendar assistants automate schedule planning and time management, and they split into booking and routing tools, conversational schedulers, calendar optimizers, task planners and meeting-workflow assistants. This piece compares seven of them and the features each one offers.\"}},{\"slug\":\"ai-code-review-tools\",\"data\":{\"title\":\"6 Best AI Code Review Tools for Pull Requests in 2026\",\"publishedAt\":\"2026-08-13\",\"draft\":false,\"categories\":[\"foundations\"],\"author\":\"Sam Bhagwat\",\"summary\":\"An AI code review tool examines source changes and reports possible defects, security problems, policy violations or missed requirements. This piece ranks six of them by how well they understand code beyond the diff and how much control a team keeps over the review.\"}},{\"slug\":\"vibe-coding-platforms\",\"data\":{\"title\":\"6 Best Vibe Coding Platforms in 2026\",\"publishedAt\":\"2026-08-12\",\"draft\":false,\"categories\":[\"foundations\"],\"author\":\"Aron Schuhmann\",\"summary\":\"Vibe coding platforms all turn a prompt into a working application, so the useful differences sit elsewhere. This piece compares six of them on build scope, planning workflow, backend and hosting, native mobile output, code ownership, testing and recovery, and cost.\"}},{\"slug\":\"zapier-alternatives\",\"data\":{\"title\":\"6 Best Zapier Alternatives in 2026\",\"publishedAt\":\"2026-08-12\",\"draft\":false,\"categories\":[\"foundations\"],\"author\":\"Sam Bhagwat\",\"summary\":\"Zapier handles most deterministic automation well, but agentic and non-deterministic work exposes gaps such as per-user authorization, inspectable branching and deployment control. This piece covers six alternatives, each the strongest answer to one of those requirements.\"}},{\"slug\":\"ai-agents-for-business\",\"data\":{\"title\":\"AI agents for business: what they automate, where they fail\",\"publishedAt\":\"2026-08-11\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what AI agents for business can reliably automate, where they fall short, how to deploy them safely, and how to test agents in production.\"}},{\"slug\":\"best-ai-tools-for-business\",\"data\":{\"title\":\"Best AI tools for business in 2026: tested and ranked\",\"publishedAt\":\"2026-08-11\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best AI tools for business by category, from chatbots and analytics to agent frameworks, with honest strengths, trade-offs, and pricing.\"}},{\"slug\":\"ai-agent-stack\",\"data\":{\"title\":\"The AI agent stack: layers, tools, and how to build in 2026\",\"publishedAt\":\"2026-08-10\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"A developerâs guide to the AI agent stack in 2026: models, tools, memory, frameworks, evals, guardrails, and deployment, with real tradeoffs at each layer.\"}},{\"slug\":\"llm-as-a-judge\",\"data\":{\"title\":\"LLM as a judge: how to evaluate LLM and agent outputs at scale\",\"publishedAt\":\"2026-08-10\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what LLM as a judge is, how to build a reliable LLM judge, avoid bias, and evaluate agent outputs at scale with prompting and calibration methods.\"}},{\"slug\":\"agent-builder\",\"data\":{\"title\":\"Agent builder: how to build, test, and deploy AI agents\",\"publishedAt\":\"2026-08-09\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what an AI agent builder is, the core building blocks of an AI agent, and how to build, test, and deploy your first agent to production.\"}},{\"slug\":\"ai-agents-news\",\"data\":{\"title\":\"AI agents news: latest developments, adoption trends, and whatâs next\",\"publishedAt\":\"2026-08-09\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"AI agents news, adoption trends, use cases, and production challenges. Learn where agentic AI stands and what developers should watch next.\"}},{\"slug\":\"crewai\",\"data\":{\"title\":\"CrewAI multi-agent framework: architecture and use\",\"publishedAt\":\"2026-08-08\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how the CrewAI multi-agent framework works, how to build and test crews, and how to run production multi-agent systems.\"}},{\"slug\":\"open-source-llm\",\"data\":{\"title\":\"Your open source LLM guide for 2026: models, benefits, and deployment\",\"publishedAt\":\"2026-08-08\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best open source LLM models in 2026, how licensing works, deployment tradeoffs, and how to evaluate and run open models in production.\"}},{\"slug\":\"context-engineering\",\"data\":{\"title\":\"Context engineering for AI agents: a practical guide\",\"publishedAt\":\"2026-08-07\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what context engineering is, how it differs from prompt engineering, and the strategies for managing context in production agent systems.\"}},{\"slug\":\"generative-ai-models\",\"data\":{\"title\":\"Generative AI models: types and how they work\",\"publishedAt\":\"2026-08-07\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what generative AI models are, the main types of generative AI models, how they work, and how to build and evaluate them in TypeScript.\"}},{\"slug\":\"generative-ai-tools\",\"data\":{\"title\":\"Generative AI tools: what they are and how they work\",\"publishedAt\":\"2026-08-06\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Explore the main types of generative AI tools, real examples like ChatGPT and Gemini, and how developers build production apps with models, RAG, and evals\"}},{\"slug\":\"multi-agent-systems\",\"data\":{\"title\":\"Multi-agent systems: architectures, frameworks, and real-world applications\",\"publishedAt\":\"2026-08-05\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how multi-agent systems work, compare architectures and frameworks, and see how to build, debug, and evaluate multi-agent AI systems in production.\"}},{\"slug\":\"long-term-memory-ai-agents\",\"data\":{\"title\":\"Long-term memory for AI agents: what it is and how to build it\",\"publishedAt\":\"2026-08-04\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what long-term memory means for AI agents, why larger context windows fall short, which memory types matter, and how to design persistent retrieval.\"}},{\"slug\":\"langgraph\",\"data\":{\"title\":\"LangGraph: the complete guide to stateful AI agent orchestration\",\"publishedAt\":\"2026-08-03\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what LangGraph is, how its graph-based architecture handles stateful AI agents, and when to choose it over LangChain for c
182omplex workflows.\"}},{\"slug\":\"llm-leaderboard\",\"data\":{\"title\":\"LLM leaderboard: how to read, compare, and use benchmark rankings\",\"publishedAt\":\"2026-08-03\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to read LLM leaderboards, compare benchmark scores across reasoning, coding, and safety, and run your own evals to pick the right model.\"}},{\"slug\":\"embedding\",\"data\":{\"title\":\"Embeddings in machine learning: what they are, how they work, and when to use them\",\"publishedAt\":\"2026-08-02\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what an embedding is, how embedding models work, and how to use embeddings for semantic search, RAG pipelines, and AI agent memory in production.\"}},{\"slug\":\"guardrails\",\"data\":{\"title\":\"Guardrails for AI agents: a practical guide for TypeScript developers\",\"publishedAt\":\"2026-08-02\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to implement guardrails for AI agents in TypeScript, from input validation and PII detection to tripwires, classifiers, and observability.\"}},{\"slug\":\"ai-automation-tools\",\"data\":{\"title\":\"AI automation tools in 2026: a practical guide for every use case\",\"publishedAt\":\"2026-08-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best AI automation tools for workflows, agents, content, and meetings. Honest breakdowns with strengths, trade-offs, and use-case verdicts.\"}},{\"slug\":\"ai-hallucination\",\"data\":{\"title\":\"AI hallucination: what it is, why it happens, and how to reduce it\",\"publishedAt\":\"2026-08-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what an AI hallucination is, why language models produce false outputs, and practical techniques to detect and reduce hallucinations.\"}},{\"slug\":\"best-ai-agent-search-tools\",\"data\":{\"title\":\"The 10 Best AI Agent Search Tools (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-08-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares 10 leading AI agent search tools, explains where each one excels, and helps you choose the right search infrastructure for your next AI application.\"}},{\"slug\":\"best-serverless-postgres-databases\",\"data\":{\"title\":\"The 11 Best Serverless Postgres Databases (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-08-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares 11 leading serverless Postgres databases and adjacent PostgreSQL platforms for serverless applications, explains where each one excels, and helps you choose the right database infrastructure for your next application.\"}},{\"slug\":\"best-vector-database-providers\",\"data\":{\"title\":\"The 11 Best Vector Database Providers (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-08-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares 11 leading vector database providers, explains where each one excels, and helps you choose the right retrieval infrastructure for your next AI application.\"}},{\"slug\":\"ai-assistants\",\"data\":{\"title\":\"AI assistants: how they work, what they do, and where theyâre headed\",\"publishedAt\":\"2026-07-31\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what AI assistants are, how they work, the key types and use cases, and how they compare to AI agents. Practical guide for teams building with AI.\"}},{\"slug\":\"agentic-ai-tools\",\"data\":{\"title\":\"Agentic AI tools: a complete guide for teams building with autonomous AI\",\"publishedAt\":\"2026-07-30\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what agentic AI tools are, how they differ from traditional automation and generative AI, and how to build and evaluate autonomous AI agents.\"}}
182,{\"slug\":\"best-ai-agents\",\"data\":{\"title\":\"Best AI agents in 2026: tested, compared, and ranked\",\"publishedAt\":\"2026-07-26\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best AI agents in 2026 for reasoning, coding, research, enterprise workflows, and multi-agent systems, with practical selection guidance.\"}},{\"slug\":\"agent-swarm\",\"data\":{\"title\":\"Agent swarm: what it is, how it works, and how to build one\",\"publishedAt\":\"2026-07-25\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what an agent swarm is, how multi-agent architectures work, and how to design, build, and observe production-ready agent swarms in TypeScript.\"}},{\"slug\":\"best-llm-for-coding\",\"data\":{\"title\":\"Best LLM for coding: a developerâs guide to top models in 2026\",\"publishedAt\":\"2026-07-24\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best LLMs for coding in 2026 across performance, context, cost, privacy, and production fit, with practical model-selection guidance.\"}},{\"slug\":\"llm-evaluation\",\"data\":{\"title\":\"LLM evaluation: frameworks, metrics, methods, and best practices\",\"publishedAt\":\"2026-07-24\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to evaluate LLMs with proven metrics, benchmarks, LLM-as-a-judge methods, and agent evaluation strategies for development and production.\"}},{\"slug\":\"trace-id\",\"data\":{\"title\":\"Trace ID explained: what it is, how it works, and when to use it\",\"publishedAt\":\"2026-07-23\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what a trace ID is, how it differs from a correlation ID, and how to implement distributed tracing with OpenTelemetry in your services.\"}},{\"slug\":\"ai-agent-examples\",\"data\":{\"title\":\"AI agent examples: Real-world use cases across industries\",\"publishedAt\":\"2026-07-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Explore real-world AI agent examples across finance, healthcare, retail, and more. Learn agent types, production patterns, and how to build your own.\"}},{\"slug\":\"generative-ai-vs-predictive-ai\",\"data\":{\"title\":\"Generative AI vs predictive AI: Whatâs the difference?\",\"publishedAt\":\"2026-07-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Your guide to generative AI vs predictive AI: how each works, real use cases, tradeoffs, and how to choose the right approach.\"}},{\"slug\":\"ai-agent-orchestration\",\"data\":{\"title\":\"AI agent orchestration: patterns, architecture, and implementation\",\"publishedAt\":\"2026-07-21\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn AI agent orchestration patterns, architecture, implementation steps, observability practices, risks, and framework choices for production systems.\"}},{\"slug\":\"best-ai-agent-sandbox-platforms\",\"data\":{\"title\":\"The 6 Best AI Agent Sandbox Platforms (August 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-21\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares six leading AI agent sandbox platforms, explains where each one excels, and helps you choose the right execution infrastructure for your next AI application.\"}},{\"slug\":\"how-to-create-a-chatbot\",\"data\":{\"title\":\"How to create a chatbot: a complete guide for developers\",\"publishedAt\":\"2026-07-20\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to create a chatbot with LLM APIs. Covers the request loop, prompt design, tool calling, RAG, deployment, and production observability.\"}},{\"slug\":\"workflow-orchestration\",\"data\":{\"title\":\"Workflow orchestration: a complete guide\",\"publishedAt\":\"2026-07-20\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what workflow orchestration is, how it compares to automation, common patterns like DAGs and state machines, and how to implement it for AI agents.\"}},{\"slug\":\"agent-memory-platform\",\"data\":{\"title\":\"Agent memory platform: how AI agents store, retrieve, and use context\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"Learn how an agent memory platform stores, retrieves, and applies context across sessions. Covers memory types, retrieval pipelines, tools, and evaluation.\"}},{\"slug\":\"agent-memory\",\"data\":{\"title\":\"Agent memory: types, techniques, and implementation guide\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how agent memory works, from short
182-term buffers to observational recall. Explore types, engineering patterns, and production implementation strategies.\"}},{\"slug\":\"agent-systems\",\"data\":{\"title\":\"Agent systems: architectures, patterns, and how to build for production\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"Learn how agent systems work, when to use single vs. multi-agent architectures, and how to build agent systems with context engineering and observability.\"}},{\"slug\":\"agentic-rag\",\"data\":{\"title\":\"Agentic RAG: how it works, core architectures, and production tradeoffs\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"Learn how agentic RAG improves on traditional retrieval with multi-hop reasoning, self-correction, and production-ready orchestration in TypeScript.\"}},{\"slug\":\"agentic-workflows\",\"data\":{\"title\":\"Agentic workflows: how they work, key components, and how to build them\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how agentic workflows work, what components you need, and how to build one step by step, including observability, testing, and real-world use cases.\"}},{\"slug\":\"ai-agent-evaluation\",\"data\":{\"title\":\"How to build AI agent evaluation that ships reliable agents\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Shane Thomas\",\"summary\":\"Choose metrics, build graders, run evals in CI/CD, and monitor production to catch failures before your users do.\"}},{\"slug\":\"ai-agent-framework\",\"data\":{\"title\":\"AI agent framework: a practical guide to choosing and using the right one\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare AI agent frameworks, learn key selection criteria, and explore TypeScript patterns for agents, workflows, memory, and observability.\"}},{\"slug\":\"ai-agent-hosting\",\"data\":{\"title\":\"AI agent hosting: options, setup, and deployment for production\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare AI agent hosting options from serverless to containers. Learn how to deploy, observe, and scale TypeScript agents in production.\"}},{\"slug\":\"ai-agent-observability\",\"data\":{\"title\":\"AI agent observability: a complete guide for production teams\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how AI agent observability works, its core pillars, best practices for tracing and evals, and how to monitor agents reliably in production.\"}},{\"slug\":\"ai-agent-workflows\",\"data\":{\"title\":\"AI agent workflows: a complete guide for developers\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how AI agent workflows work, common patterns like routing and parallelization, and how to build, evaluate, and monitor agentic workflows in production.\"}},{\"slug\":\"ai-agents\",\"data\":{\"title\":\"AI agents: what they are, how they work, and how to build with them\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn what AI agents are, how they reason and act with tools, the five classical types, and practical guidance for building, testing, and deploying your own.\"}},{\"slug\":\"ai-gateway\",\"data\":{\"title\":\"AI gateway: one integration point for every provider\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Shane Thomas\",\"summary\":\"Learn what an AI gateway does, how it routes requests across providers, and how to implement one for cost control, observability, and reliability.\"}},{\"slug\":\"ai-workflow-automation\",\"data\":{\"title\":\"AI workflow automation: how to build reliable pipelines that handle complexity at scale\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Build AI workflow automation that handles complexity at scale, with branching, conditions, and human-in-the-loop checkpoints that adapt where rules can't.\"}},{\"slug\":\"ai-workflows\",\"data\":{\"title\":\"AI workflows: what they are, how they work, and how to build them\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"AI workflows combine LLMs, tools, and orchestration logic to automate complex tasks. Learn key components, use cases, and how to monitor them.\"}},{\"slug\":\"how-to-build-ai-agents\",\"data\":{\"title\":\"How to build AI agents: a practical guide for developers\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"Learn how to build AI agents in TypeScript with practical patterns for tool design, guardrails, evals, and production-ready deployment.\"}},{\"slug\":\"langchain-alternatives\",\"data\":{\"title\":\"LangChain alternatives: the best frameworks for LLM development in 2026\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Compare the best LangChain alternatives for 2026, from AI agent frameworks and RAG tools to enterprise platforms and direct LLM access.\"}},{\"slug\":\"llm-observability-platform\",\"data\":{\"title\":\"LLM observability platform: a complete guide for AI teams\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Abhi Aiyer\",\"summary\":\"Learn how to instrument, monitor, and evaluate LLM apps in production with traces, metrics, evals, and the right observability platform for your stack.\"}},{\"slug\":\"rag-chatbot\",\"data\":{\"title\":\"RAG chatbot: a complete guide for Type
182Script developers\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how to build a RAG chatbot in TypeScript, from embeddings and chunking to retrieval, evals, and deployment with Mastra.\"}},{\"slug\":\"rag-framework\",\"data\":{\"title\":\"RAG framework guide: how retrieval-augmented generation works and which tools to use\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Sam Bhagwat\",\"summary\":\"Learn how a RAG framework connects LLMs to external data. Covers RAG architecture, tools like LangChain and LlamaIndex, and how to build a pipeline.\"}},{\"slug\":\"rag-platforms\",\"data\":{\"title\":\"RAG platforms: what they are, how they work, and how to choose one\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Aron Schuhmann\",\"reviewer\":\"Shane Thomas\",\"summary\":\"Learn what a RAG platform does, how RAG pipelines work end to end, and what to evaluate when choosing one for production AI agents.\"}},{\"slug\":\"mastra-vs-ai-sdk\",\"data\":{\"title\":\"Mastra vs AI SDK\",\"publishedAt\":\"2026-06-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Hashim Warren\",\"summary\":\"Compare Mastra and AI SDK to understand when to use model integration and UI primitives versus a production framework for building and operating agents.\"}}]}]]}]\n2b:[\"$\",\"section\",null,{\"className\":\"ds-section ds-section--inverse-bottom ds-section--inverse-top\",\"children\":[false,[\"$\",\"$L29\",null,{\"variant\":\"inverse\",\"contentPadding\":\"$undefined\",\"className\":\"ds-section--stage-shell-inverse\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid gap-6 lg:grid-cols-2\",\"children\":[[\"$\",\"$L2f\",\"best-ai-agent-auth-solutions\",{\"href\":\"/articles/best-ai-agent-auth-solutions\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 9 Best AI Agent Auth Solutions (August 2026): Features, Use Cases, and Architectures\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares nine AI agent auth solutions, explains how they approach identity and authorization, and helps you choose the right auth infrastructure for your AI application.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 24, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}],[\"$\",\"$L2f\",\"best-email-inbox-apis-for-saas-products\",{\"href\":\"/articles/best-email-inbox-apis-for-saas-products\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 9 Best Email Inbox APIs for SaaS Products (August 2026): Features, Use Cases, and Architectures\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares nine email inbox APIs and related email infrastru
182cture for SaaS products, explains how their approaches differ, and helps you choose the right option for your application.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 24, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}],\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\"]}],\"$L3b\"]}]]}]\n2c:[\"$\",\"section\",null,{\"data-footer-cta\":\"\",\"aria-label\":\"Footer call to action\",\"className\":\"relative isolate flex min-h-[420px] w-full flex-col items-center justify-start bg-ds-surface-bg px-6 pb-24 pt-28 text-center sm:min-h-[520px] md:h-[736px] md:min-h-0 md:px-0 md:pb-0 md:pt-[257px]\",\"children\":[[\"$\",\"$L3c\",null,{\"className\":\"bottom-auto top-0\",\"targetEndSelector\":\"[data-footer-band]\",\"variant\":\"$undefined\"}],[\"$\",\"div\",null,{\"className\":\"relative z-10 flex flex-col items-center gap-10 md:gap-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-4 md:gap-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"max-w-[980px] text-headline-3xl text-ds-main-white text-balance\",\"children\":\"Ship better agents\"}],null]}],[\"$\",\"$L3d\",null,{}]]}]]}]\n31:[\"$\",\"$L2f\",\"best-natoma-alternatives\",{\"href\":\"/articles/best-natoma-alternatives\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 9 Best Natoma Alternatives (August 2026): Features, Use Cases, and Architectures\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares nine Natoma alternatives, explains how they approach agent access, governance, and integrations, and helps you choose the right platform for your AI application.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 24, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n32:[\"$\",\"$L2f\",\"ai-agents-for-marketing\",{\"href\":\"/articles/ai-agents-for-marketing\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"AI agents for marketing: 10 best platforms for 2026\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"See the 10 best AI agents for marketing in 2026, what each is built for, and how to build your own with governance and evals in place.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 18, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n33:[\"$\",\"$L2f\",\"no-code-ai-agent-builder\",{\"href\":\"/articles/no-code-ai-agent-builder\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"No-code AI agent builder: how to choose one in 2026\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Learn how to choose a no-code AI agent builder in 2026: 12 platforms ranked, the capabilities worth scoring, and when to move to code.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 18, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n34:[\"$\",\"$L2f\",\"ai-agent-architecture\",{\"href\":\"/articles/ai-agent-architecture\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"AI agent architecture: patterns, components, and production design\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Learn AI agent architecture from components to orchestration patterns, memory, observability, and production design choices for building reliable agents.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 17, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n35:[\"$\",\"$L2f\",\"prompt-caching\",{\"href\":\"/articles/prompt-caching\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"Prompt caching: how it works and how to cut LLM token costs\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Learn how prompt caching works, how providers price cached tokens, and how to structure prompts and monitor cache hits to cut LLM token costs.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 17, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n36:[\"$\",\"$L2f\",\"langfuse-vs-langsmith\",{\"href\":\"/articles/langfuse-vs-langsmith\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"Langfuse vs LangSmith: a hands-on comparison for LLM observability\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"A hands-on Langfuse vs LangSmith comparison covering tracing, evals, prompt management, integrations, self-hosting, and pricing for LLM observability.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 16, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n37:[\"$\",\"$L2f\",\"llm-vs-generative-ai\",{\"href\":\"/articles/llm-vs-generative-ai\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"LLM vs generative AI: key differences and how to choose\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"LLM vs generative AI explained: how they differ in scope, architecture, and use cases, plus how to choose the right approach for your app.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 16, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Aron Schuhmann-0\",{\"src\":\"/authors/aron.jpg\",\"alt\":\"Aron Schuhmann\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}],[\"$\",\"$L30\",\"Sam Bhagwat-1\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n38:[\"$\",\"$L2f\",\"best-ai-browser-automation-platforms\",{\"href\":\"/articles/best-ai-browser-automation-platforms\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 9 Best AI Browser Automation Platforms (August 2026): Features, Tradeoffs, and Use Cases\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares nine leading AI browser automation platforms, explains how their architectures differ, and helps you choose the right approach for building browser-based AI agents.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 15, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n39:[\"$\",\"$L2f\",\"best-ai-voice-tools\",{\"href\":\"/articles/best-ai-voice-tools\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 10 Best AI Voice Tools (August 2026): Features, Use Cases, and Architecture\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares 10 leading voice AI tools, explains the architectural differences between them, and helps you choose the right voice infrastructure for your next AI application.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 15, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n3a:[\"$\",\"$L2f\",\"best-databases-for-ai-agents\",{\"href\":\"/articles/best-databases-for-ai-agents\",\"className\":\"group flex h-full min-h-[208px] flex-col justify-between gap-8 rounded-ds-antigrid border-2 border-ds-border-antigrid p-7 transition-colors hover:bg-ds-surface-elevation-sm md:p-[34px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2.5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-serif text-[1.375rem] font-medium leading-[1.2] tracking-[0.3px] text-ds-main-white\",\"children\":\"The 9 Best Databases for AI Agents (August 2026): Features, Tradeoffs, and Use Cases\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"This guide compares nine leading databases for AI agents, explains where each one excels, and helps you choose the right data infrastru
182cture for your next AI application.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row-reverse items-center gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block shrink-0 text-xs text-ds-main-gray\",\"children\":\"Aug 15, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L30\",\"Sam Bhagwat-0\",{\"src\":\"/authors/calcsam.png\",\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"shrink-0 whitespace-nowrap rounded-full border border-ds-border-antigrid px-2 py-[0.1rem] text-xs text-ds-main-gray transition-colors group-hover:border-ds-border-elevation group-hover:bg-ds-surface-elevation-sm group-hover:text-ds-main-white\",\"children\":[\"# \",\"foundations\"]}]}]]}]]}]\n3b:[\"$\",\"nav\",null,{\"aria-label\":\"Articles pagination\",\"className\":\"mt-12 flex flex-wrap items-center justify-center gap-2\",\"children\":[false,[[\"$\",\"$L2f\",\"1\",{\"href\":\"/articles\",\"className\":\"flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors bg-ds-main-white font-medium text-ds-surface-bg\",\"aria-current\":\"page\",\"children\":1}],[\"$\",\"$L2f\",\"2\",{\"href\":\"/articles/page/2\",\"className\":\"flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white\",\"aria-current\":\"$undefined\",\"children\":2}],[\"$\",\"span\",\"ellipsis-2\",{\"className\":\"px-1 text-sm text-ds-main-gray\",\"children\":\"â¦\"}],[\"$\",\"$L2f\",\"7\",{\"href\":\"/articles/page/7\",\"className\":\"flex h-10 min-w-10 items-center justify-center rounded-full px-3.5 text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white\",\"aria-current\":\"$undefined\",\"children\":7}]],[\"$\",\"$L2f\",null,{\"href\":\"/articles/page/2\",\"className\":\"flex h-10 min-w-10 items-center justify-center rounded-full text-sm transition-colors border border-ds-border-antigrid text-ds-main-gray hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white px-4\",\"rel\":\"next\",\"children\":\"Next\"}]]}]\n2d:[\"$\",\"div\",null,{\"className\":\"hidden lg:flex gap-2 md:w-fit\",\"children\":[[\"$\",\"$L2f\",\"all-posts\",{\"data-active\":true,\"className\":\"focus:outline-hidden flex h-fit shrink-0 items-center gap-1 rounded-full border border-ds-border-antigrid px-3.5 py-1.5 text-body-sm text-ds-main-gray transition-colors hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white data-[active=true]:border-ds-border-elevation data-[active=true]:bg-ds-surface-elevation-sm data-[active=true]:text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green)\",\"href\":\"/articles\",\"children\":\"All Posts\"}],[\"$\",\"$L2f\",\"foundations\",{\"data-active\":false,\"className\":\"focus:outline-hidden flex h-fit shrink-0 items-center gap-1 rounded-full border border-ds-border-antigrid px-3.5 py-1.5 text-body-sm text-ds-main-gray transition-colors hover:border-ds-border-elevation hover:bg-ds-surface-elevation-sm hover:text-ds-main-white data-[active=true]:border-ds-border-elevation data-[active=true]:bg-ds-surface-elevation-sm data-[active=true]:text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green)\",\"href\":\"/articles/category/foundations\",\"children\":\"Foundations\"}]]}]\n3e:I[978717,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/01kjk1ynqkjsw.js\"],\"NotFoundSuggestions\"]\n7:[\"$\",\"div\",null,{\"id\":\"useful-404\",\"className\":\"flex flex-col\",\"style\":{\"fontFamily\":\"var(--font-sans)\",\"--font-mono\":\"var(--commit-mono)\"},\"children\":[[\"$\",\"$L3e\",null,{\"candidates\":[{\"href\":\"/about\",\"label\":\"About Mastra\",\"kind\":\"page\",\"tokens\":[\"about\",\"mastra\"]},{\"href\":\"/pricing\",\"label\":\"Pricing\",\"kind\":\"page\",\"tokens\":[\"pricing\"]},{\"href\":\"/customers\",\"label\":\"Customers\",\"kind\":\"page\",\"tokens\":[\"customers\"]},{\"href\":\"/templates\",\"label\":\"Templates\",\"kind\":\"page\",\"tokens\":[\"templates\"]},{\"href\":\"/blog\",\"label\":\"Blog\",\"kind\":\"page\",\"tokens\":[\"blog\"]},{\"href\":\"/ai-agents\",\"label\":\"AI Agents\",\"kind\":\"page\",\"tokens\":[\"agents\"]},{\"href\":\"/ai-workflows\",\"label\":\"AI Workflows\",\"kind\":\"page\",\"tokens\":[\"workflows\"]},{\"href\":\"/studio\",\"label\":\"Mastra Studio\",\"kind\":\"page\",\"tokens\":[\"studio\",\"mastra\"]},{\"href\":\"/agent-builder\",\"label\":\"Agent Builder\",\"kind\":\"page\",\"tokens\":[\"agent\",\"builder\"]},{\"href\":\"/ai-agent-observability\",\"label\":\"Agent Observability\",\"kind\":\"page\",\"tokens\":[\"agent\",\"observability\"]},{\"href\":\"/factory\",\"label\":\"Mastra Factory\",\"kind\":\"page\",\"tokens\":[\"factory\",\"mastra\"]},{\"href\":\"/docs\",\"label\":\"Docs\",\"kind\":\"page\",\"tokens\":[\"docs\"]},{\"href\":\"/blog/agent-memory-guide\",\"label\":\"Using Mastra's Agent Memory API\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"memory\",\"guide\",\"using\",\"mastra\",\"api\"]},{\"href\":\"/blog/agent-memory-layers\",\"label\":\"AI Agent Memory: Persistence, Layers, and Tradeoffs\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"memory\",\"layers\",\"persistence\",\"and\",\"tradeoffs\"]},{\"href\":\"/blog/agent-network\",\"label\":\"The evolution of AgentNetwork\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"network\",\"the\",\"evolution\"]},{\"href\":\"/blog/agent-prototype-playbook\",\"label\":\"The Agent Prototype Playbook\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"prototype\",\"playbook\",\"the\"]},{\"href\":\"/blog/agent-studio\",\"label\":\"Introducing Mastraâs Agent Studio\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"studio\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/ai-beats-lab\",\"label\":\"AI Beats Laboratory: A Multi-Agent Music Generation System\",\"kind\":\"blog\",\"tokens\":[\"beats\",\"lab\",\"laboratory\",\"multi\",\"agent\",\"music\",\"generation\",\"system\"]},{\"href\":\"/blog/ai-engineering-javascript\",\"label\":\"AI with JavaScript in 2025\",\"kind\":\"blog\",\"tokens\":[\"engineering\",\"javascript\",\"with\",\"java\",\"script\",\"2025\"]},{\"href\":\"/blog/ai-engineering\",\"label\":\"AI engineering, two years later\",\"kind\":\"blog\",\"tokens\":[\"engineering\",\"two\",\"years\",\"later\"]},{\"href\":\"/blog/ai-ops\",\"label\":\"Baby steps towards AI Ops\",\"kind\":\"blog\",\"tokens\":[\"ops\",\"baby\",\"steps\",\"towards\"]},{\"href\":\"/blog/ai-prompting-techniques\",\"label\":\"AI prompting techniques\",\"kind\":\"blog\",\"tokens\":[\"prompting\",\"techniques\"]},{\"href\":\"/blog/ai-sdk-v7-support\",\"label\":\"AI SDK v7 supp
182ort in Mastra\",\"kind\":\"blog\",\"tokens\":[\"sdk\",\"support\",\"mastra\"]},{\"href\":\"/blog/aitracing\",\"label\":\"Mastra now supports AI Tracing\",\"kind\":\"blog\",\"tokens\":[\"aitracing\",\"mastra\",\"now\",\"supports\",\"tracing\"]},{\"href\":\"/blog/aiuidojo\",\"label\":\"Mastra UI Dojo: Choose your frontend\",\"kind\":\"blog\",\"tokens\":[\"aiuidojo\",\"mastra\",\"dojo\",\"choose\",\"your\",\"frontend\"]},{\"href\":\"/blog/anatomy-of-a-coding-agent\",\"label\":\"Anatomy of a harness: building a coding agent that can run for hours\",\"kind\":\"blog\",\"tokens\":[\"anatomy\",\"coding\",\"agent\",\"harness\",\"building\",\"that\",\"can\",\"run\",\"for\",\"hours\"]},{\"href\":\"/blog/announcing-agent-builder\",\"label\":\"Announcing Agent Builder\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"builder\"]},{\"href\":\"/blog/announcing-agent-harness\",\"label\":\"Announcing Mastra Harness\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"harness\",\"mastra\"]},{\"href\":\"/blog/announcing-agent-signals\",\"label\":\"Announcing Agent Signals\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"signals\"]},{\"href\":\"/blog/announcing-mastra-1\",\"label\":\"Announcing Mastra 1.0!\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\"]},{\"href\":\"/blog/announcing-mastra-code\",\"label\":\"Announcing Mastra Code: A coding agent that never compacts\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"code\",\"coding\",\"agent\",\"that\",\"never\",\"compacts\"]},{\"href\":\"/blog/announcing-mastra-factory-beta\",\"label\":\"Announcing Mastra Factory Beta\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"factory\",\"beta\"]},{\"href\":\"/blog/announcing-mastra-factory\",\"label\":\"Announcing Mastra Factory\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"factory\"]},{\"href\":\"/blog/announcing-mastra-observability\",\"label\":\"Announcing Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"observability\"]},{\"href\":\"/blog/announcing-mastra-platform\",\"label\":\"Announcing Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"platform\"]},{\"href\":\"/blog/announcing-trace-intelligence\",\"label\":\"Announcing Trace Intelligence\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"trace\",\"intelligence\"]},{\"href\":\"/blog/apache-license\",\"label\":\"Mastra is now Apache 2.0 licensed!\",\"kind\":\"blog\",\"tokens\":[\"apache\",\"license\",\"mastra\",\"now\",\"licensed\"]},{\"href\":\"/blog/api-endpoints\",\"label\":\"Every API needs a natural language endpoint\",\"kind\":\"blog\",\"tokens\":[\"api\",\"endpoints\",\"every\",\"needs\",\"natural\",\"language\",\"endpoint\"]},{\"href\":\"/blog/automating-multi-language-pr-descriptions-in-github-actions\",\"label\":\"Automating multi-language PR descriptions in GitHub Actions\",\"kind\":\"blog\",\"tokens\":[\"automating\",\"multi\",\"language\",\"descriptions\",\"github\",\"actions\",\"git\",\"hub\"]},{\"href\":\"/blog/best-ai-agent-browser-platforms\",\"label\":\"The 6 Best AI Agent Browser Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"browser\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-email-providers\",\"label\":\"The 8 Best AI Agent Email Providers (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"email\",\"providers\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-frameworks\",\"label\":\"The 6 Best AI Agent Frameworks (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"frameworks\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-integration-platforms\",\"label\":\"The 11 Best AI Agent Integration Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"integration\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-web-data-platforms\",\"label\":\"The 6 Best AI Agent Web Data Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"web\",\"data\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-workflow-automation-tools-2026\",\"label\":\"7 Best AI Workflow Automation Tools in 2026\",\"kind\":\"blog\",\"tokens\":[\"best\",\"workflow\",\"automation\",\"tools\",\"2026\"]},{\"href\":\"/blog/best-personal-ai-assistants-in-2026\",\"label\":\"The Best AI Personal Assistants of 2026\",\"kind\":\"blog\",\"tokens\":[\"best\",\"personal\",\"assistants\",\"2026\",\"the\"]},{\"href\":\"/blog/beta-launch\",\"label\":\"Mastra is moving into beta\",\"kind\":\"blog\",\"tokens\":[\"beta\",\"launch\",\"mastra\",\"moving\",\"
182into\"]},{\"href\":\"/blog/build-a-research-coordinator-with-supervisor-agents\",\"label\":\"Build a research coordinator with supervisor agents\",\"kind\":\"blog\",\"tokens\":[\"build\",\"research\",\"coordinator\",\"with\",\"supervisor\",\"agents\"]},{\"href\":\"/blog/build-agents-mastra-mongodb\",\"label\":\"Build Agents with Retrieval and Long-Term Memory Using Mastra and MongoDB\",\"kind\":\"blog\",\"tokens\":[\"build\",\"agents\",\"mastra\",\"mongodb\",\"with\",\"retrieval\",\"and\",\"long\",\"term\",\"memory\",\"using\",\"mongo\"]},{\"href\":\"/blog/build-claude-code-for-x-with-agentcontroller\",\"label\":\"Build Claude Code for X with Agent Controller\",\"kind\":\"blog\",\"tokens\":[\"build\",\"claude\",\"code\",\"for\",\"with\",\"agentcontroller\",\"agent\",\"controller\"]},{\"href\":\"/blog/build-rag-agent-mastra-elasticsearch\",\"label\":\"Build a RAG agent with Mastra and Elasticsearch\",\"kind\":\"blog\",\"tokens\":[\"build\",\"rag\",\"agent\",\"mastra\",\"elasticsearch\",\"with\",\"and\"]},{\"href\":\"/blog/build-your-first-agent-course\",\"label\":\"Introducing Our New Course: Build Your First Agent in TypeScript\",\"kind\":\"blog\",\"tokens\":[\"build\",\"your\",\"first\",\"agent\",\"course\",\"introducing\",\"our\",\"new\",\"type\",\"script\"]},{\"href\":\"/blog/building-a-code-review-bot\",\"label\":\"Building a code review bot\",\"kind\":\"blog\",\"tokens\":[\"building\",\"code\",\"review\",\"bot\"]},{\"href\":\"/blog/building-a-coding-agent\",\"label\":\"Building a coding agent\",\"kind\":\"blog\",\"tokens\":[\"building\",\"coding\",\"agent\"]},{\"href\":\"/blog/building-a-dev-assistant\",\"label\":\"Building a dev assistant\",\"kind\":\"blog\",\"tokens\":[\"building\",\"dev\",\"assistant\"]},{\"href\":\"/blog/building-a-docs-manager\",\"label\":\"Building a docs manager\",\"kind\":\"blog\",\"tokens\":[\"building\",\"docs\",\"manager\"]},{\"href\":\"/blog/building-a-notes-mcp-server\",\"label\":\"Building a notes MCP server\",\"kind\":\"blog\",\"tokens\":[\"building\",\"notes\",\"mcp\",\"server\"]},{\"href\":\"/blog/building-a-research-paper-assistant-with-rag\",\"label\":\"Building a research paper assistant with RAG\",\"kind\":\"blog\",\"tokens\":[\"building\",\"research\",\"paper\",\"assistant\",\"with\",\"rag\"]},{\"href\":\"/blog/building-a-signal-provider\",\"label\":\"Building a signal provider\",\"kind\":\"blog\",\"tokens\":[\"building\",\"signal\",\"provider\"]},{\"href\":\"/blog/building-an-ai-recruiter\",\"label\":\"Building an AI recruiter\",\"kind\":\"blog\",\"tokens\":[\"building\",\"recruiter\"]},{\"href\":\"/blog/building-fast-reliable-input-processors\",\"label\":\"Building low-latency guardrails to secure your agents\",\"kind\":\"blog\",\"tokens\":[\"building\",\"fast\",\"reliable\",\"input\",\"processors\",\"low\",\"latency\",\"guardrails\",\"secure\",\"your\",\"agents\"]},{\"href\":\"/blog/building-low-latency-agents\",\"label\":\"Building Low-Latency Agents That Help Humans Respond on Live Calls\",\"kind\":\"blog\",\"tokens\":[\"building\",\"low\",\"latency\",\"agents\",\"that\",\"help\",\"humans\",\"respond\",\"live\",\"calls\"]},{\"href\":\"/blog/building-multi-user-multi-channel-agents\",\"label\":\"The Rise of Multi-User, Multi-Channel Agents\",\"kind\":\"blog\",\"tokens\":[\"building\",\"multi\",\"user\",\"channel\",\"agents\",\"the\",\"rise\"]},{\"href\":\"/blog/building-workflows\",\"label\":\"Building workflows with Mastra\",\"kind\":\"blog\",\"tokens\":[\"building\",\"workflows\",\"with\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-10\",\"label\":\"Mastra Changelog 2025-01-10\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-17\",\"label\":\"Mastra Changelog 2025-01-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-24\",\"label\":\"Mastra Changelog 2025-01-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-31\",\"label\":\"Mastra Changelog 2025-01-31\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-02-10\",\"label\":\"Mastra Changelog 2025-02-10\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-04\",\"label\":\"Mastra Changelog 2025-03-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-14\",\"label\":\"Mastra Changelog 2025-03-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-20\",\"label\":\"Mastra Changelog 2025-03-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-27\",\"label\":\"Mastra Changelog 2025-03-27\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-02\",\"label\":\"Mastra Changelog 2025-04-02\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-16\",\"label\":\"Mastra Changelog 2025-04-16\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-24\",\"label\":\"Mastra Changelog 2025-04-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]}
182,{\"href\":\"/blog/changelog-2025-05-01\",\"label\":\"Mastra Changelog 2025-05-01\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-07\",\"label\":\"Mastra Changelog 2025-05-07\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-15\",\"label\":\"Mastra Changelog 2025-05-15\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-29\",\"label\":\"Mastra Changelog 2025-05-29\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-06\",\"label\":\"Mastra Changelog 2025-06-06\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-13\",\"label\":\"Mastra Changelog 2025-06-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-24\",\"label\":\"Mastra Changelog 2025-06-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-27\",\"label\":\"Mastra Changelog 2025-06-27\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-03\",\"label\":\"Mastra Changelog 2025-07-03\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-09\",\"label\":\"Mastra Changelog 2025-07-09\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-17\",\"label\":\"Mastra Changelog 2025-07-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-24\",\"label\":\"Mastra Changelog 2025-07-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-30\",\"label\":\"Mastra Changelog 2025-07-30\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-08\",\"label\":\"Mastra Changelog 2025-08-08\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-14\",\"label\":\"Mastra Changelog 2025-08-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-21\",\"label\":\"Mastra Changelog 2025-08-21\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-08\",\"label\":\"Mastra Changelog 2025-09-08\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-18\",\"label\":\"Mastra Changelog 2025-09-18\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-25\",\"label\":\"Mastra Changelog 2025-09-25\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-10-03\",\"label\":\"Mastra Changelog 2025-10-03\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-10-23\",\"label\":\"Mastra Changelog 2025-10-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-01\",\"label\":\"Mastra Changelog 2025-11-01\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-14\",\"label\":\"Mastra Changelog 2025-11-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-20\",\"label\":\"Mastra Changelog 2025-11-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-01-20\",\"label\":\"Mastra Changelog 2026-01-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-01-30\",\"label\":\"Mastra Changelog 2026-01-30\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-011\",\"label\":\"Mastra Changelog 2026-02-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"011\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-04\",\"label\":\"Mastra Changelog 2026-02-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-11\",\"label\":\"Mastra Changelog 2026-02-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-13\",\"label\":\"Mastra Changelog 2026-02-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-19\",\"label\":\"Mastra Changelog 2026-02-19\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-23\",\"label\":\"Mastra Changelog 2026-02-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-24\",\"label\":\"Mastra Changelog 2026-02-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-26\",\"label\":\"Mastra Changelog 2026-02-26\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-04\",\"label\":\"Mastra Changelog 2026-03-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-05\",\"label\":\"Mastra Changelog 2026-03-05\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-12\",\"label\":\"Mastra Changelog 2026-03-12\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-13\",\"label\":\"Mastra Changelog 2026-03-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-16\",\"label\":\"Mastra Changelog 2026-03-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-17\",\"label\":\"Mastra Changelog 2026-03-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-23\",\"label\":\"Mastra Changelog 2026-03-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/choosing-a-js-agent-framework\",\"label\":\"Choosing a JavaScript Agent Framework\",\"kind\":\"blog\",\"tokens\":[\"choosing\",\"agent\",\"framework\",\"java\",\"script\"]},{\"href\":\"/blog/composite-storage-with-mastra-storage\",\"label\":\"Composite Storage: Optimize for Performance, Scale, and Cost with MastraCompositeStore\",\"kind\":\"blog\",\"tokens\":[\"composite\",\"storage\",\"with\",\"mastra\",\"optimize\",\"for\",\"performance\",\"scale\",\"and\",\"cost\",\"store\"]},{\"href\":\"/blog/copilotkitmastra\",\"label\":\"Building agentic copilots with CopilotKit and Mastra\",\"kind\":\"blog\",\"tokens\":[\"copilotkitmastra\",\"building\",\"agentic\",\"copilots\",\"with\",\"copilot\",\"kit\",\"and\",\"mastra\"]},{\"href\":\"/blog/deployment-models\",\"label\":\"Choosing the Right Deployment Model for Your Mastra Application\",\"kind\":\"blog\",\"tokens\":[\"deployment\",\"models\",\"choosing\",\"the\",\"right\",\"model\",\"for\",\"your\",\"mastra\",\"application\"]},{\"href\":\"/blog/dynamic-agents\",\"label\":\"Dynamic Agents: Inserting Runtime Context in Mastra\",\"kind\":\"blog\",\"tokens\":[\"dynamic\",\"agents\",\"inserting\",\"runtime\",\"context\",\"mastra\"]},{\"href\":\"/blog/flash-genius\",\"label\":\"FlashGenius: instantly generate flashcards on any topic\",\"kind\":\"blog\",\"tokens\":[\"flash\",\"genius\",\"instantly\",\"generate\",\"flashcards\",\"any\",\"topic\"]},{\"href\":\"/blog/fullstack-typescript-agents-with-mastra-and-copilotkit\",\"label\":\"Full-Stack TypeScript Agents with Mastra and Copilot Kit\",\"kind\":\"blog\",\"tokens\":[\"fullstack\",\"typescript\",\"agents\",\"with\",\"mastra\",\"and\",\"copilotkit\",\"full\",\"stack\",\"type\",\"script\",\"copilot\",\"kit\"]},{\"href\":\"/blog/giving-agents-a-voice\",\"label\":\"Giving Agents a Voice\",\"kind\":\"blog\",\"tokens\":[\"giving\",\"agents\",\"voice\"]},{\"href\":\"/blog/hackathon-winners-community-templates\",\"label\":\"MASTRA.BUILD Templates Hackathon Winners \u0026 Community Templates Library\",\"kind\":\"blog\",\"tokens\":[\"hackathon\",\"winners\",\"community\",\"templates\",\"mastra\",\"build\",\"library\"]},{\"href\":\"/blog/hitl-where-to-put-approval-in-agents-and-workflows\",\"label\":\"Human-in-the-Loop: Where to Put Approval in Agents and Workflows\",\"kind\":\"blog\",\"tokens\":[\"hitl\",\"where\",\"put\",\"approval\",\"agents\",\"and\",\"workflows\",\"human\",\"the\",\"loop\"]}
182,{\"href\":\"/blog/how-to-structure-projects-for-ai-agents-and-llms\",\"label\":\"How to Structure Projects for AI Agents and LLMs\",\"kind\":\"blog\",\"tokens\":[\"how\",\"structure\",\"projects\",\"for\",\"agents\",\"and\",\"llms\"]},{\"href\":\"/blog/human-in-the-loop-when-to-use-agent-approval\",\"label\":\"Human-in-the-Loop: When to Use Agent Approval\",\"kind\":\"blog\",\"tokens\":[\"human\",\"the\",\"loop\",\"when\",\"use\",\"agent\",\"approval\"]},{\"href\":\"/blog/introducing-agent-client-protocol\",\"label\":\"Introducing Agent Client Protocol Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"client\",\"protocol\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-agent-editor\",\"label\":\"Introducing Agent Editor\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"editor\"]},{\"href\":\"/blog/introducing-agent-to-agent-support\",\"label\":\"Introducing Agent-to-Agent support for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"support\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-auto-deployment-platform\",\"label\":\"Introducing auto-deployment in Mastra platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"auto\",\"deployment\",\"platform\",\"mastra\"]},{\"href\":\"/blog/introducing-background-tasks\",\"label\":\"Introducing Background Tasks for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"background\",\"tasks\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-browser-recording\",\"label\":\"Introducing Browser Recording for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"browser\",\"recording\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-browser-support\",\"label\":\"Introducing Browser Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"browser\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-built-in-tools\",\"label\":\"Introducing Built-in Tools for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"built\",\"tools\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-channels\",\"label\":\"Introducing Channels for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"channels\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-clickhouse-support\",\"label\":\"Introducing ClickHouse Support for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"clickhouse\",\"support\",\"click\",\"house\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-cloneable-scorers\",\"label\":\"Introducing Cloneable Scorers\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"cloneable\",\"scorers\"]},{\"href\":\"/blog/introducing-code-mode\",\"label\":\"Introducing Code Mode for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"code\",\"mode\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-create-coding-agent-helper\",\"label\":\"Introducing Coding Agent Helper for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"create\",\"coding\",\"agent\",\"helper\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-custom-signal-providers\",\"label\":\"Introducing Custom Signal Providers for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"custom\",\"signal\",\"providers\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-datasets\",\"label\":\"Introducing Datasets in Mastra Studio\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"datasets\",\"mastra\",\"studio\"]},{\"href\":\"/blog/introducing-deployable-templates\",\"label\":\"Introducing deployable templates in Mastra platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"deployable\",\"templates\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-docs-chatbot\",\"label\":\"Introducing Mastra Docs Chatbot: Your AI Documentation Assistant\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"docs\",\"chatbot\",\"mastra\",\"your\",\"documentation\",\"assistant\"]},{\"href\":\"/blog/introducing-durable-agents\",\"label\":\"Introducing Durable Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"durable\",\"agents\"]},{\"href\":\"/blog/introducing-dynamic-workflows\",\"label\":\"Introducing Dynamic Workflows for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"dynamic\",\"workflows\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-environments-for-mastra-platform\",\"label\":\"Introducing Environments for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"environments\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-ephemeral-sandbox-deploys\",\"label\":\"Introducing Ephemeral Sandbox Deployments for Mastra Server and Studio\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"ephemeral\",\"sandbox\",\"deploys\",\"deployments\",\"for\",\"mastra\",\"server\",\"and\",\"studio\"]},{\"href\":\"/blog/introducing-error-diagnostics-platform-cli\",\"label\":\"Introducing Error Diagnosis for Mastra Platform and CLI\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"error\",\"diagnostics\",\"platform\",\"cli\",\"diagnosis\",\"for\",\"mastra\",\"and\"]},{\"href\":\"/blog/introducing-eu-us-regions-for-mastra-platform\",\"label\":\"Introducing EU \u0026 US Regions for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"regi
182ons\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-experiment-lifecycle-hooks\",\"label\":\"Introducing Experiment Lifecycle Hooks\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"lifecycle\",\"hooks\"]},{\"href\":\"/blog/introducing-experiment-targets\",\"label\":\"Introducing Experiment Targets\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"targets\"]},{\"href\":\"/blog/introducing-experiment-tool-mocks\",\"label\":\"Introducing Experiment Tool Mocks\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"tool\",\"mocks\"]},{\"href\":\"/blog/introducing-feedback-and-feedback-analytics\",\"label\":\"Introducing Agent Feedback and Feedback Analytics\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"feedback\",\"and\",\"analytics\",\"agent\"]},{\"href\":\"/blog/introducing-file-based-agents\",\"label\":\"Introducing File-Based Agents for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"file\",\"based\",\"agents\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-filesystem-mounts\",\"label\":\"Introducing Filesystem Mounts for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"mounts\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-filesystem-search\",\"label\":\"Introducing Filesystem Search for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"search\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-filesystem-skills\",\"label\":\"Introducing Filesystem Skills for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"skills\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-fine-grained-authorization\",\"label\":\"Introducing Fine-Grained Authorization for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"fine\",\"grained\",\"authorization\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-first-class-skills\",\"label\":\"Introducing First-Class Skills for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"first\",\"class\",\"skills\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-gates-and-verdicts\",\"label\":\"Introducing Gates and Verdicts for Mastra Evals\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"gates\",\"and\",\"verdicts\",\"for\",\"mastra\",\"evals\"]},{\"href\":\"/blog/introducing-goals\",\"label\":\"Introducing Goals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"goals\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-harness-channels\",\"label\":\"Introducing Harness Channels\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"harness\",\"channels\"]},{\"href\":\"/blog/introducing-http-feedback-api\",\"label\":\"Introducing the Feedback API Endpoint for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"http\",\"feedback\",\"api\",\"the\",\"endpoint\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-imessage-support\",\"label\":\"Introducing iMessage Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"imessage\",\"support\",\"message\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-incident-alerts\",\"label\":\"Introducing Incident Alerts for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"incident\",\"alerts\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-managed-databases\",\"label\":\"Introducing Managed Databases for Mastra Projects\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"managed\",\"databases\",\"for\",\"mastra\",\"projects\"]},{\"href\":\"/blog/introducing-managed-sandboxes-and-filesystems-for-mastra-platform\",\"label\":\"Introducing Managed Sandboxes and Filesystems for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"managed\",\"sandboxes\",\"and\",\"filesystems\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-mastra-evals\",\"label\":\"Introducing Evals in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"evals\"]},{\"href\":\"/blog/introducing-mastra-helm-chart\",\"label\":\"Introducing the Mastra Helm Chart for Self-Hosted Deployments\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"helm\",\"chart\",\"the\",\"for\",\"self\",\"hosted\",\"deployments\"]},{\"href\":\"/blog/introducing-mastra-improved-agent-orchestration-ai-sdk-v5-support\",\"label\":\"Introducing Mastra's improved agent orchestration with AI SDK v5 support\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"improved\",\"agent\",\"orchestration\",\"sdk\",\"support\",\"with\"]},{\"href\":\"/blog/introducing-mastra-mcp\",\"label\":\"Introducing Mastra MCP Documentation Server\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"mcp\",\"documentation\",\"server\"]},{\"href\":\"/blog/introducing-mastra-skills\",\"label\":\"Introducing Mastra Skills\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"skills\"]}
182,{\"href\":\"/blog/introducing-mastra-workspaces\",\"label\":\"Introducing Workspaces: Safe, Controlled Environments for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"workspaces\",\"safe\",\"controlled\",\"environments\",\"for\",\"agents\"]},{\"href\":\"/blog/introducing-mastras-event-system\",\"label\":\"Publish and Subscribe with Mastra's Built-In Event System\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastras\",\"event\",\"system\",\"publish\",\"and\",\"subscribe\",\"with\",\"mastra\",\"built\"]},{\"href\":\"/blog/introducing-mcp-support\",\"label\":\"Introducing MCP Server Support in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mcp\",\"support\",\"server\",\"mastra\"]},{\"href\":\"/blog/introducing-memory-extractors\",\"label\":\"Introducing Memory Extractors for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"memory\",\"extractors\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-multi-turn-evals\",\"label\":\"Introducing Multi-turn Evals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"multi\",\"turn\",\"evals\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-notification-inbox\",\"label\":\"Your Mastra Agent Now Has an Inbox With Priority Notifications\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"notification\",\"inbox\",\"your\",\"mastra\",\"agent\",\"now\",\"has\",\"with\",\"priority\",\"notifications\"]},{\"href\":\"/blog/introducing-output-processors\",\"label\":\"Introducing Output Processors\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"output\",\"processors\"]},{\"href\":\"/blog/introducing-remote-filesystems\",\"label\":\"Introducing Remote Filesystems for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"remote\",\"filesystems\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-remote-sandboxes\",\"label\":\"Safely Execute Untrusted Code with Remote Sandboxes\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"remote\",\"sandboxes\",\"safely\",\"execute\",\"untrusted\",\"code\",\"with\"]},{\"href\":\"/blog/introducing-response-caching\",\"label\":\"Introducing Response Caching for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"response\",\"caching\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-rubric-scorers-for-mastra-agents\",\"label\":\"Introducing Rubric Scorers for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"rubric\",\"scorers\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-sandbox-computer-use\",\"label\":\"Introducing Sandbox Computer Use for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sandbox\",\"computer\",\"use\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-sandbox-lifecycle-controls\",\"label\":\"Introducing Sandbox Lifecycle Controls in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sandbox\",\"lifecycle\",\"controls\",\"mastra\"]},{\"href\":\"/blog/introducing-schedules-for-agents-and-workflows\",\"label\":\"Introducing Schedules for Mastra Agents and Workflows\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"schedules\",\"for\",\"agents\",\"and\",\"workflows\",\"mastra\"]},{\"href\":\"/blog/introducing-sdk-subagents\",\"label\":\"Introducing Claude Code, Cursor, and Codex agents in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sdk\",\"subagents\",\"claude\",\"code\",\"cursor\",\"and\",\"codex\",\"agents\",\"mastra\"]},{\"href\":\"/blog/introducing-sensitive-data-redaction\",\"label\":\"Introducing Sensitive Data Redaction for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sensitive\",\"data\",\"redaction\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-server-health-for-mastra-platform\",\"label\":\"Introducing Server Health for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"server\",\"health\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-skill-search-processor\",\"label\":\"Introducing Skill Search for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"skill\",\"search\",\"processor\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-studio-auth\",\"label\":\"Introducing Studio Auth: Secure, Team-Friendly Access for Deployed Mastra Studios\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"studio\",\"auth\",\"secure\",\"team\",\"friendly\",\"access\",\"for\",\"deployed\",\"mastra\",\"studios\"]},{\"href\":\"/blog/introducing-studio-metrics\",\"label\":\"Introducing Metrics and Logs\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"studio\",\"metrics\",\"and\",\"logs\"]},{\"href\":\"/blog/introducing-task-lists\",\"label\":\"Introducing Task Lists for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"task\",\"lists\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-temporal-workflows\",\"label\":\"Introducing Temporal Support for Mastra Workflows\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"temporal\",\"workflows\",\"support\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-token-cost-control\",\"label\":\"Introducing Token Cost Control for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"token\",\"cost\",\"control\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-token-limiting\",\"label\":\"Introducing Token Limiting for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"token\",\"limiting\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-tool-hooks\",\"label\":\"Introducing Tool Hooks for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"tool\",\"hooks\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-tool-search-processor\",\"label\":\"Introducing Tool Search for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"tool\",\"search\",\"processor\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-vitest-integration\",\"label\":\"Introducing Vitest Integration for Testing\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"vitest\",\"integration\",\"for\",\"testing\"]},{\"href\":\"/blog/introducing-webhook-signal-provider\",\"label\":\"Introducing Webhook Signals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"webhook\",\"signal\",\"provider\",\"signals\",\"for\",\"mastra\",\"agents\"]}
182,{\"href\":\"/blog/lsp-inspection-for-mastra-workspaces\",\"label\":\"LSP Inspection for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"lsp\",\"inspection\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/mastra-0.10\",\"label\":\"Announcing Mastra 0.10\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"announcing\"]},{\"href\":\"/blog/mastra-101\",\"label\":\"Introducing Mastra 101: The experimental course led by MCP, right in your IDE\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"101\",\"introducing\",\"the\",\"experimental\",\"course\",\"led\",\"mcp\",\"right\",\"your\",\"ide\"]},{\"href\":\"/blog/mastra-archil-persistent-storage\",\"label\":\"Give a Mastra agent persistent file storage with Archil\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"archil\",\"persistent\",\"storage\",\"give\",\"agent\",\"file\",\"with\"]},{\"href\":\"/blog/mastra-build-recap\",\"label\":\"MASTRA.BUILD Recap \u0026 Winner Announcement\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"build\",\"recap\",\"winner\",\"announcement\"]},{\"href\":\"/blog/mastra-cloud-public-beta\",\"label\":\"Mastra Cloud Public Beta\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"cloud\",\"public\",\"beta\"]},{\"href\":\"/blog/mastra-experiments\",\"label\":\"Change, Run, and Compare with Experiments in Mastra Studio\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"experiments\",\"change\",\"run\",\"and\",\"compare\",\"with\",\"studio\"]},{\"href\":\"/blog/mastra-inworld-realtime-voice\",\"label\":\"Add realtime voice to your Mastra agents with Inworld\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"inworld\",\"realtime\",\"voice\",\"add\",\"your\",\"agents\",\"with\"]},{\"href\":\"/blog/mastra-mcp\",\"label\":\"Why We're All-In on MCP\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"mcp\",\"why\",\"all\"]},{\"href\":\"/blog/mastra-platform-pricing\",\"label\":\"How Mastra Platform Pricing Works\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"platform\",\"pricing\",\"how\",\"works\"]},{\"href\":\"/blog/mastra-scorers\",\"label\":\"Introducing Scorers in Mastra\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"scorers\",\"introducing\"]},{\"href\":\"/blog/mastra-server-adapters\",\"label\":\"Introducing Server Adapters: Run Mastra Inside Your Existing Express or Hono App\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"server\",\"adapters\",\"introducing\",\"run\",\"inside\",\"your\",\"existing\",\"express\",\"hono\",\"app\"]},{\"href\":\"/blog/mastra-storage\",\"label\":\"Mastra Storage: a flexible storage system for AI Applications\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"storage\",\"flexible\",\"system\",\"for\",\"applications\"]},{\"href\":\"/blog/mastra-streaming\",\"label\":\"The next evolution of Mastra streaming\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"streaming\",\"the\",\"next\",\"evolution\"]},{\"href\":\"/blog/mastra-web-access-bright-data\",\"label\":\"Giving a Mastra agent web access with Bright Data\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"web\",\"access\",\"bright\",\"data\",\"giving\",\"agent\",\"with\"]},{\"href\":\"/blog/mastra-workflows-enhanced\",\"label\":\"Mastra Workflows, Enhanced\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"workflows\",\"enhanced\"]},{\"href\":\"/blog/mastrav1\",\"label\":\"Announcing Mastra v1 beta\",\"kind\":\"blog\",\"tokens\":[\"mastrav1\",\"announcing\",\"mastra\",\"beta\"]},{\"href\":\"/blog/matt-pocock-meets-mastra\",\"label\":\"An Honest Skeptic Meets Mastra: Matt Pocock's Live Review\",\"kind\":\"blog\",\"tokens\":[\"matt\",\"pocock\",\"meets\",\"mastra\",\"honest\",\"skeptic\",\"live\",\"review\"]},{\"href\":\"/blog/mcp-registry-registry\",\"label\":\"Introducing Mastra's MCP Registry Registry\",\"kind\":\"blog\",\"tokens\":[\"mcp\",\"registry\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/mcp-tool-compatibility-layer\",\"label\":\"Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models\",\"kind\":\"blog\",\"tokens\":[\"mcp\",\"tool\",\"compatibility\",\"layer\",\"reducing\",\"calling\",\"error\",\"rates\",\"from\",\"for\",\"open\",\"anthropic\",\"and\",\"google\",\"gemini\",\"models\"]},{\"href\":\"/blog/mergetemplates\",\"label\":\"Adding agent templates into existing projects\",\"kind\":\"blog\",\"tokens\":[\"mergetemplates\",\"adding\",\"agent\",\"templates\",\"into\",\"existing\",\"projects\"]},{\"href\":\"/blog/migration-guide-streaming\",\"label\":\"Migration Guide: VNext to Standard APIs\",\"kind\":\"blog\",\"tokens\":[\"migration\",\"guide\",\"streaming\",\"next\",\"standard\"]},{\"href\":\"/blog/model-fallback\",\"label\":\"Model fallbacks: Your safety net for production AI\",\"kind\":\"blog\",\"tokens\":[\"model\",\"fallback\",\"fallbacks\",\"y
182our\",\"safety\",\"net\",\"for\",\"production\"]},{\"href\":\"/blog/model-router\",\"label\":\"Introducing Mastra Model Router: 600+ models, one API, zero package installs\",\"kind\":\"blog\",\"tokens\":[\"model\",\"router\",\"introducing\",\"mastra\",\"600\",\"models\",\"one\",\"api\",\"zero\",\"package\",\"installs\"]},{\"href\":\"/blog/multi-agent-orchestration\",\"label\":\"Multi-agent orchestration and how it works\",\"kind\":\"blog\",\"tokens\":[\"multi\",\"agent\",\"orchestration\",\"and\",\"how\",\"works\"]},{\"href\":\"/blog/nested-streaming-support\",\"label\":\"Nested streaming support in Mastra\",\"kind\":\"blog\",\"tokens\":[\"nested\",\"streaming\",\"support\",\"mastra\"]},{\"href\":\"/blog/nextjs-integration-guide\",\"label\":\"Integrating Mastra with Next.js: Two Approaches for AI-Powered Apps\",\"kind\":\"blog\",\"tokens\":[\"nextjs\",\"integration\",\"guide\",\"integrating\",\"mastra\",\"with\",\"next\",\"two\",\"approaches\",\"for\",\"powered\",\"apps\"]},{\"href\":\"/blog/notebooklm-clone-with-agent-orchestration\",\"label\":\"Building a NotebookLM clone with an agent orchestrator\",\"kind\":\"blog\",\"tokens\":[\"notebooklm\",\"clone\",\"with\",\"agent\",\"orchestration\",\"building\",\"notebook\",\"orchestrator\"]},{\"href\":\"/blog/observational-memory\",\"label\":\"Announcing Observational Memory\",\"kind\":\"blog\",\"tokens\":[\"observational\",\"memory\",\"announcing\"]},{\"href\":\"/blog/patterns-book\",\"label\":\"Announcing our second book: Patterns for Building AI Agents\",\"kind\":\"blog\",\"tokens\":[\"patterns\",\"book\",\"announcing\",\"our\",\"second\",\"for\",\"building\",\"agents\"]},{\"href\":\"/blog/pdf-to-blog\",\"label\":\"PDF-to-Blog: Giving documents a second life with Mastra and Mistral OCR\",\"kind\":\"blog\",\"tokens\":[\"pdf\",\"blog\",\"giving\",\"documents\",\"second\",\"life\",\"with\",\"mastra\",\"and\",\"mistral\",\"ocr\"]},{\"href\":\"/blog/personal-assistant\",\"label\":\"Building a Personal Assistant with Mastra and MCP\",\"kind\":\"blog\",\"tokens\":[\"personal\",\"assistant\",\"building\",\"with\",\"mastra\",\"and\",\"mcp\"]},{\"href\":\"/blog/pgvector-perf\",\"label\":\"Benchmarking pgvector RAG performance across different dataset sizes\",\"kind\":\"blog\",\"tokens\":[\"pgvector\",\"perf\",\"benchmarking\",\"rag\",\"performance\",\"across\",\"different\",\"dataset\",\"sizes\"]},{\"href\":\"/blog/principles-of-ai-engineering\",\"label\":\"Announcing our new book: Principles of Building AI agents\",\"kind\":\"blog\",\"tokens\":[\"principles\",\"engineering\",\"announcing\",\"our\",\"new\",\"book\",\"building\",\"agents\"]},{\"href\":\"/blog/principlesv2\",\"label\":\"Announcing the second edition of Principles of Building AI Agents\",\"kind\":\"blog\",\"tokens\":[\"principlesv2\",\"announcing\",\"the\",\"second\",\"edition\",\"principles\",\"building\",\"agents\"]},{\"href\":\"/blog/product-agents-we-built-at-mastra\",\"label\":\"Product Agents We Built at Mastra\",\"kind\":\"blog\",\"tokens\":[\"product\",\"agents\",\"built\",\"mastra\"]},{\"href\":\"/blog/rag-tutorial\",\"label\":\"RAG tutorial: Setting up a RAG pipeline\",\"kind\":\"blog\",\"tokens\":[\"rag\",\"tutorial\",\"setting\",\"pipeline\"]},{\"href\":\"/blog/rebrand\",\"label\":\"Announcing our new logo and brand\",\"kind\":\"blog\",\"tokens\":[\"rebrand\",\"announcing\",\"our\",\"new\",\"logo\",\"and\",\"brand\"]},{\"href\":\"/blog/remote-filesystem-support\",\"label\":\"Remote Filesystem Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"remote\",\"filesystem\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/repo-base\",\"label\":\"Building a Code Assistant with Large Context Windows\",\"kind\":\"blog\",\"tokens\":[\"repo\",\"base\",\"building\",\"code\",\"assistant\",\"with\",\"large\",\"context\",\"windows\"]},{\"href\":\"/blog/research-assistant\",\"label\":\"Building an AI Research Assistant with vNext Workflows\",\"kind\":\"blog\",\"tokens\":[\"research\",\"assistant\",\"building\",\"with\",\"next\",\"workflows\"]},{\"href\":\"/blog/resumeworkflows\",\"label\":\"You can suspend/resume workflows in playground\",\"kind\":\"blog\",\"tokens\":[\"resumeworkflows\",\"y
182ou\",\"can\",\"suspend\",\"resume\",\"workflows\",\"playground\"]},{\"href\":\"/blog/seamless-edge-deployments\",\"label\":\"Optimizing Mastra for Seamless Edge Deployments\",\"kind\":\"blog\",\"tokens\":[\"seamless\",\"edge\",\"deployments\",\"optimizing\",\"mastra\",\"for\"]},{\"href\":\"/blog/seed-round\",\"label\":\"Announcing our $13m seed round from YC, pg, Gradient, Amjad, Guillermo, Balaji, and 120+ others\",\"kind\":\"blog\",\"tokens\":[\"seed\",\"round\",\"announcing\",\"our\",\"13m\",\"from\",\"gradient\",\"amjad\",\"guillermo\",\"balaji\",\"and\",\"120\",\"others\"]},{\"href\":\"/blog/series-a\",\"label\":\"We raised a $22M Series A to help every developer build agents\",\"kind\":\"blog\",\"tokens\":[\"series\",\"raised\",\"help\",\"every\",\"developer\",\"build\",\"agents\"]},{\"href\":\"/blog/software-factory\",\"label\":\"How to Build an AI Software Factory with AI Agents in TypeScript\",\"kind\":\"blog\",\"tokens\":[\"software\",\"factory\",\"how\",\"build\",\"with\",\"agents\",\"type\",\"script\"]},{\"href\":\"/blog/solving-the-hardest-problem-in-cs\",\"label\":\"Solving the hardest problem in computer science with LLMs\",\"kind\":\"blog\",\"tokens\":[\"solving\",\"the\",\"hardest\",\"problem\",\"computer\",\"science\",\"with\"]},{\"href\":\"/blog/speech-to-speech\",\"label\":\"The Voice Connection: Mastra's Speech-to-Speech Capabilities\",\"kind\":\"blog\",\"tokens\":[\"speech\",\"the\",\"voice\",\"connection\",\"mastra\",\"capabilities\"]},{\"href\":\"/blog/state\",\"label\":\"Workflow State: Share Data Across Steps\",\"kind\":\"blog\",\"tokens\":[\"state\",\"workflow\",\"share\",\"data\",\"across\",\"steps\"]},{\"href\":\"/blog/templates\",\"label\":\"Introducing Mastra Templates\",\"kind\":\"blog\",\"tokens\":[\"templates\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/the-detective-game\",\"label\":\"Building an Interactive Detective Game with Multi-Agent AI\",\"kind\":\"blog\",\"tokens\":[\"the\",\"detective\",\"game\",\"building\",\"interactive\",\"with\",\"multi\",\"agent\"]},{\"href\":\"/blog/the-next-million-ai-developers\",\"label\":\"A framework for the next million AI developers\",\"kind\":\"blog\",\"tokens\":[\"the\",\"next\",\"million\",\"developers\",\"framework\",\"for\"]},{\"href\":\"/blog/tool-approval\",\"label\":\"HITL: Ask Before Acting\",\"kind\":\"blog\",\"tokens\":[\"tool\",\"approval\",\"hitl\",\"ask\",\"before\",\"acting\"]},{\"href\":\"/blog/travel-ai\",\"label\":\"Multi-Agent AI Travel Planning with Mastra\",\"kind\":\"blog\",\"tokens\":[\"travel\",\"multi\",\"agent\",\"planning\",\"with\",\"mastra\"]},{\"href\":\"/blog/tts-support\",\"label\":\"Introducing TTS in Mastra\",\"kind\":\"blog\",\"tokens\":[\"tts\",\"support\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/txt-to-sql\",\"label\":\"Mastra Text-to-SQL: from natural language to database queries\",\"kind\":\"blog\",\"tokens\":[\"txt\",\"sql\",\"mastra\",\"text\",\"from\",\"natural\",\"language\",\"database\",\"queries\"]},{\"href\":\"/blog/upgraded-mastra-cli\",\"label\":\"Introducing Mastra CLI Actions for Claude Code, Cursor, and Codex\",\"kind\":\"blog\",\"tokens\":[\"upgraded\",\"mastra\",\"cli\",\"introducing\",\"actions\",\"for\",\"claude\",\"code\",\"cursor\",\"and\",\"codex\"]},{\"href\":\"/blog/use-rag-for-agent-memory\",\"label\":\"Yes, you can use RAG for agent memory\",\"kind\":\"blog\",\"tokens\":[\"use\",\"rag\",\"for\",\"agent\",\"memory\",\"yes\",\"you\",\"can\"]},{\"href\":\"/blog/using-ai-sdk-with-mastra\",\"label\":\"Using Vercel's AI SDK with Mastra\",\"kind\":\"blog\",\"tokens\":[\"using\",\"sdk\",\"with\",\"mastra\",\"vercel\"]},{\"href\":\"/blog/vNext-workflows\",\"label\":\"Introducing vNext Workflows: the next generation of Mastra Workflows\",\"kind\":\"blog\",\"tokens\":[\"next\",\"workflows\",\"introducing\",\"the\",\"generation\",\"mastra\"]},{\"href\":\"/blog/vnext-agent-network\",\"label\":\"Beyond Workflows: Introducing Agent Network (vNext)\",\"kind\":\"blog\",\"tokens\":[\"vnext\",\"agent\",\"network\",\"beyond\",\"workflows\",\"introducing\",\"next\"]},{\"href\":\"/blog/voice-agent-render-assemblyai\",\"label\":\"Building a voice research agent with Mastra, Render, and AssemblyAI\",\"kind\":\"blog\",\"tokens\":[\"voice\",\"agent\",\"render\",\"assemblyai\",\"building\",\"research\",\"with\",\"mastra\",\"and\",\"assembly\"]},{\"href\":\"/blog/web-browsing-agent\",\"label\":\"Building a Web Browsing Agent with Mastra and Stagehand\",\"kind\":\"blog\",\"tokens\":[\"web\",\"browsing\",\"agent\",\"building\",\"with\",\"mastra\",\"and\",\"stagehand\"]},{\"href\":\"/blog/what-are-durable-ai-agents\",\"label\":\"What are durable AI agents? How state persistence and checkpoints survive a restart\",\"kind\":\"blog\",\"tokens\":[\"what\",\"are\",\"durable\",\"agents\",\"how\",\"state\",\"persistence\",\"and\",\"checkpoints\",\"survive\",\"restart\"]},{\"href\":\"/blog/what-is-agent-to-agent-protocol\",\"label\":\"What is the Agent2Agent (A2A) protocol? How AI agents delegate work\",\"kind\":\"blog\",\"tokens\":[\"what\",\"agent\",\"protocol\",\"the\",\"agent2\",\"how\",\"agents\",\"delegate\",\"work\"]},{\"href\":\"/blog/what-is-llm-observability\",\"label\":\"What is LLM observability? A span-by-span breakdown\",\"kind\":\"blog\",\"tokens\":[\"what\",\"llm\",\"observability\",\"span\",\"breakdown\"]},{\"href\":\"/blog/whiteboard-to-excalidraw-converter\",\"label\":\"From Whiteboard to Excalidraw: Building a Multi-Agent Workflow\",\"kind\":\"blog\",\"tokens\":[\"whiteboard\",\"excalidraw\",\"converter\",\"from\",\"building\",\"multi\",\"agent\",\"workflow\"]}],\"initialPopular\":[\"$7:props:children:0:props:candidates:5\",\"$7:props:children:0:props:candidates:6\",\"$7:props:children:0:props:candidates:7\",\"$7:props:children:0:props:candidates:3\",\"$7:props:children:0:props:candidates:4\"]}],\"$L3f\",\"$L40\",\"$L41\"]}]\n3f:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"What is Mastra?\"}],[\"$\",\"p\",null,{\"className\":\"ds-section--description\",\"data-size\":\"m\",\"children\":\"An open-source TypeScript framework for building, testing, and deploying AI agents â agents, workflows, RAG, evals and observability behind a typed API.\"}]]}],[\"$\",\"div\",null,{\"className\":\"max-w-ds-layout-content-v1 mx-auto px-ds-antigrid-gap w-full flex justify-center\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/about\",\"className\":\"text-ds-main-white hover:text-ds-green transition-colors\",\"children\":\"Learn more about Mastra â\"}]}]]}]\n42:T75f,M77.963 45.557c-.09.239.031.287.063.33.27.195.545.338.82.498 1.467.78 2.86 1.007 4.31 1.007 2.953 0 4.79-1.575 4.79-4.11v-.048c0-2.344-2.07-3.198-4.012-3.813l-.254-.08c-1.467-.477-2.732-.89-2.732-1.856v-.047c0-.828.742-1.438 1.885-1.438 1.276 0 2.78.425 3.753.96 0 0 .286.186.392-.09.058-.149.55-1.48.598-1.623.058-.154-.042-.27-.143-.334-1.112-.679-2.647-1.14-4.235-1.14h-.296c-2.705 0-4.595 1.639-4.595 3.983v.047c0 2.472 2.085 3.278 4.034 3.835l.312.095c1.424.435 2.647.817 2.647 1.814v.048c0 .917-.8 1.596-2.08 1.596-.498 0-2.091-.01-3.807-1.098-.206-.122-.328-.206-.487-.307-.085-.053-.296-.143-.386.133l-.583 1.622zm43.263 0c-.09.239.032.287.064.33.27.195.545.338.82.498 1.472.78 2.859 1.007 4.309 1.007 2.954 0 4.791-1.575 4.791-4.11v-.048c0-2.344-2.07-3.198-4.012-3.813l-.254-.08c-1.467-.477-2.732-.89-2.732-1.856v-.047c0-.828.741-1.438 1.885-1.438 1.27 0 2.779.425 3.753.96 0 0 .285.186.392-.09.058-.149.55-1.48.598-1.623.058-.154-.043-.27-.143-.334-1.112-.679-2.647-1.14-4.235-1.14h-.297c-2.705 0-4.595 1.639-4.595 3.983v.047c0 2.472 2.086 3.278 4.034 3.835l.313.095c1.423.435 2.647.817 2.647 1.814v.048c0 .917-.8 1.596-2.081 1.596a6.97 6.97 0 0 1-3.806-1.098c-.207-.122-.328-.206-.487-.307-.053-.032-.302-.133-.387.133l-.582 1.622zm29.541-4.97c0 1.432-.266 2.562-.789 3.362-.519.79-1.308 1.173-2.404 1.173s-1.879-.382-2.393-1.173c-.518-.795-.778-1.93-.778-3.362s.265-2.556.778-3.347c.514-.785 1.297-1.161 2.393-1.
182161s1.879.382 2.404 1.161c.523.79.789 1.915.789 3.347m2.471-2.652a6 6 0 0 0-1.122-2.148 5.4 5.4 0 0 0-1.895-1.443c-.752-.355-1.641-.53-2.641-.53s-1.89.18-2.647.53a5.4 5.4 0 0 0-1.896 1.443 6 6 0 0 0-1.122 2.148 9.3 9.3 0 0 0-.365 2.657c0 .95.122 1.84.365 2.657.244.822.62 1.544 1.122 2.148a5.3 5.3 0 0 0 1.896 1.432c.757.345 1.646.52 2.647.52s1.889-.175 2.641-.52a5.3 5.3 0 0 0 1.895-1.432 6 6 0 0 0 1.122-2.148 9.3 9.3 0 0 0 .366-2.657c0-.95-.122-1.84-.366-2.65743:T7c1,M173.495 44.74c-.079-.238-.317-.148-.317-.148-.36.138-.742.266-1.149.33a9 9 0 0 1-1.35.095c-1.192 0-2.144-.356-2.822-1.061-.683-.706-1.064-1.84-1.058-3.379 0-1.4.344-2.45.947-3.256.598-.795 1.52-1.21 2.737-1.21 1.016 0 1.795.117 2.61.377 0 0 .191.085.286-.17.217-.599.376-1.028.608-1.686.064-.19-.095-.27-.153-.291-.318-.128-1.075-.33-1.646-.42a13 13 0 0 0-1.853-.121c-1.038 0-1.959.175-2.753.53a5.7 5.7 0 0 0-1.985 1.442 6.1 6.1 0 0 0-1.202 2.148c-.27.817-.402 1.714-.402 2.663 0 2.052.55 3.707 1.641 4.922 1.09 1.22 2.732 1.835 4.87 1.835 1.265 0 2.562-.255 3.494-.626 0 0 .18-.085.101-.292l-.604-1.676zm4.313-5.521c.116-.796.333-1.459.672-1.973.514-.785 1.292-1.215 2.388-1.215s1.821.43 2.339 1.215c.345.514.493 1.204.551 1.973h-5.956zm8.306-1.75c-.212-.79-.726-1.592-1.07-1.958-.54-.578-1.063-.986-1.588-1.209a6.1 6.1 0 0 0-2.393-.488c-1.042 0-1.99.175-2.758.536a5.5 5.5 0 0 0-1.921 1.469 6 6 0 0 0-1.133 2.174 9.4 9.4 0 0 0-.365 2.668c0 .944.127 1.862.376 2.673a5.5 5.5 0 0 0 1.212 2.127c.551.6 1.255 1.066 2.101 1.395.842.323 1.859.493 3.028.493 2.414-.005 3.685-.546 4.209-.838.095-.053.18-.143.069-.398l-.546-1.533c-.084-.227-.312-.148-.312-.148-.598.223-1.445.62-3.43.62-1.297 0-2.255-.387-2.859-.986-.614-.61-.921-1.512-.969-2.784h8.349s.222 0 .243-.212c.011-.09.286-1.719-.249-3.602zm-75.187 1.75c.116-.796.334-1.459.673-1.973.513-.785 1.291-1.215 2.387-1.215s1.821.43 2.34 1.215c.344.514.492 1.204.551 1.973h-5.956zm8.306-1.75c-.211-.79-.725-1.592-1.069-1.958-.54-.578-1.064-.986-1.588-1.209a6.1 6.1 0 0 0-2.393-.488c-1.043 0-1.991.175-2.758.536a5.5 5.5 0 0 0-1.921 1.469 6 6 0 0 0-1.133 2.174 9.4 9.4 0 0 0-.366 2.668c0 .944.127 1.862.382 2.673a5.54 5.54 0 0 0 1.206 2.127c.551.6 1.255 1.066 2.102 1.395.842.323 1.858.493 3.033.493 2.414-.005 3.685-.546 4.209-.838.09-.053.18-.143.069-.398l-.546-1.533c-.084-.227-.312-.148-.312-.148-.598.223-1.445.62-3.43.62-1.292 0-2.255-.387-2.859-.986-.614-.61-.921-1.512-.969-2.784h8.349s.222 0 .243-.212c.011-.09.286-1.719-.249-3.60240:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"Some of our customers and their stories\"}],\"$undefined\"]}],[\"$\",\"section\",null,{\"className\":\"relative z-10 w-full overflow-x-clip\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-[1330px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hidden grid-cols-6 grid-rows-2 xl:grid\",\"children\":[[\"$\",\"$L2f\",\"1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"g\",null,{\"fill\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"d\":\"$42\"}],[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"$43\",\"clipRule\":\"evenodd\"}],\"$L44\",\"$L45\",\"$L46\"]}]}]}]}],\"$L47\"]}],\"$L48\",\"$L49\",\"$L4a\",\"$L4b\",\"$L4c\",\"$L4d\",\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\"]}],\"$L53\"]}]}]]}]\n41:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"Recent from the blog\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"max-w-ds-layout-content-v1 mx-auto px-ds-antigrid-gap w-full flex flex-col gap-ds-antigrid\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"grid gap-ds-antigrid sm:grid-cols-3\",\"children\":[[\"$\",\"li\",\"introducing-vitest-integration\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-vitest-integration\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 24, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Vitest Integration for Testing\"}]]}]]}]}],[\"$\",\"li\",\"introducing-experiment-tool-mocks\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-experiment-tool-mocks\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 23, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Experiment Tool Mocks\"}]]}]]}]}],[\"$\",\"li\",\"introducing-experiment-lifecycle-hooks\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-experiment-lifecycle-hooks\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 22, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Experiment Lifecycle Hooks\"}]]}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"flex justify-center\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog\",\"className\":\"text-ds-main-gray hover:text-ds-green transition-colors\",\"children\":\"All posts â\"}]}]]}]]}]\n44:[\"$\",\"path\",null,{\"d\":\"M92.875 44.697c-.328-.26-.376-.329-.482-.499-.164-.254-.249-.62-.249-1.087 0-.732.244-1.262.747-1.617 0 0 .72-.626 2.424-.605 1.197.016 2.266.19 2.266.19v3.804s-1.059.228-2.255.302c-1.7.1-2.451-.488-2.446-.488zm3.324-5.882a18 18 0 0 0-1.302-.037 8 8 0 0 0-2.054.265 5.4 5.4 0 0 0-1.742.812 4.04 4.04 0 0 0-1.212 1.379c-.296.551-.445 1.198-.445 1.93s.127 1.384.382 1.91c.254.53.62.97 1.09 1.31.466.339 1.038.588 1.7.737.656.148 1.397.228 2.212.228.858 0 1.71-.074 2.536-.212a47 47 0 0 0 2.102-.409c.28-.064.587-.148.587-.148.207-.053.191-.276.191-.276V38.65c0-1.676-.45-2.923-1.334-3.692-.879-.769-2.166-1.156-3.838-1.156-.625 0-1.636.085-2.24.207 0 0-1.82.355-2.572.944 0 0-.164.1-.074.334l.592 1.591c.075.207.276.138.276.138s.063-.026.137-.069c1.605-.875 3.637-.848 3.637-.848.9 0 1.6.18 2.065.54.455.35.688.881.688 1.995v.355a26 26 0 0 0-1.376-.164z\"}]\n54:T5ce,M163.555 34.504c.063-.19-.069-.28-.127-.302-.143-.053-.853-.202-1.398-.239-1.049-.063-1.631.111-2.155.345-.519.233-1.09.61-1.413 1.045v-1.019c0-.138-.101-.254-.238-.254h-2.139c-.138 0-.239.111-.239.254v12.48c0 .138.112.255.255.255h2.196a.255.255 0 0 0 .255-.255v-6.232c0-.838.095-1.67.275-2.196.18-.52.429-.933.731-1.23a2.5 2.5 0 0 1 1.032-.62c.386-.117.815-.16 1.122-.16.434 0 .916.112.916.112.159.016.249-.08.307-.228.143-.382.551-1.528.63-1.756zm-20.592-5.781a6.5 6.5 0 0 0-1.958-.286c-1.509 0-2.7.429-3.537 1.272-.831.838-1.397 2.116-1.678 3.792l-.101.568h-1.895s-.232-.011-.28.243l-.312 1.74c-.022.165.047.27.275.27h1.842l-1.874 10.47c-.148.843-.312 1.538-.498 2.063-.185.52-.365.907-.582 1.188-.212.27-.418.472-.763.594a3.1 3.1 0 0 1-.984.143c-.201 0-.471-.032-.672-.074-.196-.037-.302-.085-.45-.148 0 0-.218-.085-.302.132-.069.175-.561 1.533-.619 1.703-.059.164.026.297.127.334.243.09.429.143.762.222.466.112.858.117 1.223.117.768 0 1.471-.106 2.048-.318.588-.212 1.096-.578 1.546-1.077.487-.54.794-1.103 1.086-1.872.291-.764.534-1.708.735-2.81l1.88-10.666h2.752s.233.01.281-.244l.312-1.74c.022-.164-.047-.27-.275-.27h-2.668c.016-.059.132-1.003.44-1.888.132-.37
1827.375-.685.587-.891a1.74 1.74 0 0 1 .699-.435c.265-.085.566-.128.895-.128.248 0 .497.032.688.07.259.052.36.084.429.105.27.085.306 0 .36-.127l.64-1.755c.063-.191-.095-.27-.153-.292zm-37.307 18.095c0 .138-.101.255-.238.255h-2.213c-.137 0-.238-.112-.238-.255V28.961c0-.138.101-.255.238-.255h2.213c.137 0 .238.112.238.255z45:[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"$54\",\"clipRule\":\"evenodd\"}]\n46:[\"$\",\"path\",null,{\"d\":\"M49.886 30.157a6.9 6.9 0 0 1 4.972-2.118c2.588 0 4.847 1.432 6.05 3.558a8.4 8.4 0 0 1 3.42-.722c4.668 0 8.453 3.788 8.453 8.462s-3.785 8.462-8.453 8.462a8.5 8.5 0 0 1-1.666-.165 6.19 6.19 0 0 1-5.395 3.141c-.97 0-1.887-.221-2.703-.617a7.05 7.05 0 0 1-6.491 4.263c-2.916 0-5.624-1.906-6.617-4.58a6.5 6.5 0 0 1-1.346.14c-3.615 0-6.545-2.939-6.545-6.562a6.57 6.57 0 0 1 3.272-5.685 7.5 7.5 0 0 1-.627-3c.003-4.168 3.412-7.547 7.62-7.547a7.63 7.63 0 0 1 6.056 2.97\"}]\n47:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n55:T61f,M56.502 28.302v23.013h4.193v-10.37l6.626 3.173h.318L56.914 28.302zm35.722.196 10.688 22.817H98.27l-1.881-4.22h-9.144l-1.871 4.22h-4.221L91.84 28.498zm2.677 15.264-3.107-6.953-3.08 6.953zm22.91-1.778q1.742-.842 2.751-2.386c.674-1.02 1.011-2.2 1.011-3.52 0-1.431-.346-2.676-1.02-3.743-.683-1.067-1.619-1.9-2.817-2.508s-2.545-.908-4.062-.908h-8.45v22.405h4.351V32.691h3.613c1.151 0 2.115.309 2.901.917.777.609 1.17 1.432 1.17 2.48s-.393 1.881-1.17 2.508-1.741.946-2.901.946h-2.948v.028l7.01 11.745h4.894l-5.484-8.882a8 8 0 0 0 1.151-.449m20.711-1.843a9.3 9.3 0 0 0-2.227-1.077 29 29 0 0 0-2.452-.692 20 20 0 0 1-2.237-.655c-.674-.244-1.217-.58-1.629-.992s-.627-.974-.627-1.685c0-.852.375-1.563 1.133-2.124s1.694-.852 2.798-.852c1.254 0 2.424.206 3.491.627 1.067.412 1.937.973 2.62 1.685h.028v-4.502a11.3 11.3 0 0 0-2.91-1.01 16.3 16.3 0 0 0-3.229-.3c-1.535 0-2.92.28-4.146.851-1.226.562-2.199 1.367-2.929 2.396-.73 1.04-1.086 2.246-1.086 3.632 0 1.197.206 2.18.627 2.948a5.3 5.3 0 0 0 1.629 1.852 9 9 0 0 0 2.236 1.124c.824.28 1.638.514 2.452.72s1.554.421 2.228.655q1.01.351 1.628.927c.412.384.627.898.627 1.535 0 .851-.393 1.563-1.17 2.124s-1.759.852-2.929.852c-1.432 0-2.761-.253-3.987-.749q-1.839-.756-3.088-2.03h-.028v4.735a12 12 0 0 0 3.341 1.198q1.81.365 3.762.365c1.582 0 2.995-.281 4.24-.852 1.244-.57 2.236-1.366 2.976-2.396.739-1.039 1.104-2.246 1.104-3.631 0-1.17-.206-2.134-.627-2.883a5.1 5.1 0 0 0-1.628-1.796zm20.627-11.23v9.246h-10.014V28.91h-4.352v22.405h4.352v-9.378h10.014v9.378h4.351V28.91zm-80.72-.61L67.705 44.11h.319l6.626-3.173v10.37h4.192V28.302z48:[\"$\",\"$L2f\",\"2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$55\"}]}]}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n56:T992,M94.163 36.505c-2.366-1.79-4.763-3.177-4.763-5.196 0-1.211 1.068-2.453 2.54-2.453 2.655 0 4.214 2.77 5.745 6.236h.953v-7.969h-6.64c-5.484 0-7.101 3.32-7.101 5.919 0 3.407 2.8 5.428 5.975 7.794 2.223 1.646 4.099 3.177 4.099 4.938 0 1.906-1.299 3.002-2.944 3.002-1.761 0-4.36-2.31-6.177-7.101h-.953v8.834h7.592c4.677 0 7.015-3.695 7.102-6.67.115-3.465-2.857-5.397-5.428-7.332zm20.67 11.26v-9.326c0-4.042-2.512-5.108-6.149-5.108h-6.466l.028 6.583h1.069c1.127-2.801 2.742-4.85 4.474-4.85 1.501 0 2.165 1.298 2.165 2.655v1.27c-2.425 1.444-8.89
1821 2.655-8.891 7.043 0 2.54 1.761 4.649 4.329 4.649 2.224 0 3.754-1.444 4.534-3.146.143 1.415 1.068 2.974 3.176 2.974h3.32v-1.27c-1.068 0-1.587-.72-1.587-1.472zm-4.966-1.444c-.462.664-1.183 1.416-2.049 1.416-1.212 0-1.991-.923-1.991-2.77 0-2.11 2.829-3.466 4.043-4.476v5.832zM140.67 31.54c1.847 0 3.002-1.299 3.002-2.975s-1.155-2.916-3.002-2.916c-1.848 0-3.031 1.242-3.031 2.916s1.242 2.974 3.031 2.974m28.696 1.789v1.27c1.82 0 2.338.954 1.444 3.522l-2.165 5.86-2.77-7.13c-.636-1.385-.289-2.251 1.04-2.251v-1.27h-13.769v-5.774h-1.299c-.375 1.963-2.425 5.773-5.918 5.773v1.27h2.251v11.866c0 1.99.665 4.245 4.534 4.245h6.005v-6.525h-1.068c-.432 1.531-1.329 4.59-3.263 4.59-1.069 0-1.242-1.183-1.242-2.136v-11.49h5.514c.665 0 1.357.087 1.702.894l5.861 14.493c-1.127 2.568-3.06 2.975-6.525 1.906v5.081c.895 0 3.205.028 3.609-.087 2.279-.664 3.838-5.14 4.475-6.872l4.965-13.424c.549-1.472 1.009-2.54 1.963-2.54v-1.27zm-35.392 14.437V37.92c0-3.09-1.472-4.938-4.388-4.938-2.569 0-4.057 1.782-5.196 3.44V33.33h-6.583v1.27c1.127 0 1.618.692 1.618 1.5v11.664c0 .78-.578 1.472-1.618 1.472v1.27h8.199v-1.27c-1.04 0-1.618-.693-1.618-1.472v-9.767c.664-.885 1.432-1.838 2.714-1.838 1.212 0 1.906.981 1.906 2.164v9.44c0 .78-.577 1.473-1.617 1.473v1.27h8.198v-1.27c-1.04 0-1.618-.693-1.618-1.472zm9.583 0V33.33h-6.583v1.27c1.127 0 1.618.693 1.618 1.5v11.664c0 .78-.578 1.472-1.618 1.472v1.27h8.199v-1.27c-1.04 0-1.618-.693-1.618-1.472zm-68.364-4.003-1.275-2.156-6.165 3.649 6.849-8.47 1.035-.59-.256-.373.47-.583-2.16-1.749-.991 1.226L52.74 46.06l7.38-8.62 13.747-7.321-1.305-2.453-7.487 3.986 3.686-4.306-2.114-1.807-8.296 9.693-8.243 4.388 6.31-8.102 3.954-1.998-1.254-2.481-11.522 5.827 3.143-4.038-2.195-1.707-6.63 8.522.103.082 1.238 2.45 7.353-3.717-6.7 8.602 1.096.854.652 1.226 7.74-4.12-8.521 9.956 2.11 1.806.425-.496 20.562-11.722-6.827 8.445.112.091-.012.005 1.416 2.393 9.079-5.372-3.496 5.48 2.343 1.493 5.567-8.724z49:[\"$\",\"$L2f\",\"3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$56\"}]}]}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n57:T1089,M38.678 29.581v6.964h28.28V29.58zm0 13.874v6.964h28.28v-6.964zm43.695-13.874c-2.205 0-3.717.538-4.73 1.33-1.194.907-1.702 2.134-1.702 3.348 0 1.046.343 1.977.85 2.711.82 1.159 3.167 2.42 4.891 3.296 1.638.819 3.188 1.48 4.093 2.551.594.704.904 1.423.904 2.552 0 1.272-.561 2.243-1.435 2.924-.878.68-2.103 1.063-3.402 1.063-2.994 0-4.57-.885-5.476-4.36l-1.01.267c.37 1.241.7 2.447.957 4.2 1.635.592 3.623.956 5.263.956 2.515 0 4.397-.736 5.581-1.807 1.074-.962 1.595-2.252 1.595-3.721 0-1.385-.63-2.671-1.222-3.35-1.217-1.384-2.846-2.06-5.05-3.189-1.78-.903-2.884-1.526-3.615-2.232-.536-.509-.957-1.442-.957-2.233 0-.876.332-1.614 1.01-2.18.791-.674 1.937-1.063 3.349-1.063 3.336 0 3.925 1.025 4.518 3.934l1.01-.266a81 81 0 0 1-.69-3.933c-1.445-.562-2.922-.798-4.732-.798m40.4.372v.85c2.116 0 2.286.145 2.286 2.18V47.07c0 2.005-.17 2.126-2.286 2.126v.798h9.196c2.939 0 4.587-.683 5.688-1.755 1.129-1.073 1.595-2.468 1.595-3.88 0-1.554-.789-2.666-1.808-3.455-1.214-.936-2.838-1.431-4.677-1.489v-.053c1.779-.255 2.981-.833 3.827-1.595 1.046-.933 1.382-2.17 1.382-3.242 0-1.442-.734-2.56-1.807-3.296-1.527-1.02-3.196-1.276-5.794-1.276zm-11.748.479c-1.246 0-2.196.468-2.87 1.116-.934.961-1.382 2.265-1.382 3.987v1.754h-2.074v.904h2.074v9.196c0 1.726-.149 1.914-2.127 1.914v.69h6.326v-.69c-2.12 0-2.233-.164-2.233-1.86v-9.25h3.562v-.904h-3.562v-1.648c0-2.007.338-3.045.904-3.72.393-.426.817-.639 1.382-.639.876 0 1.231.6 1.542 1.223.312.623.601 1.222 1.276 1.222.512 0 .797-.282.797-.85 0-.508-.404-1.216-1.223-1.754-.57-.368-1.235-.691-2.392-.691m60.281 0c-1.044.648-2.018.97-3.402 1.17v.584c1.526 0 1.701.223 1.701 1.86v13.396c0 1.637-.062 1.86-1.701 1.86v.692h5.262v-.691c-1.554 0-1.594-.224-1.594-1.86v-2.978l1.541-1.594 4.625 7.123h3.243v-.691c-.847.027-1.504-.073-2.127-1.063l-4.306-6.539 2.977-2.87c.649-.623 1.097-.823 1.914-.85v-.692h-4.199v.691c1.358 0 1.186.464.425 1.17l-4.04 3.933h-.053V30.591zm-43.324.638h2.711c1.98 0 3.245.412 4.04 1.063.619.508 1.064 1.643 1.064 2.604 0 1.355-.46 2.352-1.276 3.03-1.021.849-2.624 1.223-4.572 1.223h-2.817v-6.964c0-.763.119-.956.85-.956m-11.109 2.657c-.366 2.965-1.568 3.658-3.349 3.828v.638h2.126v9.25c0 2.204 1.325 2.87 2.764 2.87 1.157 0 2.031-.362 2.764-1.01l-.425-.638c-.568.425-1.099.69-1.754.69-.987 0-1.382-.694-1.382-2.02v-9.142h2.977v-.904h-2.977v-3.562zM96.992 36.97c-1.81 0-3.152.521-4.253 1.542-1.13 1.099-1.701 2.872-1.701 5.103 0 2.573.653 4.271 1.754 5.316 1.131.988 2.507 1.382 4.2 1.382 1.78 0 3.123-.421 4.252-1.436 1.076-1.046 1.754-2.717 1.754-5.262 0-2.23-.65-3.947-1.754-5.05-1.101-1.046-2.362-1.595-4.252-1.595m49.277 0c-1.495 0-2.454.372-3.19.797-.906.536-1.488 1.289-1.488 1.967 0 .428.259.85.797.85.593 0 .87-.295 1.01-.69.257-.623.483-1.102.851-1.382.508-.4 1.065-.638 1.913-.638.934 0 1.599.285 2.02.85.37.48.479 1.319.479 1.967v1.223l-1.648.372c-1.81.393-3.236.997-4.2 1.648-1.241.816-1.754 1.837-1.754 3.136 0 1.074.438 1.854 1.117 2.392.735.593 1.698.85 2.604.85 1.865 0 2.975-.635 3.934-1.541h.106c.257.93.876 1.435 1.861 1.435.738 0 1.22-.147 1.701-.372l-.16-.69a1.36 1.36 0 0 1-.744.212c-.563 0-.85-.536-.85-1.808v-6.644c0-1.242-.226-1.997-.957-2.818-.708-.788-1.706-1.116-3.402-1.116m10.419 0c-.934.678-1.897.972-3.137 1.17v.637c1.495-.027 1.648.17 1.648 1.808v6.857c0 1.697-.125 1.86-1.648 1.86v.692h4.944v-.691c-1.329 0-1.382-.164-1.382-1.86v-6.805c1.131-1.556 2.428-2.658 3.614-2.658.762 0 1.278.22 1.648.585.536.568.638 1.45.638 2.551v6.326c0 1.697-.076 1.86-1.435 1.86v.692h4.784v-.691c-1.271 0-1.382-.226-1.382-1.808V41.01c0-1.495-.359-2.513-1.01-3.136-.621-.593-1.497-.904-2.711-.904-1.554 0-3.015.9-4.146 2.339h-.053l-.107-2.18zm-59.7
1825.904c1.189 0 2.167.376 2.818 1.17.761.988 1.169 2.393 1.169 4.57 0 2.289-.516 3.72-1.222 4.626-.649.733-1.525 1.222-2.711 1.222-1.187 0-2.118-.489-2.765-1.223-.706-.905-1.17-2.336-1.17-4.624 0-2.178.411-3.583 1.17-4.572.676-.793 1.582-1.17 2.711-1.17m30.194 2.18h3.508c2.314 0 3.902.403 4.891 1.169 1.012.763 1.541 1.839 1.541 3.083 0 1.471-.438 2.539-1.116 3.242-.961.991-2.245 1.383-4.253 1.383h-3.508c-.876 0-1.063-.198-1.063-1.383zm21.529 2.71v4.997c-.708.704-1.644 1.488-3.03 1.488-.847 0-1.489-.29-1.914-.69-.425-.422-.585-1.017-.585-1.755 0-1.297.762-2.067 1.861-2.658 1.044-.648 2.451-1.044 3.668-1.3824a:[\"$\",\"$L2f\",\"4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$57\"}]}]}]}],\"$L58\"]}]\n59:T716,M80.919 31.097h3.844L87.51 42.41c.495 2.142.604 3.406.604 3.406h.055s.165-1.264.714-3.406l2.636-11.313h4.339l2.8 11.313c.55 2.197.66 3.406.66 3.406h.055s.055-1.209.549-3.406l2.636-11.313h3.844l-4.832 18.618h-4.23l-2.91-11.259c-.604-2.471-.659-3.514-.659-3.514h-.055s-.055 1.098-.604 3.514l-2.746 11.259h-4.393c-.11 0-5.053-18.618-5.053-18.618m24.823 11.863c0-4.229 2.746-7.03 6.92-7.03 4.119 0 6.865 2.746 6.865 7.03 0 4.283-2.746 7.03-6.865 7.03-4.174 0-6.92-2.747-6.92-7.03m10.215 0c0-2.746-1.318-4.284-3.295-4.284-2.142 0-3.35 1.758-3.35 4.284 0 2.8 1.318 4.338 3.35 4.338 2.087 0 3.295-1.702 3.295-4.338m8.677-6.81v2.526h.055c.605-1.318 1.977-2.581 4.394-2.581.384 0 .659.055.824.11v3.405h-.11s-.33-.11-1.153-.11c-2.637 0-4.064 1.538-4.064 4.448v5.822h-3.405V36.15zm6.865-5.053h3.405v5.986c0 3.515-.055 4.174-.055 4.174h.055l5.053-5.052h4.229l-5.932 5.876 6.865 7.689h-4.009l-4.943-5.602-1.263 1.263v4.339h-3.46zm13.62 9.391c0-5.711 3.57-9.555 8.897-9.555s8.897 3.844 8.897 9.555-3.57 9.556-8.897 9.556-8.897-3.844-8.897-9.556m14.169 0c0-3.899-2.087-6.535-5.217-6.535s-5.217 2.636-5.217 6.535 2.087 6.536 5.217 6.536c3.076 0 5.217-2.636 5.217-6.536m4.943 3.02h3.899c0 2.198 1.483 3.406 3.79 3.406 1.922 0 3.24-.989 3.24-2.362 0-1.537-1.044-1.977-4.229-2.58-2.965-.605-6.096-1.593-6.096-5.438 0-3.24 2.746-5.656 6.975-5.656 4.393 0 7.084 2.306 7.084 5.766h-3.899c0-1.702-1.318-2.746-3.185-2.746-1.922 0-3.13.934-3.13 2.307 0 1.428.823 2.032 3.459 2.526 3.845.824 7.03 1.263 7.03 5.547 0 3.405-2.966 5.656-7.304 5.656-4.504 0-7.634-2.526-7.634-6.425M40.828 40.325c0 .604.165 1.153.44 1.647l5.327 9.227c.549.933 1.373 1.702 2.416 2.032a4.39 4.39 0 0 0 5.162-1.923l1.264-2.251-5.053-8.787 5.382-9.282 1.263-2.196a5.3 5.3 0 0 1 1.483-1.648h-8.238c-1.428 0-2.8.769-3.515 2.032l-5.492 9.501a3.36 3.36 0 0 0-.439 1.6484b:[\"$\",\"$L2f\",\"5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"g\",null,{\"fill\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"d\":\"$59\"}],[\"$\",\"path\",null,{\"d\":\"M71.253 40.324a3.35 3.35 0 0 0-.44-1.648l-5.381-9.336c-1.044-1.812-3.186-2.581-5.163-1.922-1.043.33-1.867 1.098-2.416 2.032l-1.263 2.087 5.107 8.787-5.382 9.28-1.263 2.253a5.3 5.3 0 0 1-1.483 1.647h8.293c1.428 0 2.801-.769 3.515-2.032l5.492-9.5c.22-.495.384-1.044.384-1.648\"}]]}]}]}]}
182],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n4c:[\"$\",\"div\",\"6\",{\"className\":\"relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"g\",null,{\"fill\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M127.241 32.771c-1.91 0-3.377.679-4.75 2.099v-1.767h-3.739V50.49h4.023V40.409c0-2.304 1.373-3.771 3.456-3.771.379 0 .71.047.947.095l2.792-3.677a15 15 0 0 0-2.729-.284m34.76.316h-4.655l-4.292 5.68-4.291-5.68h-4.639l6.563 8.773-6.563 8.63h4.733l4.181-5.506 4.182 5.506h4.796l-6.595-8.614zm-84.636-3.913c-1.373 1.83-1.704 2.445-3.03 2.445H54.503v23.574h7.779c1.751 0 3.455-.853 4.56-2.257 1.42-1.893 1.61-2.446 2.982-2.446h19.865V26.918h-7.826a5.66 5.66 0 0 0-4.497 2.256M75.22 44.416c-1.799 0-3.455.757-4.56 2.209-1.42 1.893-1.704 2.445-3.03 2.445h-7.005V37.757h8.3c1.798 0 3.455-.852 4.56-2.256 1.42-1.83 1.798-2.398 3.076-2.398h6.974v11.313zm38.089-5.807c1.752-.994 2.982-2.73 2.982-5.049 0-3.392-2.603-6.643-6.406-6.643H98.508V50.49h11.376c4.119 0 6.974-2.919 6.974-6.595 0-2.177-.994-4.055-3.55-5.286m-10.761-8.015h7.022c1.751 0 2.793 1.657 2.793 3.108 0 1.799-1.562 3.014-3.03 3.014h-6.785zm6.769 16.22h-6.784v-6.422h7.021c1.799 0 3.266 1.562 3.266 3.156.016 1.799-1.83 3.266-3.503 3.266\"}],[\"$\",\"path\",null,{\"d\":\"M140.1 45.489c-.663 1.041-1.941 1.657-3.361 1.657-2.224 0-4.071-1.515-4.071-3.819h12.039c.19-.71.237-1.041.237-1.657 0-5.285-3.266-8.915-8.205-8.915-4.844 0-8.252 3.44-8.252 9.057 0 5.476 3.266 9.01 8.347 9.01 3.55 0 6.69-1.736 7.589-5.333zm-3.376-9.041c2.224 0 3.944 1.42 3.897 3.534H132.7c0-2.083 1.799-3.534 4.024-3.534\"}]]}]}]}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":\"Read â\"}]]}]\n5a:Tb42,M129.764 31.578c2.952-.057 4.375.926 6.414 2.84-.062-.769-.054-1.69-.065-2.472 1.133-.086 2.453.018 3.685-.063-.092 1.172-.029 3.209-.03 4.437l.008 9.232c-.001 2.196.209 5.683-.551 7.64-2.799 7.208-14.2 7.262-17.3.21l1.898-.783a32 32 0 0 0 1.628-.699c1.165 2.216 2.907 3.148 5.393 3.071 1.463-.025 2.791-.492 3.816-1.568 1.508-1.584 1.278-3.673 1.202-5.693-1.627 1.627-3.285 2.462-5.616 2.542a9.2 9.2 0 0 1-6.639-2.445c-1.899-1.795-2.745-4.039-2.827-6.62-.172-5.401 3.494-9.507 8.984-9.629m1.292 14.969a5.675 5.675 0 1 0-1.414-11.262 5.675 5.675 0 0 0 1.414 11.262M58.017 24.859c2.117.051 4.327-.037 6.456 0 2.85.038 5.315-.292 7.943 1.068 3.976 2.057 4.955 7.268 2.994 11.053-.766 1.48-2.435 2.902-4.072 3.38 1.781 2.8 3.31 5.876 5.02 8.728.374.623.688 1.225 1.1 1.832-.81.067-4.147.247-4.734-.18l-5.45-9.675c-1.715.008-3.48.037-5.19-.006.074 3.32-.05 6.675.015 9.957-1.057-.119-2.953-.058-4.084-.048l-.014-16.556c-.001-3.066-.086-6.518.016-9.553m4.096 12.674 3.229-.004c2.116.007 4.052.16 5.74-1.37 1.59-1.92 1.844-4.94-.192-6.64a4.3 4.3 0 0 0-1.787-.88c-1.166-.268-5.527-.122-7.007-.139.018 2.825-.097 6.304.017 9.033m90.779-5.958c.368.005.754.009 1.121.031a8.45 8.45 0 0 1 5.795 2.819c2.186 2.493 2.358 5.088 2.156 8.211-1.47-.108-3.593-.05-5.12-.05l-9.121.01c.229 1.586.755 2.894 1.993 3.972 1.652 1.439 4.123 1.757 6.099.824 1.069-.506 1.764-1.353 2.522-2.225l.983.461c.52.209 1.596.784 2.144 1.055a7.6 7.6 0 0 1-1.259 1.864c-3.266 3.577-9.91 3.712-13.365.31-5.956-5.867-3.071-16.947 6.052-17.282m-5.056 7.934 6.041.002c.634.005 3.709.134 4.026-.136.137-.553-.349-1.815-.63-2.294a4.44 4.44 0 0 0-2.732-2.036c-.85-.216-1.746-.174-2.613-.106-1.483.392-2.52 1.064-3.305 2.408a6.7 6.7 0 0 0-.787 2.162m-59.507-7.926.201-.002c2.15-.015 4.348.54 5.913 2.096a5.9 5.9 0 0 1 1.577 2.85c.362 1.504.255 4.47.254 6.166l-.014 8.329c-1.037-.123-2.629-.06-3.7-.046q-.015-1.148.016-2.295c-1.166 1.062-2.267 1.953-3.834 2.33-3.514.845-7.676.044-8.72-3.898-.248-1.44-.088-3.085.76-4.306 1.674-2.41 4.727-2.792 7.395-3.21a117 117 0 0 0 4.208
182-.715c-.026-.548-.013-1.08-.172-1.614-.658-2.217-3.384-2.78-5.334-2.07-1.37.498-2.258 1.429-2.881 2.707-.948-.586-2.21-1.114-3.235-1.698 1.437-3.034 4.27-4.532 7.566-4.624m-3.48 16.046c1.027.679 2.072.799 3.262.561a5.3 5.3 0 0 0 3.375-2.253c.715-1.087.985-2.512.857-3.795-.107-.124-.076-.132-.202-.15-1.742.322-3.583.676-5.33.95-2.389.376-4.044 2.94-1.961 4.687m24.735-16.054c2.018-.029 3.802.368 5.338 1.766a6.5 6.5 0 0 1 1.879 3.072c.49 1.762.304 3.84.348 5.66.07 2.888-.115 6.052.029 8.916-1.305-.058-2.589-.032-3.895-.01-.022-2.44.273-11.7-.368-13.325a3.8 3.8 0 0 0-2.128-2.14c-1.245-.51-2.59-.396-3.809.115-2.802 1.703-2.144 4.402-2.195 7.28-.048 2.648-.139 5.456-.029 8.09-1.243-.08-2.585-.04-3.832-.017-.102-6.323.029-12.71-.034-19.042 1.168-.07 2.481.011 3.709-.044-.072.646-.053 1.74-.062 2.42q.29-.352.588-.696c1.221-1.4 2.648-1.919 4.461-2.0454d:[\"$\",\"$L2f\",\"7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$5a\"}]}]}]}],\"$L5b\"]}]\n5c:T7b8,M159.395 26.032V50.79h-5.632V26.03zm-7.71 8.348v16.445h-5.008V49.41a6.7 6.7 0 0 1-2.159 1.415 6.5 6.5 0 0 1-2.619.527q-1.769 0-3.273-.658a8.3 8.3 0 0 1-2.619-1.872 9 9 0 0 1-1.769-2.762 9.5 9.5 0 0 1-.62-3.453c0-1.227.206-2.37.62-3.42a8.9 8.9 0 0 1 1.769-2.795 7.9 7.9 0 0 1 2.619-1.842q1.504-.693 3.273-.692 1.407.001 2.619.527 1.212.494 2.159 1.415v-1.415h5.008zm-8.874 11.973q1.537.001 2.518-1.054 1.016-1.051 1.015-2.696.001-1.645-1.015-2.696c-.654-.7-1.496-1.054-2.518-1.054q-1.536-.001-2.554 1.054-.983 1.051-.984 2.696 0 1.645.984 2.696 1.015 1.052 2.554 1.054m-17.224-20.325c1.486 0 2.749.207 3.798.623q1.574.623 2.653 1.742a8.5 8.5 0 0 1 1.735 2.63c.413.989.62 2.05.62 3.192a8.2 8.2 0 0 1-.62 3.192 8.4 8.4 0 0 1-1.735 2.631q-1.079 1.12-2.653 1.742c-1.049.416-2.312.623-3.798.623h-2.718v8.419h-5.732V26.028zm-.819 11.28c.766 0 1.351-.077 1.769-.231a3.5 3.5 0 0 0 1.079-.658q.885-.825.885-2.203 0-1.38-.885-2.204a3 3 0 0 0-1.079-.623q-.62-.264-1.769-.262h-1.899v6.184h1.899zM102.25 34.38l4.223 7.892h.066l3.763-7.891h5.762l-12.343 24.797h-5.732l5.632-11.345-7.596-13.452zm-7.336 0v16.445h-5.008V49.41a6.8 6.8 0 0 1-2.16 1.415q-1.211.526-2.619.527-1.769 0-3.273-.658a8.4 8.4 0 0 1-2.62-1.872 9.1 9.1 0 0 1-1.768-2.762 9.5 9.5 0 0 1-.62-3.453c0-1.227.207-2.37.62-3.42a9 9 0 0 1 1.769-2.795 7.9 7.9 0 0 1 2.619-1.842q1.504-.693 3.273-.692 1.407.001 2.62.527 1.21.494 2.159 1.415v-1.415h5.007zm-8.876 11.973c1.027 0 1.865-.35 2.524-1.054q1.015-1.051 1.014-2.696t-1.014-2.696q-.983-1.052-2.523-1.054-1.54-.001-2.554 1.054-.983 1.051-.984 2.696.001 1.645.984 2.696 1.015 1.052 2.553 1.054M69.05 26.028q2.226 0 3.798.623t2.653 1.742a8.5 8.5 0 0 1 1.734 2.63c.414.989.62 2.05.62 3.192a8.2 8.2 0 0 1-.62 3.192 8.4 8.4 0 0 1-1.734 2.631q-1.08 1.12-2.653 1.742c-1.05.416-2.313.623-3.798.623h-2.72v8.419h-5.728V26.028zm-.816 11.28c.766 0 1.352-.077 1.769-.231a3.5 3.5 0 0 0 1.08-.658q.885-.825.884-2.203 0-1.38-.884-2.204a3 3 0 0 0-1.08-.623q-.62-.264-1.769-.262h-1.899v6.184h1.9z4e:[\"$\",\"div\",\"8\",{\"className\":\"relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$5c\"}]}]}]}
182],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":\"Read â\"}]]}]\n5d:T14ec,M51.996 23.438c-1.396-1.655-2.598-3.335-2.83-3.684a.062.062 0 0 0-.091 0 59 59 0 0 1-2.844 3.684c-11.97 15.267 1.887 25.57 1.887 25.57l.116.077c.104 1.59.362 3.878.362 3.878h1.035s.258-2.275.361-3.878l.117-.09c0 .012 13.858-10.29 1.887-25.557m-2.883 25.337s-.62-.53-.788-.802v-.026l.75-16.624c0-.051.077-.051.077 0l.737 16.624v.026c-.168.272-.776.802-.776.802m25.919-3.387-5.778-14.103-.013-.04h-4.486v.945h.724c.22 0 .427.09.582.245a.8.8 0 0 1 .232.582l-.129 14.194c0 .44-.362.801-.801.814l-.737.026v.93h4.37v-.93l-.453-.013a.825.825 0 0 1-.802-.814v-13.38l6.296 15.138c.09.22.297.361.53.361.232 0 .44-.142.53-.361L81.25 34.18l.09 13.03a.83.83 0 0 1-.814.828h-.465v.93h5.119v-.917h-.698c-.44 0-.802-.375-.815-.815l-.039-14.193c0-.453.362-.815.802-.828l.75-.013v-.956h-4.37zm40.254 2.404a.78.78 0 0 1-.219-.569v-6.967q0-1.998-1.164-3.103c-.762-.736-1.835-1.124-3.154-1.124-1.861 0-3.322.75-4.343 2.236-.013.026-.052.039-.091.039s-.064-.026-.064-.065l-.479-1.861h-.814l-2.068 1.19v.645h.53c.245 0 .452.065.594.194.142.13.22.324.22.595v8.209a.78.78 0 0 1-.22.568.78.78 0 0 1-.569.22h-.517v.944h4.745v-.944h-.518a.78.78 0 0 1-.568-.22.78.78 0 0 1-.22-.568v-5.443a5.3 5.3 0 0 1 .439-2.055 4.13 4.13 0 0 1 1.319-1.655c.582-.426 1.28-.633 2.094-.633.905 0 1.59.284 2.03.853.426.569.646 1.319.646 2.198v6.709a.78.78 0 0 1-.22.569.78.78 0 0 1-.569.22h-.517v.943h4.745v-.944h-.518c-.193.052-.374-.026-.53-.18m43.383-15.487c-1.305-.698-2.779-1.06-4.356-1.06h-6.179v.944h.607c.233 0 .44.09.647.297.194.194.297.413.297.646v13.935c0 .233-.103.453-.297.647s-.414.297-.647.297h-.607v.944h6.179c1.577 0 3.051-.362 4.369-1.06 1.319-.698 2.379-1.733 3.154-3.051.776-1.319 1.177-2.909 1.177-4.731 0-1.81-.401-3.387-1.177-4.732-.788-1.344-1.848-2.365-3.167-3.076m1.849 7.782c0 1.654-.297 3.05-.879 4.175s-1.358 1.965-2.301 2.508a6.26 6.26 0 0 1-3.141.815h-1.254c-.233 0-.44-.091-.647-.298-.194-.194-.297-.413-.297-.646V33.508c0-.233.09-.44.297-.646.194-.194.414-.298.647-.298h1.254q1.706 0 3.141.815c.956.543 1.719 1.383 2.301 2.508.582 1.15.879 2.56.879 4.2m17.089.945c-.569-.66-1.667-1.216-2.973-1.513 1.784-.892 2.715-2.146 2.715-3.762 0-.879-.233-1.667-.698-2.34-.466-.672-1.125-1.215-1.965-1.59-.84-.374-1.836-.568-2.948-.568h-6.993v.943h.556c.232 0 .439.09.646.298.194.194.297.413.297.646v13.935c0 .233-.103.453-.297.647s-.414.297-.646.297h-.621v.944h7.588c1.151 0 2.237-.194 3.206-.582.97-.388 1.758-.957 2.314-1.706.569-.75.853-1.668.853-2.728-.013-1.163-.349-2.133-1.034-2.922m-8.713 6.282c-.193-.194-.297-.414-.297-.646V40.41h3.607c1.267 0 2.249.323 2.921.97q1.008.969 1.009 2.52c0 .62-.156 1.228-.44 1.784-.297.569-.737 1.021-1.331 1.37-.582.35-1.306.53-2.159.53h-2.663c-.233.013-.44-.077-.647-.271m-.284-8.234V33.52c0-.233.091-.44.297-.646.194-.194.414-.298.647-.298h1.706c1.228 0 2.146.31 2.715.905.569.608.853 1.383.853 2.34 0 .982-.271 1.77-.802 2.366-.53.581-1.331.879-2.404.879h-3.012zm-71.408-2.223a6.8 6.8 0 0 0-3.297-.827c-1.202 0-2.314.271-3.296.827-.995.543-1.771 1.332-2.353 2.327-.582.982-.879 2.146-.879 3.438s.297 2.457.88 3.44a6.15 6.15 0 0 0 2.352 2.326 6.8 6.8 0 0 0 3.296.827c1.203 0 2.314-.271 3.297-.827.995-.543 1.77-1.331 2.352-2.327.582-.995.879-2.159.879-3.439s-.297-2.456-.879-3.438c-.581-.995-1.357-1.784-2.352-2.327m.956 5.765c0 1.59-.388 2.883-1.163 3.801-.763.93-1.797 1.41-3.09 1.41s-2.326-.48-3.09-1.41c-.775-.93-1.163-2.223-1.163-3.8 0-1.578.388-2.883 1.164-3.801.763-.93 1.797-1.409 3.09-1.409s2.326.478 3.089 1.409c.775.918 1.163 2.21 1.163 3.8m44.676-5.765a6.8 6.8 0 0 0-3.297-.827c-1.202 0-2.314.271-3.296.827-.995.543-1.771 1.332-2.353 2.327-.581.995-.879 2.146-.879 3.438s.298 2.457.879 3.44c.582.981 1.371 1.783 2.353 2.326a6.8 6.8 0 0 0 3.296.827c1.203 0 2.314-.271 3.297-.827.995-.543 1.771-1.331 2.352-2.327.582-.995.88-2.146.88-3.439 0-1.292-.298-2.456-.88-3.438-.581-.983-1.37-1.784-2.352-2.327m.956 5.765c0 1.59-.387 2.883-1.163 3.801-.763.93-1.797 1.41-3.09 1.41s-2.326-.48-3.089-1.41c-.776-.93-1.
182164-2.223-1.164-3.8 0-1.603.388-2.883 1.164-3.801.763-.93 1.797-1.409 3.089-1.409s2.327.478 3.09 1.409c.763.918 1.163 2.21 1.163 3.8m-19.364-6.592c-1.034 0-1.978.22-2.844.66-.853.439-1.525 1.033-2.004 1.796a4.57 4.57 0 0 0-.724 2.495c0 .801.181 1.538.556 2.197a5 5 0 0 0 1.474 1.603l-1.849 2.521c-.232.31-.258.724-.09 1.06.181.35.517.556.905.556h.53c-.517.349-.931.763-1.215 1.254a3.3 3.3 0 0 0-.505 1.732c0 1.112.492 2.03 1.461 2.728.957.685 2.314 1.034 4.007 1.034a9.7 9.7 0 0 0 3.336-.569c1.034-.375 1.874-.93 2.507-1.655.634-.724.957-1.603.957-2.624 0-1.06-.388-1.81-1.293-2.546-.775-.608-1.99-.931-3.516-.931h-5.183c-.013 0-.026-.013-.026-.013s-.013-.026 0-.039l1.344-1.81c.362.168.698.272.995.337.311.064.66.09 1.048.09 1.085 0 2.081-.22 2.934-.66.853-.439 1.538-1.033 2.042-1.796a4.46 4.46 0 0 0 .737-2.482c0-.957-.465-2.715-1.732-3.607 0-.013.013-.013.013-.013l2.792.31v-1.28h-4.46a7.4 7.4 0 0 0-2.197-.348m1.564 8.118c-.491.258-1.021.4-1.551.4-.866 0-1.629-.31-2.288-.917-.647-.608-.97-1.5-.97-2.65s.323-2.03.97-2.65c.646-.608 1.409-.918 2.288-.918.543 0 1.06.13 1.551.4.491.26.892.66 1.215 1.19.31.53.478 1.19.478 1.965 0 .788-.155 1.448-.478 1.965-.31.556-.724.956-1.215 1.215m-3.516 4.77h3.516c.969 0 1.59.194 2.004.608.413.413.62.969.62 1.615 0 .944-.375 1.72-1.125 2.301-.749.582-1.758.88-3.011.88-1.086 0-1.991-.246-2.663-.712-.66-.465-.996-1.176-.996-2.08 0-.57.155-1.1.466-1.565a3.1 3.1 0 0 1 1.189-1.0474f:[\"$\",\"$L2f\",\"9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$5d\"}]}]}]}],\"$L5e\"]}]\n5f:T7c0,M58.424 38.066a5.57 5.57 0 0 1-5.563 5.563 5.57 5.57 0 0 1-5.562-5.563 5.57 5.57 0 0 1 5.562-5.563 5.57 5.57 0 0 1 5.563 5.563m122.523 10.127h-3.708v-20.54h3.708zm-10.27-12.195v-1.64h3.638v13.835h-3.638v-2.068q-1.497 1.926-4.279 1.926c-1.711 0-3.565-.642-4.778-1.997s-1.854-2.996-1.854-4.992c0-1.926.57-3.638 1.854-4.993s2.924-1.997 4.707-1.997c1.783.072 3.352.57 4.35 1.926m-6.275 7.774c.641.713 1.569 1.07 2.567 1.07q1.605 0 2.567-1.07c.714-.714 1.07-1.64 1.07-2.71s-.356-1.997-1.07-2.71c-.641-.714-1.569-1.07-2.567-1.07q-1.605 0-2.567 1.07c-.714.713-.999 1.568-.999 2.71 0 1.14.357 1.996.999 2.71m-16.831-9.414v2.424c.285-.855 1.069-1.64 1.497-1.925s1.284-.713 2.211-.713v3.708c-1.07-.142-1.783.286-2.567.927-.785.642-1.141 1.498-1.141 2.782v6.632h-3.709V34.358zm-37.299 13.835c-1.997 0-3.709-.642-5.064-1.997s-2.139-2.995-2.139-4.992.856-3.708 2.139-5.063c1.355-1.355 2.996-1.997 5.064-1.997 1.283 0 2.496.285 3.566.927s1.997 1.426 2.567 2.496l-3.138 1.712c-.285-.571-.642-.999-1.212-1.284-.5-.285-1.141-.5-1.783-.5q-1.498 0-2.568 1.07a3.7 3.7 0 0 0-1.069 2.64c0 .998.427 1.925 1.069 2.638.642.642 1.498.998 2.568.998a3.94 3.94 0 0 0 1.854-.428c.571-.285 1.141-.784 1.355-1.283l2.995 1.711a6 6 0 0 1-2.496 2.496c-1.069.5-2.425.856-3.708.856M97.078 35.998v-1.64h3.709v13.835h-3.709v-1.925c-.998 1.283-2.496 1.925-4.35 1.925a6.7 6.7 0 0 1-4.85-2.068c-1.284-1.355-1.854-3.067-1.854-4.992 0-1.997.57-3.637 1.854-5.064 1.284-1.355 2.996-1.997 4.778-1.997 1.855.072 3.424.57 4.422 1.926m-6.276 7.845c.713.713 1.57 1.07 2.639 1.07 1.07 0 1.925-.357 2.639-1.07s1.07-1.64 1.07-2.71c0-1.141-.357-1.997-1.07-2.71s-1.57-1.07-2.64-1.07c-1.069 0-1.925.357-2.638 1.07s-1.07 1.569-1.07 2.71c0 1.07.357 1.997 1.07 2.71m-6.347-16.19v3.71c-1.854-.143-2.781.926-2.781 2.567v.356h2.78v3.709h-2.78V48.05h-3.709v-9.985h-1.854v-3.708h1.854V34c0-1.925.784-3.637 1.854-4.564 1.07-.999 2.568-1.855 4.636-1.783m73.243 20.54h-3.709V34.358h3.709zm.214-18.471a2.07 2.07 0 0 1-4.137 0c0-2.781 4.137-2.781 4.137 050:[\"$\",\"$L2f\",\"10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"g\",null,{\"fill\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M62.275 50.119a15.04 15.04 0 0 1-9.414 3.352c-3.423 0-6.775-1.141-9.413-3.352a15.04 15.04 0 0 1 9.413-3.352c3.566 0 6.847 1.284 9.414 3.352\"}],[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M43.376 46.482c-1.925-2.211-2.995-5.064-2.924-7.988 0-6.846 5.563-12.41 12.41-12.41 6.846 0 12.409 5.564 12.409 12.41 0 3.067-1.07 5.848-2.924 7.988a39 39 0 0 1 1.782 1.283l.215.214c2.282-2.639 3.494-5.99 3.494-9.485 0-8.273-6.704-14.977-14.977-14.977s-14.976 6.704-14.976 14.977c0 3.495 1.212 6.846 3.423 9.485l.214-.214c.57-.428 1.212-.855 1.854-1.283\",\"clipRule\":\"evenodd\"}],[\"$\",\"path\",null,{\"d\":\"$5f\"}],[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M134.876 48.193a6.88 6.88 0 0 0 6.918-6.918 6.88 6.88 0 0 0-6.918-6.917 6.88 6.88 0 0 0-6.918 6.917c0 3.78 3.138 6.918 6.918 6.918m0-3.352c4.778 0 4.778-7.131 0-7.131s-4.778 7.131 0 7.131\",\"clipRule\":\"evenodd\"}],\"$L60\"]}]}]}]}],\"$L61\"]}]\n62:T98c,m105.978 46.118.873-.087v1.572a32.3 32.3 0 0 1-5.327.436q-2.97 0-4.192-1.746-1.224-1.66-1.223-5.24 0-7.25 5.
182677-7.25 2.794 0 4.192 1.573 1.397 1.572 1.31 4.89v1.485h-9.17q0 2.27.786 3.494.785.96 2.882 1.048l4.105-.175zm-.699-5.939q0-2.62-.873-3.58-.786-1.05-2.62-1.049-1.747 0-2.62 1.048-.96 1.136-1.048 3.494h7.161zm4.891 7.773V29.873h2.096v18.08zm15.022-9.694v6.9c0 .698 1.747.61 1.747.61l-.175 1.835c-1.397 0-2.62.175-3.318-.524a12.1 12.1 0 0 1-4.979 1.048q-1.833 0-2.795-1.136-1.047-1.047-1.048-3.056c0-2.01.35-2.271 1.048-2.97q1.048-.873 3.145-1.135l4.367-.437v-1.048q0-1.31-.612-2.009a2.62 2.62 0 0 0-1.747-.611h-5.327v-1.747h5.24q2.358 0 3.494.96a5.24 5.24 0 0 1 .96 3.407zm-8.471 5.59q0 2.532 2.096 2.532 2.009 0 3.668-.699l.611-.174v-4.542l-4.017.35q-1.31.087-1.747.785-.612.525-.611 1.747m16.506-8.123q-2.969 0-2.969 2.009 0 .873.699 1.31.698.436 3.056.873t3.494 1.223q1.135.786 1.048 2.882t-1.397 3.057q-1.31 1.048-3.931.96l-4.978-.349.175-1.747 4.803.262a6.1 6.1 0 0 0 2.446-.436q.873-.437.873-1.747 0-1.135-.873-1.572-.612-.524-3.057-.873a8.7 8.7 0 0 1-3.493-1.136q-.874-.7-.874-2.62 0-2.096 1.31-3.057a6.1 6.1 0 0 1 3.494-.873l5.065.174V35.9zm15.197.175h-4.367v6.55q0 2.357.35 3.057.35.786 1.659.786l2.446-.175.087 1.747-2.795.262q-2.096 0-2.969-1.048-.874-1.048-.786-4.018V35.9h-1.922v-1.747h1.922v-4.28h2.008v4.192h4.367zm2.882-3.581V29.96h2.009v2.27zm0 15.72V33.98h2.009v13.973h-2.009zm10.918-14.236q1.572 0 3.056.35h.699l-.087 1.747-3.232-.262q-2.358 0-3.144 1.135-.873 1.048-.873 4.105 0 2.97.873 4.192.699 1.135 3.144 1.135l3.232-.174.087 1.66q-1.922.348-3.755.348-3.232 0-4.455-1.572-1.31-1.746-1.222-5.59 0-3.842 1.31-5.501t4.367-1.573m-71.792 6.114a7.86 7.86 0 0 0-5.24-7.424 11.36 11.36 0 0 0-1.922-8.733 11.355 11.355 0 0 0-18.166 0 5.938 5.938 0 0 0-9.258 6.9 7.862 7.862 0 0 0-3.843 11.965 7.86 7.86 0 0 0 3.843 2.794 11.18 11.18 0 0 0 20.088 8.734 5.938 5.938 0 0 0 9.258-6.812 7.86 7.86 0 0 0 5.24-7.424M65.977 25.07a9.781 9.781 0 0 1 17.817 7.336l-8.734 7.686-8.733-3.93-1.747-3.669 1.485-7.598zm-4.367-1.048q1.573 0 2.883.96l-1.31 6.813-6.027-1.398a4.715 4.715 0 0 1 4.367-6.375zm-9.432 13.974a6.99 6.99 0 0 1 4.454-6.201l6.55 1.572 1.572 3.231-8.384 7.599a6.99 6.99 0 0 1-4.192-6.114zM75.06 52.93a9.87 9.87 0 0 1-17.817-7.51l8.56-7.686 8.733 3.93 1.922 3.668zm4.367.961q-1.66 0-2.882-.96l1.31-6.726 5.94 1.31a4.716 4.716 0 0 1-4.368 6.376m4.891-7.773-6.55-1.485-1.747-3.318 8.56-7.599a6.55 6.55 0 0 1-.263 12.40251:[\"$\",\"$L2f\",\"11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$62\"}]}]}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n63:T9ee,M175.052 35.533V33.84c0-.27-.293-.542-.585-.542h-6.444v-3.25c0-.27-.292-.541-.585-.541h-2.416c-.367 0-.586.27-.586.541v3.25h-3.808c-.366 0-.585.271-.585.542v1.693c0 .27.293.541.585.541h3.808v5.01c0 3.86 1.977 5.62 6.15 5.62h3.441c.366 0 .586-.27.586-.541V44.47c0-.27-.293-.541-.586-.541h-2.855c-2.27 0-3.075-.813-3.075-2.912v-5.01h6.443c.219 0 .512-.203.512-.474m-19.328-7.382h-3.295c-.366 0-.586.271-.586.542v2.167c0 .27.293.541.586.541h3.295c.366 0 .586-.27.586-.541v-2.167c0-.338-.293-.542-.586-.542m.443 15.843V33.838c0-.271-.293-.542-.586-.542h-7.468c-.366 0-.586.27-.586.542v1.693c0 .27.293.541.586.541h4.393v7.922h-4.393c-.366 0-.586.27-.586.542v1.692c0 .271.293.542.586.542h12.593c.366 0 .586-.27.586-.542v-1.692c0-.271-.293-.542-.586-.542zm-11.425.001h-3.807V28.693c0-.27-.293-.542-.586-.542h-7.395c-.366 0-.586.271-.586.542v1.693c0 .27.293.541.586.541h4.393v13.068h-4.906c-.366 0-.585.271-.585.542v1.693c0 .27.293.541.585.541h12.301c.366 0 .586-.27.586-.541v-1.693c0-.339-.22-.542-.586-.542m-20.06-10.968c-1.244 0-2.196.27-2.855.88l-.879.745h-.805l-.293-1.016a.63.63 0 0 0-.586-.406h-1.684c-.366 0-.586.27-.586.542v17.536c0 .271.293.542.586.542h2.416c.366 0 .586-.271.586-.542v-3.791l-.293-2.032.806-.203.878.745c.659.61 1.538.88 2.783.88 3.587 0 5.784-2.302 5.784-6.974-.074-4.604-2.197-6.906-5.858-6.906m-1.244 11.172c-1.831 0-2.856-.88-2.856-2.505v-3.25c0-1.625 1.025-2.506 2.856-2.506 2.269 0 3.221 1.287 3.221 4.13.073 2.777-.952 4.13-3.221 4.13m-16.765-11.171c-4.685 0-7.175 2.302-7.175 6.974s2.49 6.974 7.029 6.974c3.514 0 5.857-1.354 6.443-3.724.073-.339-.219-.61-.586-.61h-2.196c-.22 0-.439.136-.586.34-.366 1.015-1.464 1.489-3.002 1.489-2.343 0-3.441-1.151-3.587-3.927h10.104c.659-5.146-1.611-7.516-6.444-7.516m-3.441 5.417c.366-2.032 1.465-2.98 3.441-2.98 2.124 0 3.149 1.016 3.149 2.98zm-10.913-4.537-.806.745h-.805l-.293-.948c-.073-.27-.293-.406-.586-.406h-5.345c-.366 0-.586.27-.586.541v1.693c0 .271.293.542.586.542h3.148v7.922h-3.66c-.366 0-.586.27-.586.541v1.693c0 .27.293.542.586.542h11.495c.366 0 .586-.271.586-.542v-1.693c0-.27-.293-.541-.586-.541H91.22v-5.62c0-1.557 1.025-2.37 2.929-2.37h3.148c.366 0 .586-.27.586-.541v-1.896c0-.271-.293-.542-.586-.542h-1.903c-1.245 0-2.343.27-3.076.88M44.95 27.542c0-.948.878-1.76 1.903-1.76h8.932c1.026 0 1.904.812 1.904 1.76v7.718H4
1826.853c-1.025 0-1.904-.812-1.904-1.76zm12.815 7.718h10.91c1.024 0 1.903.813 1.903 1.76v5.96c0 .947-.879 1.76-1.904 1.76h-10.91zM44.95 46.5c0-.948.878-1.76 1.903-1.76h10.91v7.718c0 .948-.88 1.76-1.904 1.76h-9.006c-1.025 0-1.904-.812-1.904-1.76z52:[\"$\",\"$L2f\",\"12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 220 80\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$63\"}]}]}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n53:[\"$\",\"div\",null,{\"className\":\"xl:hidden\",\"children\":[\"$\",\"div\",null,{\"className\":\"group/logo-marquee flex w-full gap-4 overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex shrink-0 gap-4 animate-logo-marquee group-hover/logo-marquee:[animation-play-state:paused] group-focus-within/logo-marquee:[animation-play-state:paused] motion-reduce:animate-none\",\"children\":[[\"$\",\"$L2f\",\"1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$40:props:children:1:props:children:props:children:0:props:children:0:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$48:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$49:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4a:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4b:props:children:0:props:children:props:children\"}],\"$L64\"]}],\"$L65\",\"$L66\",\"$L67\",\"$L68\",\"$L69\",\"$L6a\",\"$L6b\"]}],\"$L6c\"]}]}
182]\n58:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n5b:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n5e:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n60:[\"$\",\"path\",null,{\"d\":\"M118.331 42.417V32.075l3.851-1.14v3.494h3.78v3.637h-3.78c0 1.284-.072 3.352-.072 4.35 0 1.57.928 2.211 1.926 2.211.927 0 1.783-.57 1.783-.57l1.212 3.21s-2.71 1.71-5.42.64c-2.639-1.14-3.28-3.208-3.28-5.49\"}]\n61:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n64:[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n65:[\"$\",\"div\",\"6\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4c:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n66:[\"$\",\"$L2f\",\"7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4d:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n67:[\"$\",\"div\",\"8\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4e:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n68:[\"$\",\"$L2f\",\"9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4f:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n69:[\"$\",\"$L2f\",\"10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$50:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n6a:[\"$\",\"$L2f\",\"11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$51:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n6b:[\"$\",\"$L2f\",\"12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$52:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n6c:[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"flex shrink-0 gap-4 animate-logo-marquee group-hover/logo-marquee:[animation-play-state:paused] group-focus-within/logo-marquee:[animation-play-state:paused] motion-reduce:animate-none\",\"children\":[[\"$\",\"$L2f\",\"dup-1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$40:props:children:1:props:children:props:children:0:props:children:0:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$48:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$49:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4a:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4b:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],\"$L6d\",\"$L6e\",\"$L6f\",\"$L70\",\"$L71\",\"$L72\",\"$L73\"]}]\n6d:[\"$\",\"div\",\"dup-6\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4c:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n6e:[\"$\",\"$L2f\",\"dup-7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4d:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n6f:[\"$\",\"div\",\"dup-8\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4e:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n70:[\"$\",\"$L2f\",\"dup-9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4f:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015
182em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n71:[\"$\",\"$L2f\",\"dup-10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$50:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n72:[\"$\",\"$L2f\",\"dup-11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$51:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n73:[\"$\",\"$L2f\",\"dup-12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$52:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n74:I[947518,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"LayoutShell\"]\n75:I[221341,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\"],\"Header\"]\n77:I[790466,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"AnimatedLogo\"]\n76:T4fd,Building agent apps for real users quickly creates a familiar challenge: authentication is only the first step. Once your app serves multiple teams, workspaces, or customers, you need to control exactly which agents, threads, tools, and data each user can access. Thatâs where fine-grained authorization (FGA) becomes essential, especially for shared and multi-tenant products.\n\nIn this workshop, youâll see how to combine auth and FGA to secure a practical agent app. Youâll identify the user, model permissions around real resources, and enforce access rules so the right people can use the right parts of your app without exposing everything to everyone.\n\nYouâll learn:\n\n* How auth establishes who is signed in\n* How FGA adds resource-level permission checks\n* How to model shared and multi-tenant access across workspaces and customers\n* How to apply those checks to agents, threads, tools, and other app resources\n\nJoin us for a live demo, real code, and Q\u0026A.\n\n***\n\n**Hosted by**\n\n* Alex Booker, Developer Experience, Mastra\n * [https://x.com/bookercodes](https://x.com/bookercodes)\n * [https://www.linkedin.com/in/bookercodes](https://www.linkedin.com/in/bookercodes)\n\n_Recording and code examples will be available to everyone who registers._22:[\"$\",\"$L74\",null,{\"header\":[\"$\",\"$L75\",null,{\"githubStarCount\":\"28.3k\",\"nextWorkshop\":{\"_id\":\"3YuHhCM2aS4wIXM3jJXj6Z\",\"description\":\"$76\",\"duration\":\"60 minutes\",\"eventDate\":\"2026-10-01T16:00:00.000Z\",\"hostReferences\":[{\"_id\":\"106684d2-ab4e-4bdd-862d-c77d1d600cd1\",\"bio\":null,\"company\":\"Mastra\",\"image\":{\"_type\":\"image\",\"asset\":{\"_ref\":\"image-0e801892965c0be62129d38e87ec88466933d2cf-400x400-jpg\",\"_type\":\"reference\"}},\"name\":\"Alex Booker\",\"slug\":{\"_type\":\"slug\",\"current\":\"alex-booker\"},\"website\":\"https://mastra.ai\",\"xHandle\":\"bookercodes\"}],\"image\":{\"_type\":\"image\",\"asset\":{\"_ref\":\"image-55489c6db1ccf1915d0501dd8f4d9c56c78a41ae-720x720-png\",\"_type\":\"reference\"}},\"lumaUrl\":\"https://luma.com/mastra-xy3o\",\"shortDescription\":\"Building agent apps for real users quickly creates a familiar challenge: authentication is only the first step. Once your app serves multiple teams, workspaces, or customers, yo...\",\"slug\":{\"_type\":\"slug\",\"current\":\"build-secure-agents-with-auth-and-fga-2026-10-01\"},\"title\":\"Build Secure Agents with Auth and FGA\"},\"isToday\":false,\"isTomorrow\":false}],\"footer\":[\"$\",\"footer\",null,{\"className\":\"relative isolate z-10 w-full\",\"data-global-footer\":\"\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-30 mx-auto w-[calc(100%-calc(var(--ds-antigrid-gap)*2px))] max-w-[1723px]\",\"children\":[\"$\",\"$L29\",null,{\"variant\":\"inverse-bottom\",\"className\":\"ds-section--stage-shell-inverse-bottom [--ds-section-stage-shell-fill:var(--color-ds-surface-elevation-lg)] [--ds-section-stage-shell-padding:16px] [--ds-section-stage-shell-width:100%] md:[--ds-section-stage-shell-padding:27px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative z-10 rounded-[32px] border-2 border-ds-border-antigrid bg-ds-surface-bg md:h-[680px] md:rounded-[40px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto grid w-full max-w-ds-layout-content-v2 grid-cols-2 gap-x-8 gap-y-12 px-[calc(var(--ds-antigrid-gap)*1px)] py-16 md:h-full md:grid-cols-6 md:grid-rows-[148px_282px_auto] md:gap-x-0 md:gap-y-0 md:px-0 md:py-[91px]\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#top\",\"className\":\"col-span-2 flex w-fit md:col-span-1 md:col-start-1 md:row-start-1 md:pl-ds-antigrid-padding\",\"aria-label\":\"Back to top\",\"children\":[\"$\",\"$L77\",null,{\"playOnHover\":true,\"className\":\"block h-[21px] w-[34px]\"}]}],[\"$\",\"div\",null,{\"className\":\"col-span-2 w-full min-w-0 md:col-span-3 md:col-start-4 md:row-start-1 md:pl-ds-antigrid-padding md:pr-ds-antigrid-padding\",\"children\":\"$L78\"}],[\"$L79\",\"$L7a\",\"$L7b\",\"$L7c\",\"$L7d\",\"$L7e\"],\"$L7f\",\"$L80\"]}]}]}]}],\"$L81\"]}],\"children\":\"$L82\"}]\n83:I[360431,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"SubscribeForm\"]\n84:I[208275,[\"/_next/static/immutable/chunks/27ckhi906u_js.js\",\"/_next/static/immutable/chunks/2_nmhy6ddcc7z.js\",\"/_next/static/immutable/chunks/3wgrhs5tzkd_f.js\",\"/_next/static/immutable/chunks/3j3d8v8nq53p2.js\",\"/_next/static/immutable/chunks/3mvch_c-usue6.js\",\"/_next/static/immutable/chunks/1xk_k1w8lv0r6.js\",\"/_next/static/immutable/chunks/2q41lq0u-2h2d.js\",\"/_next/static/immutable/chunks/2oux9zkscqjey.js\",\"/_next/static/immutable/chunks/0iw0pry_5t_ad.js\",\"/_next/static/immutable/chunks/2yraze2kc2-nv.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterStatus\"]\n78:[\"$\",\"$L83\",null,{\"placeholder\":\"[email protected]\",\"className\":\"!mt-0 w-full min-w-0 md:max-w-[598px]\",\"rowClassName\":\"max-[430px]:flex-col\",\"inputClassName\":\"!min-w-0\",\"buttonClassName\":\"!min-w-0 shrink-0 !px-4 max-[430px]:w-full\",\"horizontal\":true}]\n79:[\"$\",\"nav\",\"Framework\",{\"aria-labelledby\":\"footer-framework\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-framework\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Framework\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Framework-Agents\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/ai-agents\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Agents\"}]}],[\"$\",\"li\",\"Framework-RAG\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/rag-pipeline\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"RAG\"}]}],[\"$\",\"li\",\"Framework-Workflows\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/ai-workflows\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Workflows\"}]}],[\"$\",\"li\",\"Framework-Observability\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/ai-agent-observability\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Observability\"}]}]]}]]}]\n7a:[\"$\",\"nav\",\"Product\",{\"aria-labelledby\":\"footer-product\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-product\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Product-Framework\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/ai-agent-framework\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Framework\"}]}],[\"$\",\"li\",\"Product-Observability\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/platform-observability\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Observability\"}]}],[\"$\",\"li\",\"Product-Studio\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/studio\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Studio\"}]}],[\"$\",\"li\",\"Product-Agent Builder\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/agent-builder\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Agent Builder\"}]}],[\"$\",\"li\",\"Product-Server\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/ai-agent-deployment\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Server\"}]}]]}]]}]\n7b:[\"$\",\"nav\",\"Developers\",{\"aria-labelledby\":\"footer-developers\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-developers\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Developers\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Developers-Docs\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/docs\",\"prefetch\":false,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Docs\"}]}],[\"$\",\"li\",\"Developers-Changelog\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/mastra-ai/mastra/releases\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Changelog (opens in a new tab)\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Changelog\"}]}],[\"$\",\"li\",\"Developers-Templates\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/templates\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Templates\"}]}],[\"$\",\"li\",\"Developers-Course\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/learn\",\"prefetch\":false,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Course\"}]}]]}]]}]\n7c:[\"$\",\"nav\",\"Resources\",{\"aria-labelledby\":\"footer-resources\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-resources\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Resources-Blog\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Blog\"}]}],[\"$\",\"li\",\"Resources-Research\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/research\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Research\"}]}],[\"$\",\"li\",\"Resources-Guides\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/articles\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Guides\"}]}],[\"$\",\"li\",\"Resources-Book · Principles\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/books/principles-of-building-ai-agents\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Book · Principles\"}]}],[\"$\",\"li\",\"Resources-Book · Patterns\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/books/patterns-of-building-ai-agents\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Book · Patterns\"}]}],[\"$\",\"li\",\"Resources-Podcast · Agents Hour\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/podcasts\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Podcast · Agents Hour\"}]}]]}]]}]\n7d:[\"$\",\"nav\",\"Company\",{\"aria-labelledby\":\"footer-company\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-company\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Company\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Company-About\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/about\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"About\"}]}],[\"$\",\"li\",\"Company-Customers\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/customers\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Customers\"}]}],[\"$\",\"li\",\"Company-Careers\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/careers\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Careers\"}]}],[\"$\",\"li\",\"Company-Contact Us\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/contact\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Contact Us\"}]}],[\"$\",\"li\",\"Company-Newsletter\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/newsletter\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Newsletter\"}]}]]}]]}]\n7e:[\"$\",\"nav\",\"Connect\",{\"aria-labelledby\":\"footer-connect\",\"className\":\"flex min-w-0 flex-col md:row-start-2 md:w-full md:pl-ds-antigrid-padding\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"footer-connect\",\"className\":\"flex h-9 min-h-7 items-start text-[15.172px] font-medium leading-normal text-ds-main-white\",\"children\":\"Connect\"}],[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",\"Connect-Contact Us\",{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/contact\",\"prefetch\":true,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Contact Us\"}]}],[\"$\",\"li\",\"Connect-GitHub\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/mastra-ai/mastra\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"GitHub (opens in a new tab)\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"Connect-Discord\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://discord.gg/mastra-ai\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Discord (opens in a new tab)\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Discord\"}]}],[\"$\",\"li\",\"Connect-YouTube\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/@mastra-ai\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"YouTube (opens in a new tab)\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"YouTube\"}]}],[\"$\",\"li\",\"Connect-X (Twitter)\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://x.com/@mastra\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"X (Twitter) (opens in a new tab)\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"X (Twitter)\"}]}]]}]]}]\n7f:[\"$\",\"nav\",null,{\"aria-label\":\"Trust and platform status\",\"className\":\"col-span-2 flex flex-col md:col-span-2 md:col-start-1 md:row-start-3 md:pl-ds-antigrid-padding\",\"children\":[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-col p-0\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"https://trust.mastra.ai\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex h-[34px] items-center gap-3.5 font-mono text-[12.5px] uppercase leading-3 text-ds-special-gray transition-colors hover:text-ds-main-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex size-3.5 items-center justify-center rounded-full bg-ds-surface-hover\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"span\",null,{\"className\":\"block size-1.5 rounded-full bg-ds-main-gray\"}]}],[\"$\",\"span\",null,{\"children\":\"Security\"}]]}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L84\",null,{}]}]]}]}]\n80:[\"$\",\"nav\",null,{\"aria-label\":\"Legal\",\"className\":\"col-span-2 flex flex-col md:col-span-3 md:col-start-4 md:row-start-3 md:justify-self-end md:pr-ds-antigrid-padding\",\"children\":[\"$\",\"ul\",null,{\"className\":\"m-0 flex list-none flex-row flex-wrap items-center gap-x-6 p-0\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/privacy-policy\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Privacy\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/terms-of-service\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"Terms\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/legal/dpa\",\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"DPA\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/llms.txt\",\"prefetch\":false,\"className\":\"flex h-[34px] min-h-7 items-center text-[15.172px] leading-[16.183px] text-ds-main-gray transition-colors hover:text-ds-main-white focus-visible:text-ds-main-white\",\"children\":\"llms.txt\"}]}]]}]}]\
182n81:[\"$\",\"div\",null,{\"className\":\"relative z-20 -mt-px h-[calc(var(--ds-antigrid-gap)*1px_+_1px)] w-full bg-ds-surface-elevation-lg\",\"data-footer-band\":\"\",\"aria-hidden\":\"true\"}]\n82:[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"className\":\"orbitron_377253dd-module__UDnGAq__variable bg-black text-ds-main-white\",\"style\":{\"fontFamily\":\"var(--orbitron)\",\"--font-mono\":\"var(--orbitron)\",\"--ds-lip-clearance\":\"calc(var(--ds-lip-clearance-base) * 2)\"},\"children\":[[\"$\",\"section\",null,{\"className\":\"relative h-[calc(100svh-var(--ds-nav-height))] w-full overflow-hidden bg-ds-surface-antigrid\",\"children\":[[\"$\",\"section\",null,{\"aria-label\":\"404 recovery game (optional)\",\"className\":\"absolute inset-0 z-0\",\"children\":[\"$\",\"$L5\",null,{}]}],[\"$\",\"$L6\",null,{\"title\":[\"$\",\"h1\",null,{\"className\":\"pt-[3em] font-sans text-balance text-headline-lg font-medium tracking-[-0.03em] text-ds-main-white drop-shadow-[0_8px_40px_rgba(0,0,0,0.9)] sm:pt-0 sm:text-headline-xl lg:text-headline-2xl\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-orange\",\"children\":\"404 Route not found\"}],\",\",[\"$\",\"br\",null,{}],\"but your agent kept running.\"]}],\"description\":[\"$\",\"p\",null,{\"className\":\"mx-auto mt-3 max-w-2xl text-balance font-sans text-body-sm leading-7 text-ds-main-gray drop-shadow-[0_4px_24px_rgba(0,0,0,0.9)] sm:text-body\",\"children\":\"Help it complete the workflow and avoid an error trace.\"}]}]]}],\"$L85\"]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3l-4jj81zpd-v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3gb0tb3v514tx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n85:[\"$\",\"div\",null,{\"id\":\"useful-404\",\"className\":\"flex flex-col\",\"style\":{\"fontFamily\":\"var(--font-sans)\",\"--font-mono\":\"var(--commit-mono)\"},\"children\":[[\"$\",\"$L3e\",null,{\"candidates\":[{\"href\":\"/about\",\"label\":\"About Mastra\",\"kind\":\"page\",\"tokens\":[\"about\",\"mastra\"]},{\"href\":\"/pricing\",\"label\":\"Pricing\",\"kind\":\"page\",\"tokens\":[\"pricing\"]},{\"href\":\"/customers\",\"label\":\"Customers\",\"kind\":\"page\",\"tokens\":[\"customers\"]},{\"href\":\"/templates\",\"label\":\"Templates\",\"kind\":\"page\",\"tokens\":[\"templates\"]},{\"href\":\"/blog\",\"label\":\"Blog\",\"kind\":\"page\",\"tokens\":[\"blog\"]},{\"href\":\"/ai-agents\",\"label\":\"AI Agents\",\"kind\":\"page\",\"tokens\":[\"agents\"]},{\"href\":\"/ai-workflows\",\"label\":\"AI Workflows\",\"kind\":\"page\",\"tokens\":[\"workflows\"]},{\"href\":\"/studio\",\"label\":\"Mastra Studio\",\"kind\":\"page\",\"tokens\":[\"studio\",\"mastra\"]},{\"href\":\"/agent-builder\",\"label\":\"Agent Builder\",\"kind\":\"page\",\"tokens\":[\"agent\",\"builder\"]},{\"href\":\"/ai-agent-observability\",\"label\":\"Agent Observability\",\"kind\":\"page\",\"tokens\":[\"agent\",\"observability\"]},{\"href\":\"/factory\",\"label\":\"Mastra Factory\",\"kind\":\"page\",\"tokens\":[\"factory\",\"mastra\"]},{\"href\":\"/docs\",\"label\":\"Docs\",\"kind\":\"page\",\"tokens\":[\"docs\"]},{\"href\":\"/blog/agent-memory-guide\",\"label\":\"Using Mastra's Agent Memory API\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"memory\",\"guide\",\"using\",\"mastra\",\"api\"]},{\"href\":\"/blog/agent-memory-layers\",\"label\":\"AI Agent Memory: Persistence, Layers, and Tradeoffs\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"memory\",\"layers\",\"persistence\",\"and\",\"tradeoffs\"]},{\"href\":\"/blog/agent-network\",\"label\":\"The evolution of AgentNetwork\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"network\",\"the\",\"evolution\"]},{\"href\":\"/blog/agent-prototype-playbook\",\"label\":\"The Agent Prototype Playbook\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"prototype\",\"playbook\",\"the\"]},{\"href\":\"/blog/agent-studio\",\"label\":\"Introducing Mastraâs Agent Studio\",\"kind\":\"blog\",\"tokens\":[\"agent\",\"studio\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/ai-beats-lab\",\"label\":\"AI Beats Laboratory: A Multi-Agent Music Generation System\",\"kind\":\"blog\",\"tokens\":[\"beats\",\"lab\",\"laboratory\",\"multi\",\"agent\",\"music\",\"generation\",\"system\"]},{\"href\":\"/blog/ai-engineering-javascript\",\"label\":\"AI with JavaScript in 2025\",\"kind\":\"blog\",\"tokens\":[\"engineering\",\"javascript\",\"with\",\"java\",\"script\",\"2025\"]},{\"href\":\"/blog/ai-engineering\",\"label\":\"AI engineering, two years later\",\"kind\":\"blog\",\"tokens\":[\"engineering\",\"two\",\"years\",\"later\"]},{\"href\":\"/blog/ai-ops\",\"label\":\"Baby steps towards AI Ops\",\"kind\":\"blog\",\"tokens\":[\"ops\",\"baby\",\"steps\",\"towards\"]},{\"href\":\"/blog/ai-prompting-techniques\",\"label\":\"AI prompting techniques\",\"kind\":\"blog\",\"tokens\":[\"prompting\",\"techniques\"]},{\"href\":\"/blog/ai-sdk-v7-support\",\"label\":\"AI SDK v7 supp
182ort in Mastra\",\"kind\":\"blog\",\"tokens\":[\"sdk\",\"support\",\"mastra\"]},{\"href\":\"/blog/aitracing\",\"label\":\"Mastra now supports AI Tracing\",\"kind\":\"blog\",\"tokens\":[\"aitracing\",\"mastra\",\"now\",\"supports\",\"tracing\"]},{\"href\":\"/blog/aiuidojo\",\"label\":\"Mastra UI Dojo: Choose your frontend\",\"kind\":\"blog\",\"tokens\":[\"aiuidojo\",\"mastra\",\"dojo\",\"choose\",\"your\",\"frontend\"]},{\"href\":\"/blog/anatomy-of-a-coding-agent\",\"label\":\"Anatomy of a harness: building a coding agent that can run for hours\",\"kind\":\"blog\",\"tokens\":[\"anatomy\",\"coding\",\"agent\",\"harness\",\"building\",\"that\",\"can\",\"run\",\"for\",\"hours\"]},{\"href\":\"/blog/announcing-agent-builder\",\"label\":\"Announcing Agent Builder\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"builder\"]},{\"href\":\"/blog/announcing-agent-harness\",\"label\":\"Announcing Mastra Harness\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"harness\",\"mastra\"]},{\"href\":\"/blog/announcing-agent-signals\",\"label\":\"Announcing Agent Signals\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"agent\",\"signals\"]},{\"href\":\"/blog/announcing-mastra-1\",\"label\":\"Announcing Mastra 1.0!\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\"]},{\"href\":\"/blog/announcing-mastra-code\",\"label\":\"Announcing Mastra Code: A coding agent that never compacts\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"code\",\"coding\",\"agent\",\"that\",\"never\",\"compacts\"]},{\"href\":\"/blog/announcing-mastra-factory-beta\",\"label\":\"Announcing Mastra Factory Beta\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"factory\",\"beta\"]},{\"href\":\"/blog/announcing-mastra-factory\",\"label\":\"Announcing Mastra Factory\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"factory\"]},{\"href\":\"/blog/announcing-mastra-observability\",\"label\":\"Announcing Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"observability\"]},{\"href\":\"/blog/announcing-mastra-platform\",\"label\":\"Announcing Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"mastra\",\"platform\"]},{\"href\":\"/blog/announcing-trace-intelligence\",\"label\":\"Announcing Trace Intelligence\",\"kind\":\"blog\",\"tokens\":[\"announcing\",\"trace\",\"intelligence\"]},{\"href\":\"/blog/apache-license\",\"label\":\"Mastra is now Apache 2.0 licensed!\",\"kind\":\"blog\",\"tokens\":[\"apache\",\"license\",\"mastra\",\"now\",\"licensed\"]},{\"href\":\"/blog/api-endpoints\",\"label\":\"Every API needs a natural language endpoint\",\"kind\":\"blog\",\"tokens\":[\"api\",\"endpoints\",\"every\",\"needs\",\"natural\",\"language\",\"endpoint\"]},{\"href\":\"/blog/automating-multi-language-pr-descriptions-in-github-actions\",\"label\":\"Automating multi-language PR descriptions in GitHub Actions\",\"kind\":\"blog\",\"tokens\":[\"automating\",\"multi\",\"language\",\"descriptions\",\"github\",\"actions\",\"git\",\"hub\"]},{\"href\":\"/blog/best-ai-agent-browser-platforms\",\"label\":\"The 6 Best AI Agent Browser Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"browser\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-email-providers\",\"label\":\"The 8 Best AI Agent Email Providers (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"email\",\"providers\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-frameworks\",\"label\":\"The 6 Best AI Agent Frameworks (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"frameworks\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-integration-platforms\",\"label\":\"The 11 Best AI Agent Integration Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"integration\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-agent-web-data-platforms\",\"label\":\"The 6 Best AI Agent Web Data Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"kind\":\"blog\",\"tokens\":[\"best\",\"agent\",\"web\",\"data\",\"platforms\",\"the\",\"july\",\"2026\",\"features\",\"tradeoffs\",\"and\",\"use\",\"cases\"]},{\"href\":\"/blog/best-ai-workflow-automation-tools-2026\",\"label\":\"7 Best AI Workflow Automation Tools in 2026\",\"kind\":\"blog\",\"tokens\":[\"best\",\"workflow\",\"automation\",\"tools\",\"2026\"]},{\"href\":\"/blog/best-personal-ai-assistants-in-2026\",\"label\":\"The Best AI Personal Assistants of 2026\",\"kind\":\"blog\",\"tokens\":[\"best\",\"personal\",\"assistants\",\"2026\",\"the\"]},{\"href\":\"/blog/beta-launch\",\"label\":\"Mastra is moving into beta\",\"kind\":\"blog\",\"tokens\":[\"beta\",\"launch\",\"mastra\",\"moving\",\"
182into\"]},{\"href\":\"/blog/build-a-research-coordinator-with-supervisor-agents\",\"label\":\"Build a research coordinator with supervisor agents\",\"kind\":\"blog\",\"tokens\":[\"build\",\"research\",\"coordinator\",\"with\",\"supervisor\",\"agents\"]},{\"href\":\"/blog/build-agents-mastra-mongodb\",\"label\":\"Build Agents with Retrieval and Long-Term Memory Using Mastra and MongoDB\",\"kind\":\"blog\",\"tokens\":[\"build\",\"agents\",\"mastra\",\"mongodb\",\"with\",\"retrieval\",\"and\",\"long\",\"term\",\"memory\",\"using\",\"mongo\"]},{\"href\":\"/blog/build-claude-code-for-x-with-agentcontroller\",\"label\":\"Build Claude Code for X with Agent Controller\",\"kind\":\"blog\",\"tokens\":[\"build\",\"claude\",\"code\",\"for\",\"with\",\"agentcontroller\",\"agent\",\"controller\"]},{\"href\":\"/blog/build-rag-agent-mastra-elasticsearch\",\"label\":\"Build a RAG agent with Mastra and Elasticsearch\",\"kind\":\"blog\",\"tokens\":[\"build\",\"rag\",\"agent\",\"mastra\",\"elasticsearch\",\"with\",\"and\"]},{\"href\":\"/blog/build-your-first-agent-course\",\"label\":\"Introducing Our New Course: Build Your First Agent in TypeScript\",\"kind\":\"blog\",\"tokens\":[\"build\",\"your\",\"first\",\"agent\",\"course\",\"introducing\",\"our\",\"new\",\"type\",\"script\"]},{\"href\":\"/blog/building-a-code-review-bot\",\"label\":\"Building a code review bot\",\"kind\":\"blog\",\"tokens\":[\"building\",\"code\",\"review\",\"bot\"]},{\"href\":\"/blog/building-a-coding-agent\",\"label\":\"Building a coding agent\",\"kind\":\"blog\",\"tokens\":[\"building\",\"coding\",\"agent\"]},{\"href\":\"/blog/building-a-dev-assistant\",\"label\":\"Building a dev assistant\",\"kind\":\"blog\",\"tokens\":[\"building\",\"dev\",\"assistant\"]},{\"href\":\"/blog/building-a-docs-manager\",\"label\":\"Building a docs manager\",\"kind\":\"blog\",\"tokens\":[\"building\",\"docs\",\"manager\"]},{\"href\":\"/blog/building-a-notes-mcp-server\",\"label\":\"Building a notes MCP server\",\"kind\":\"blog\",\"tokens\":[\"building\",\"notes\",\"mcp\",\"server\"]},{\"href\":\"/blog/building-a-research-paper-assistant-with-rag\",\"label\":\"Building a research paper assistant with RAG\",\"kind\":\"blog\",\"tokens\":[\"building\",\"research\",\"paper\",\"assistant\",\"with\",\"rag\"]},{\"href\":\"/blog/building-a-signal-provider\",\"label\":\"Building a signal provider\",\"kind\":\"blog\",\"tokens\":[\"building\",\"signal\",\"provider\"]},{\"href\":\"/blog/building-an-ai-recruiter\",\"label\":\"Building an AI recruiter\",\"kind\":\"blog\",\"tokens\":[\"building\",\"recruiter\"]},{\"href\":\"/blog/building-fast-reliable-input-processors\",\"label\":\"Building low-latency guardrails to secure your agents\",\"kind\":\"blog\",\"tokens\":[\"building\",\"fast\",\"reliable\",\"input\",\"processors\",\"low\",\"latency\",\"guardrails\",\"secure\",\"your\",\"agents\"]},{\"href\":\"/blog/building-low-latency-agents\",\"label\":\"Building Low-Latency Agents That Help Humans Respond on Live Calls\",\"kind\":\"blog\",\"tokens\":[\"building\",\"low\",\"latency\",\"agents\",\"that\",\"help\",\"humans\",\"respond\",\"live\",\"calls\"]},{\"href\":\"/blog/building-multi-user-multi-channel-agents\",\"label\":\"The Rise of Multi-User, Multi-Channel Agents\",\"kind\":\"blog\",\"tokens\":[\"building\",\"multi\",\"user\",\"channel\",\"agents\",\"the\",\"rise\"]},{\"href\":\"/blog/building-workflows\",\"label\":\"Building workflows with Mastra\",\"kind\":\"blog\",\"tokens\":[\"building\",\"workflows\",\"with\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-10\",\"label\":\"Mastra Changelog 2025-01-10\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-17\",\"label\":\"Mastra Changelog 2025-01-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-24\",\"label\":\"Mastra Changelog 2025-01-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-01-31\",\"label\":\"Mastra Changelog 2025-01-31\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-02-10\",\"label\":\"Mastra Changelog 2025-02-10\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-04\",\"label\":\"Mastra Changelog 2025-03-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-14\",\"label\":\"Mastra Changelog 2025-03-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-20\",\"label\":\"Mastra Changelog 2025-03-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-03-27\",\"label\":\"Mastra Changelog 2025-03-27\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-02\",\"label\":\"Mastra Changelog 2025-04-02\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-16\",\"label\":\"Mastra Changelog 2025-04-16\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-04-24\",\"label\":\"Mastra Changelog 2025-04-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]}
182,{\"href\":\"/blog/changelog-2025-05-01\",\"label\":\"Mastra Changelog 2025-05-01\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-07\",\"label\":\"Mastra Changelog 2025-05-07\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-15\",\"label\":\"Mastra Changelog 2025-05-15\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-05-29\",\"label\":\"Mastra Changelog 2025-05-29\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-06\",\"label\":\"Mastra Changelog 2025-06-06\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-13\",\"label\":\"Mastra Changelog 2025-06-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-24\",\"label\":\"Mastra Changelog 2025-06-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-06-27\",\"label\":\"Mastra Changelog 2025-06-27\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-03\",\"label\":\"Mastra Changelog 2025-07-03\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-09\",\"label\":\"Mastra Changelog 2025-07-09\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-17\",\"label\":\"Mastra Changelog 2025-07-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-24\",\"label\":\"Mastra Changelog 2025-07-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-07-30\",\"label\":\"Mastra Changelog 2025-07-30\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-08\",\"label\":\"Mastra Changelog 2025-08-08\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-14\",\"label\":\"Mastra Changelog 2025-08-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-08-21\",\"label\":\"Mastra Changelog 2025-08-21\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-08\",\"label\":\"Mastra Changelog 2025-09-08\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-18\",\"label\":\"Mastra Changelog 2025-09-18\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-09-25\",\"label\":\"Mastra Changelog 2025-09-25\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-10-03\",\"label\":\"Mastra Changelog 2025-10-03\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-10-23\",\"label\":\"Mastra Changelog 2025-10-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-01\",\"label\":\"Mastra Changelog 2025-11-01\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-14\",\"label\":\"Mastra Changelog 2025-11-14\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2025-11-20\",\"label\":\"Mastra Changelog 2025-11-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2025\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-01-20\",\"label\":\"Mastra Changelog 2026-01-20\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-01-30\",\"label\":\"Mastra Changelog 2026-01-30\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-011\",\"label\":\"Mastra Changelog 2026-02-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"011\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-04\",\"label\":\"Mastra Changelog 2026-02-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-11\",\"label\":\"Mastra Changelog 2026-02-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-13\",\"label\":\"Mastra Changelog 2026-02-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-19\",\"label\":\"Mastra Changelog 2026-02-19\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-23\",\"label\":\"Mastra Changelog 2026-02-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-24\",\"label\":\"Mastra Changelog 2026-02-24\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-02-26\",\"label\":\"Mastra Changelog 2026-02-26\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-04\",\"label\":\"Mastra Changelog 2026-03-04\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-05\",\"label\":\"Mastra Changelog 2026-03-05\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-12\",\"label\":\"Mastra Changelog 2026-03-12\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-13\",\"label\":\"Mastra Changelog 2026-03-13\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-16\",\"label\":\"Mastra Changelog 2026-03-11\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-17\",\"label\":\"Mastra Changelog 2026-03-17\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/changelog-2026-03-23\",\"label\":\"Mastra Changelog 2026-03-23\",\"kind\":\"blog\",\"tokens\":[\"changelog\",\"2026\",\"mastra\"]},{\"href\":\"/blog/choosing-a-js-agent-framework\",\"label\":\"Choosing a JavaScript Agent Framework\",\"kind\":\"blog\",\"tokens\":[\"choosing\",\"agent\",\"framework\",\"java\",\"script\"]},{\"href\":\"/blog/composite-storage-with-mastra-storage\",\"label\":\"Composite Storage: Optimize for Performance, Scale, and Cost with MastraCompositeStore\",\"kind\":\"blog\",\"tokens\":[\"composite\",\"storage\",\"with\",\"mastra\",\"optimize\",\"for\",\"performance\",\"scale\",\"and\",\"cost\",\"store\"]},{\"href\":\"/blog/copilotkitmastra\",\"label\":\"Building agentic copilots with CopilotKit and Mastra\",\"kind\":\"blog\",\"tokens\":[\"copilotkitmastra\",\"building\",\"agentic\",\"copilots\",\"with\",\"copilot\",\"kit\",\"and\",\"mastra\"]},{\"href\":\"/blog/deployment-models\",\"label\":\"Choosing the Right Deployment Model for Your Mastra Application\",\"kind\":\"blog\",\"tokens\":[\"deployment\",\"models\",\"choosing\",\"the\",\"right\",\"model\",\"for\",\"your\",\"mastra\",\"application\"]},{\"href\":\"/blog/dynamic-agents\",\"label\":\"Dynamic Agents: Inserting Runtime Context in Mastra\",\"kind\":\"blog\",\"tokens\":[\"dynamic\",\"agents\",\"inserting\",\"runtime\",\"context\",\"mastra\"]},{\"href\":\"/blog/flash-genius\",\"label\":\"FlashGenius: instantly generate flashcards on any topic\",\"kind\":\"blog\",\"tokens\":[\"flash\",\"genius\",\"instantly\",\"generate\",\"flashcards\",\"any\",\"topic\"]},{\"href\":\"/blog/fullstack-typescript-agents-with-mastra-and-copilotkit\",\"label\":\"Full-Stack TypeScript Agents with Mastra and Copilot Kit\",\"kind\":\"blog\",\"tokens\":[\"fullstack\",\"typescript\",\"agents\",\"with\",\"mastra\",\"and\",\"copilotkit\",\"full\",\"stack\",\"type\",\"script\",\"copilot\",\"kit\"]},{\"href\":\"/blog/giving-agents-a-voice\",\"label\":\"Giving Agents a Voice\",\"kind\":\"blog\",\"tokens\":[\"giving\",\"agents\",\"voice\"]},{\"href\":\"/blog/hackathon-winners-community-templates\",\"label\":\"MASTRA.BUILD Templates Hackathon Winners \u0026 Community Templates Library\",\"kind\":\"blog\",\"tokens\":[\"hackathon\",\"winners\",\"community\",\"templates\",\"mastra\",\"build\",\"library\"]},{\"href\":\"/blog/hitl-where-to-put-approval-in-agents-and-workflows\",\"label\":\"Human-in-the-Loop: Where to Put Approval in Agents and Workflows\",\"kind\":\"blog\",\"tokens\":[\"hitl\",\"where\",\"put\",\"approval\",\"agents\",\"and\",\"workflows\",\"human\",\"the\",\"loop\"]}
182,{\"href\":\"/blog/how-to-structure-projects-for-ai-agents-and-llms\",\"label\":\"How to Structure Projects for AI Agents and LLMs\",\"kind\":\"blog\",\"tokens\":[\"how\",\"structure\",\"projects\",\"for\",\"agents\",\"and\",\"llms\"]},{\"href\":\"/blog/human-in-the-loop-when-to-use-agent-approval\",\"label\":\"Human-in-the-Loop: When to Use Agent Approval\",\"kind\":\"blog\",\"tokens\":[\"human\",\"the\",\"loop\",\"when\",\"use\",\"agent\",\"approval\"]},{\"href\":\"/blog/introducing-agent-client-protocol\",\"label\":\"Introducing Agent Client Protocol Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"client\",\"protocol\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-agent-editor\",\"label\":\"Introducing Agent Editor\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"editor\"]},{\"href\":\"/blog/introducing-agent-to-agent-support\",\"label\":\"Introducing Agent-to-Agent support for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"agent\",\"support\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-auto-deployment-platform\",\"label\":\"Introducing auto-deployment in Mastra platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"auto\",\"deployment\",\"platform\",\"mastra\"]},{\"href\":\"/blog/introducing-background-tasks\",\"label\":\"Introducing Background Tasks for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"background\",\"tasks\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-browser-recording\",\"label\":\"Introducing Browser Recording for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"browser\",\"recording\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-browser-support\",\"label\":\"Introducing Browser Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"browser\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-built-in-tools\",\"label\":\"Introducing Built-in Tools for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"built\",\"tools\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-channels\",\"label\":\"Introducing Channels for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"channels\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-clickhouse-support\",\"label\":\"Introducing ClickHouse Support for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"clickhouse\",\"support\",\"click\",\"house\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-cloneable-scorers\",\"label\":\"Introducing Cloneable Scorers\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"cloneable\",\"scorers\"]},{\"href\":\"/blog/introducing-code-mode\",\"label\":\"Introducing Code Mode for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"code\",\"mode\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-create-coding-agent-helper\",\"label\":\"Introducing Coding Agent Helper for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"create\",\"coding\",\"agent\",\"helper\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-custom-signal-providers\",\"label\":\"Introducing Custom Signal Providers for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"custom\",\"signal\",\"providers\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-datasets\",\"label\":\"Introducing Datasets in Mastra Studio\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"datasets\",\"mastra\",\"studio\"]},{\"href\":\"/blog/introducing-deployable-templates\",\"label\":\"Introducing deployable templates in Mastra platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"deployable\",\"templates\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-docs-chatbot\",\"label\":\"Introducing Mastra Docs Chatbot: Your AI Documentation Assistant\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"docs\",\"chatbot\",\"mastra\",\"your\",\"documentation\",\"assistant\"]},{\"href\":\"/blog/introducing-durable-agents\",\"label\":\"Introducing Durable Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"durable\",\"agents\"]},{\"href\":\"/blog/introducing-dynamic-workflows\",\"label\":\"Introducing Dynamic Workflows for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"dynamic\",\"workflows\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-environments-for-mastra-platform\",\"label\":\"Introducing Environments for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"environments\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-ephemeral-sandbox-deploys\",\"label\":\"Introducing Ephemeral Sandbox Deployments for Mastra Server and Studio\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"ephemeral\",\"sandbox\",\"deploys\",\"deployments\",\"for\",\"mastra\",\"server\",\"and\",\"studio\"]},{\"href\":\"/blog/introducing-error-diagnostics-platform-cli\",\"label\":\"Introducing Error Diagnosis for Mastra Platform and CLI\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"error\",\"diagnostics\",\"platform\",\"cli\",\"diagnosis\",\"for\",\"mastra\",\"and\"]},{\"href\":\"/blog/introducing-eu-us-regions-for-mastra-platform\",\"label\":\"Introducing EU \u0026 US Regions for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"regi
182ons\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-experiment-lifecycle-hooks\",\"label\":\"Introducing Experiment Lifecycle Hooks\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"lifecycle\",\"hooks\"]},{\"href\":\"/blog/introducing-experiment-targets\",\"label\":\"Introducing Experiment Targets\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"targets\"]},{\"href\":\"/blog/introducing-experiment-tool-mocks\",\"label\":\"Introducing Experiment Tool Mocks\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"experiment\",\"tool\",\"mocks\"]},{\"href\":\"/blog/introducing-feedback-and-feedback-analytics\",\"label\":\"Introducing Agent Feedback and Feedback Analytics\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"feedback\",\"and\",\"analytics\",\"agent\"]},{\"href\":\"/blog/introducing-file-based-agents\",\"label\":\"Introducing File-Based Agents for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"file\",\"based\",\"agents\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-filesystem-mounts\",\"label\":\"Introducing Filesystem Mounts for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"mounts\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-filesystem-search\",\"label\":\"Introducing Filesystem Search for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"search\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-filesystem-skills\",\"label\":\"Introducing Filesystem Skills for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"filesystem\",\"skills\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-fine-grained-authorization\",\"label\":\"Introducing Fine-Grained Authorization for Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"fine\",\"grained\",\"authorization\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-first-class-skills\",\"label\":\"Introducing First-Class Skills for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"first\",\"class\",\"skills\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-gates-and-verdicts\",\"label\":\"Introducing Gates and Verdicts for Mastra Evals\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"gates\",\"and\",\"verdicts\",\"for\",\"mastra\",\"evals\"]},{\"href\":\"/blog/introducing-goals\",\"label\":\"Introducing Goals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"goals\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-harness-channels\",\"label\":\"Introducing Harness Channels\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"harness\",\"channels\"]},{\"href\":\"/blog/introducing-http-feedback-api\",\"label\":\"Introducing the Feedback API Endpoint for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"http\",\"feedback\",\"api\",\"the\",\"endpoint\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-imessage-support\",\"label\":\"Introducing iMessage Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"imessage\",\"support\",\"message\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-incident-alerts\",\"label\":\"Introducing Incident Alerts for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"incident\",\"alerts\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-managed-databases\",\"label\":\"Introducing Managed Databases for Mastra Projects\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"managed\",\"databases\",\"for\",\"mastra\",\"projects\"]},{\"href\":\"/blog/introducing-managed-sandboxes-and-filesystems-for-mastra-platform\",\"label\":\"Introducing Managed Sandboxes and Filesystems for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"managed\",\"sandboxes\",\"and\",\"filesystems\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-mastra-evals\",\"label\":\"Introducing Evals in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"evals\"]},{\"href\":\"/blog/introducing-mastra-helm-chart\",\"label\":\"Introducing the Mastra Helm Chart for Self-Hosted Deployments\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"helm\",\"chart\",\"the\",\"for\",\"self\",\"hosted\",\"deployments\"]},{\"href\":\"/blog/introducing-mastra-improved-agent-orchestration-ai-sdk-v5-support\",\"label\":\"Introducing Mastra's improved agent orchestration with AI SDK v5 support\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"improved\",\"agent\",\"orchestration\",\"sdk\",\"support\",\"with\"]},{\"href\":\"/blog/introducing-mastra-mcp\",\"label\":\"Introducing Mastra MCP Documentation Server\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"mcp\",\"documentation\",\"server\"]},{\"href\":\"/blog/introducing-mastra-skills\",\"label\":\"Introducing Mastra Skills\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"skills\"]}
182,{\"href\":\"/blog/introducing-mastra-workspaces\",\"label\":\"Introducing Workspaces: Safe, Controlled Environments for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastra\",\"workspaces\",\"safe\",\"controlled\",\"environments\",\"for\",\"agents\"]},{\"href\":\"/blog/introducing-mastras-event-system\",\"label\":\"Publish and Subscribe with Mastra's Built-In Event System\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mastras\",\"event\",\"system\",\"publish\",\"and\",\"subscribe\",\"with\",\"mastra\",\"built\"]},{\"href\":\"/blog/introducing-mcp-support\",\"label\":\"Introducing MCP Server Support in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"mcp\",\"support\",\"server\",\"mastra\"]},{\"href\":\"/blog/introducing-memory-extractors\",\"label\":\"Introducing Memory Extractors for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"memory\",\"extractors\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-multi-turn-evals\",\"label\":\"Introducing Multi-turn Evals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"multi\",\"turn\",\"evals\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-notification-inbox\",\"label\":\"Your Mastra Agent Now Has an Inbox With Priority Notifications\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"notification\",\"inbox\",\"your\",\"mastra\",\"agent\",\"now\",\"has\",\"with\",\"priority\",\"notifications\"]},{\"href\":\"/blog/introducing-output-processors\",\"label\":\"Introducing Output Processors\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"output\",\"processors\"]},{\"href\":\"/blog/introducing-remote-filesystems\",\"label\":\"Introducing Remote Filesystems for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"remote\",\"filesystems\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/introducing-remote-sandboxes\",\"label\":\"Safely Execute Untrusted Code with Remote Sandboxes\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"remote\",\"sandboxes\",\"safely\",\"execute\",\"untrusted\",\"code\",\"with\"]},{\"href\":\"/blog/introducing-response-caching\",\"label\":\"Introducing Response Caching for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"response\",\"caching\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-rubric-scorers-for-mastra-agents\",\"label\":\"Introducing Rubric Scorers for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"rubric\",\"scorers\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-sandbox-computer-use\",\"label\":\"Introducing Sandbox Computer Use for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sandbox\",\"computer\",\"use\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-sandbox-lifecycle-controls\",\"label\":\"Introducing Sandbox Lifecycle Controls in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sandbox\",\"lifecycle\",\"controls\",\"mastra\"]},{\"href\":\"/blog/introducing-schedules-for-agents-and-workflows\",\"label\":\"Introducing Schedules for Mastra Agents and Workflows\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"schedules\",\"for\",\"agents\",\"and\",\"workflows\",\"mastra\"]},{\"href\":\"/blog/introducing-sdk-subagents\",\"label\":\"Introducing Claude Code, Cursor, and Codex agents in Mastra\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sdk\",\"subagents\",\"claude\",\"code\",\"cursor\",\"and\",\"codex\",\"agents\",\"mastra\"]},{\"href\":\"/blog/introducing-sensitive-data-redaction\",\"label\":\"Introducing Sensitive Data Redaction for Mastra Observability\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"sensitive\",\"data\",\"redaction\",\"for\",\"mastra\",\"observability\"]},{\"href\":\"/blog/introducing-server-health-for-mastra-platform\",\"label\":\"Introducing Server Health for Mastra Platform\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"server\",\"health\",\"for\",\"mastra\",\"platform\"]},{\"href\":\"/blog/introducing-skill-search-processor\",\"label\":\"Introducing Skill Search for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"skill\",\"search\",\"processor\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-studio-auth\",\"label\":\"Introducing Studio Auth: Secure, Team-Friendly Access for Deployed Mastra Studios\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"studio\",\"auth\",\"secure\",\"team\",\"friendly\",\"access\",\"for\",\"deployed\",\"mastra\",\"studios\"]},{\"href\":\"/blog/introducing-studio-metrics\",\"label\":\"Introducing Metrics and Logs\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"studio\",\"metrics\",\"and\",\"logs\"]},{\"href\":\"/blog/introducing-task-lists\",\"label\":\"Introducing Task Lists for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"task\",\"lists\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-temporal-workflows\",\"label\":\"Introducing Temporal Support for Mastra Workflows\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"temporal\",\"workflows\",\"support\",\"for\",\"mastra\"]},{\"href\":\"/blog/introducing-token-cost-control\",\"label\":\"Introducing Token Cost Control for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"token\",\"cost\",\"control\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-token-limiting\",\"label\":\"Introducing Token Limiting for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"token\",\"limiting\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-tool-hooks\",\"label\":\"Introducing Tool Hooks for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"tool\",\"hooks\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-tool-search-processor\",\"label\":\"Introducing Tool Search for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"tool\",\"search\",\"processor\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/introducing-vitest-integration\",\"label\":\"Introducing Vitest Integration for Testing\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"vitest\",\"integration\",\"for\",\"testing\"]},{\"href\":\"/blog/introducing-webhook-signal-provider\",\"label\":\"Introducing Webhook Signals for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"introducing\",\"webhook\",\"signal\",\"provider\",\"signals\",\"for\",\"mastra\",\"agents\"]}
182,{\"href\":\"/blog/lsp-inspection-for-mastra-workspaces\",\"label\":\"LSP Inspection for Mastra Workspaces\",\"kind\":\"blog\",\"tokens\":[\"lsp\",\"inspection\",\"for\",\"mastra\",\"workspaces\"]},{\"href\":\"/blog/mastra-0.10\",\"label\":\"Announcing Mastra 0.10\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"announcing\"]},{\"href\":\"/blog/mastra-101\",\"label\":\"Introducing Mastra 101: The experimental course led by MCP, right in your IDE\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"101\",\"introducing\",\"the\",\"experimental\",\"course\",\"led\",\"mcp\",\"right\",\"your\",\"ide\"]},{\"href\":\"/blog/mastra-archil-persistent-storage\",\"label\":\"Give a Mastra agent persistent file storage with Archil\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"archil\",\"persistent\",\"storage\",\"give\",\"agent\",\"file\",\"with\"]},{\"href\":\"/blog/mastra-build-recap\",\"label\":\"MASTRA.BUILD Recap \u0026 Winner Announcement\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"build\",\"recap\",\"winner\",\"announcement\"]},{\"href\":\"/blog/mastra-cloud-public-beta\",\"label\":\"Mastra Cloud Public Beta\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"cloud\",\"public\",\"beta\"]},{\"href\":\"/blog/mastra-experiments\",\"label\":\"Change, Run, and Compare with Experiments in Mastra Studio\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"experiments\",\"change\",\"run\",\"and\",\"compare\",\"with\",\"studio\"]},{\"href\":\"/blog/mastra-inworld-realtime-voice\",\"label\":\"Add realtime voice to your Mastra agents with Inworld\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"inworld\",\"realtime\",\"voice\",\"add\",\"your\",\"agents\",\"with\"]},{\"href\":\"/blog/mastra-mcp\",\"label\":\"Why We're All-In on MCP\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"mcp\",\"why\",\"all\"]},{\"href\":\"/blog/mastra-platform-pricing\",\"label\":\"How Mastra Platform Pricing Works\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"platform\",\"pricing\",\"how\",\"works\"]},{\"href\":\"/blog/mastra-scorers\",\"label\":\"Introducing Scorers in Mastra\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"scorers\",\"introducing\"]},{\"href\":\"/blog/mastra-server-adapters\",\"label\":\"Introducing Server Adapters: Run Mastra Inside Your Existing Express or Hono App\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"server\",\"adapters\",\"introducing\",\"run\",\"inside\",\"your\",\"existing\",\"express\",\"hono\",\"app\"]},{\"href\":\"/blog/mastra-storage\",\"label\":\"Mastra Storage: a flexible storage system for AI Applications\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"storage\",\"flexible\",\"system\",\"for\",\"applications\"]},{\"href\":\"/blog/mastra-streaming\",\"label\":\"The next evolution of Mastra streaming\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"streaming\",\"the\",\"next\",\"evolution\"]},{\"href\":\"/blog/mastra-web-access-bright-data\",\"label\":\"Giving a Mastra agent web access with Bright Data\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"web\",\"access\",\"bright\",\"data\",\"giving\",\"agent\",\"with\"]},{\"href\":\"/blog/mastra-workflows-enhanced\",\"label\":\"Mastra Workflows, Enhanced\",\"kind\":\"blog\",\"tokens\":[\"mastra\",\"workflows\",\"enhanced\"]},{\"href\":\"/blog/mastrav1\",\"label\":\"Announcing Mastra v1 beta\",\"kind\":\"blog\",\"tokens\":[\"mastrav1\",\"announcing\",\"mastra\",\"beta\"]},{\"href\":\"/blog/matt-pocock-meets-mastra\",\"label\":\"An Honest Skeptic Meets Mastra: Matt Pocock's Live Review\",\"kind\":\"blog\",\"tokens\":[\"matt\",\"pocock\",\"meets\",\"mastra\",\"honest\",\"skeptic\",\"live\",\"review\"]},{\"href\":\"/blog/mcp-registry-registry\",\"label\":\"Introducing Mastra's MCP Registry Registry\",\"kind\":\"blog\",\"tokens\":[\"mcp\",\"registry\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/mcp-tool-compatibility-layer\",\"label\":\"Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models\",\"kind\":\"blog\",\"tokens\":[\"mcp\",\"tool\",\"compatibility\",\"layer\",\"reducing\",\"calling\",\"error\",\"rates\",\"from\",\"for\",\"open\",\"anthropic\",\"and\",\"google\",\"gemini\",\"models\"]},{\"href\":\"/blog/mergetemplates\",\"label\":\"Adding agent templates into existing projects\",\"kind\":\"blog\",\"tokens\":[\"mergetemplates\",\"adding\",\"agent\",\"templates\",\"into\",\"existing\",\"projects\"]},{\"href\":\"/blog/migration-guide-streaming\",\"label\":\"Migration Guide: VNext to Standard APIs\",\"kind\":\"blog\",\"tokens\":[\"migration\",\"guide\",\"streaming\",\"next\",\"standard\"]},{\"href\":\"/blog/model-fallback\",\"label\":\"Model fallbacks: Your safety net for production AI\",\"kind\":\"blog\",\"tokens\":[\"model\",\"fallback\",\"fallbacks\",\"y
182our\",\"safety\",\"net\",\"for\",\"production\"]},{\"href\":\"/blog/model-router\",\"label\":\"Introducing Mastra Model Router: 600+ models, one API, zero package installs\",\"kind\":\"blog\",\"tokens\":[\"model\",\"router\",\"introducing\",\"mastra\",\"600\",\"models\",\"one\",\"api\",\"zero\",\"package\",\"installs\"]},{\"href\":\"/blog/multi-agent-orchestration\",\"label\":\"Multi-agent orchestration and how it works\",\"kind\":\"blog\",\"tokens\":[\"multi\",\"agent\",\"orchestration\",\"and\",\"how\",\"works\"]},{\"href\":\"/blog/nested-streaming-support\",\"label\":\"Nested streaming support in Mastra\",\"kind\":\"blog\",\"tokens\":[\"nested\",\"streaming\",\"support\",\"mastra\"]},{\"href\":\"/blog/nextjs-integration-guide\",\"label\":\"Integrating Mastra with Next.js: Two Approaches for AI-Powered Apps\",\"kind\":\"blog\",\"tokens\":[\"nextjs\",\"integration\",\"guide\",\"integrating\",\"mastra\",\"with\",\"next\",\"two\",\"approaches\",\"for\",\"powered\",\"apps\"]},{\"href\":\"/blog/notebooklm-clone-with-agent-orchestration\",\"label\":\"Building a NotebookLM clone with an agent orchestrator\",\"kind\":\"blog\",\"tokens\":[\"notebooklm\",\"clone\",\"with\",\"agent\",\"orchestration\",\"building\",\"notebook\",\"orchestrator\"]},{\"href\":\"/blog/observational-memory\",\"label\":\"Announcing Observational Memory\",\"kind\":\"blog\",\"tokens\":[\"observational\",\"memory\",\"announcing\"]},{\"href\":\"/blog/patterns-book\",\"label\":\"Announcing our second book: Patterns for Building AI Agents\",\"kind\":\"blog\",\"tokens\":[\"patterns\",\"book\",\"announcing\",\"our\",\"second\",\"for\",\"building\",\"agents\"]},{\"href\":\"/blog/pdf-to-blog\",\"label\":\"PDF-to-Blog: Giving documents a second life with Mastra and Mistral OCR\",\"kind\":\"blog\",\"tokens\":[\"pdf\",\"blog\",\"giving\",\"documents\",\"second\",\"life\",\"with\",\"mastra\",\"and\",\"mistral\",\"ocr\"]},{\"href\":\"/blog/personal-assistant\",\"label\":\"Building a Personal Assistant with Mastra and MCP\",\"kind\":\"blog\",\"tokens\":[\"personal\",\"assistant\",\"building\",\"with\",\"mastra\",\"and\",\"mcp\"]},{\"href\":\"/blog/pgvector-perf\",\"label\":\"Benchmarking pgvector RAG performance across different dataset sizes\",\"kind\":\"blog\",\"tokens\":[\"pgvector\",\"perf\",\"benchmarking\",\"rag\",\"performance\",\"across\",\"different\",\"dataset\",\"sizes\"]},{\"href\":\"/blog/principles-of-ai-engineering\",\"label\":\"Announcing our new book: Principles of Building AI agents\",\"kind\":\"blog\",\"tokens\":[\"principles\",\"engineering\",\"announcing\",\"our\",\"new\",\"book\",\"building\",\"agents\"]},{\"href\":\"/blog/principlesv2\",\"label\":\"Announcing the second edition of Principles of Building AI Agents\",\"kind\":\"blog\",\"tokens\":[\"principlesv2\",\"announcing\",\"the\",\"second\",\"edition\",\"principles\",\"building\",\"agents\"]},{\"href\":\"/blog/product-agents-we-built-at-mastra\",\"label\":\"Product Agents We Built at Mastra\",\"kind\":\"blog\",\"tokens\":[\"product\",\"agents\",\"built\",\"mastra\"]},{\"href\":\"/blog/rag-tutorial\",\"label\":\"RAG tutorial: Setting up a RAG pipeline\",\"kind\":\"blog\",\"tokens\":[\"rag\",\"tutorial\",\"setting\",\"pipeline\"]},{\"href\":\"/blog/rebrand\",\"label\":\"Announcing our new logo and brand\",\"kind\":\"blog\",\"tokens\":[\"rebrand\",\"announcing\",\"our\",\"new\",\"logo\",\"and\",\"brand\"]},{\"href\":\"/blog/remote-filesystem-support\",\"label\":\"Remote Filesystem Support for Mastra Agents\",\"kind\":\"blog\",\"tokens\":[\"remote\",\"filesystem\",\"support\",\"for\",\"mastra\",\"agents\"]},{\"href\":\"/blog/repo-base\",\"label\":\"Building a Code Assistant with Large Context Windows\",\"kind\":\"blog\",\"tokens\":[\"repo\",\"base\",\"building\",\"code\",\"assistant\",\"with\",\"large\",\"context\",\"windows\"]},{\"href\":\"/blog/research-assistant\",\"label\":\"Building an AI Research Assistant with vNext Workflows\",\"kind\":\"blog\",\"tokens\":[\"research\",\"assistant\",\"building\",\"with\",\"next\",\"workflows\"]},{\"href\":\"/blog/resumeworkflows\",\"label\":\"You can suspend/resume workflows in playground\",\"kind\":\"blog\",\"tokens\":[\"resumeworkflows\",\"y
182ou\",\"can\",\"suspend\",\"resume\",\"workflows\",\"playground\"]},{\"href\":\"/blog/seamless-edge-deployments\",\"label\":\"Optimizing Mastra for Seamless Edge Deployments\",\"kind\":\"blog\",\"tokens\":[\"seamless\",\"edge\",\"deployments\",\"optimizing\",\"mastra\",\"for\"]},{\"href\":\"/blog/seed-round\",\"label\":\"Announcing our $13m seed round from YC, pg, Gradient, Amjad, Guillermo, Balaji, and 120+ others\",\"kind\":\"blog\",\"tokens\":[\"seed\",\"round\",\"announcing\",\"our\",\"13m\",\"from\",\"gradient\",\"amjad\",\"guillermo\",\"balaji\",\"and\",\"120\",\"others\"]},{\"href\":\"/blog/series-a\",\"label\":\"We raised a $22M Series A to help every developer build agents\",\"kind\":\"blog\",\"tokens\":[\"series\",\"raised\",\"help\",\"every\",\"developer\",\"build\",\"agents\"]},{\"href\":\"/blog/software-factory\",\"label\":\"How to Build an AI Software Factory with AI Agents in TypeScript\",\"kind\":\"blog\",\"tokens\":[\"software\",\"factory\",\"how\",\"build\",\"with\",\"agents\",\"type\",\"script\"]},{\"href\":\"/blog/solving-the-hardest-problem-in-cs\",\"label\":\"Solving the hardest problem in computer science with LLMs\",\"kind\":\"blog\",\"tokens\":[\"solving\",\"the\",\"hardest\",\"problem\",\"computer\",\"science\",\"with\"]},{\"href\":\"/blog/speech-to-speech\",\"label\":\"The Voice Connection: Mastra's Speech-to-Speech Capabilities\",\"kind\":\"blog\",\"tokens\":[\"speech\",\"the\",\"voice\",\"connection\",\"mastra\",\"capabilities\"]},{\"href\":\"/blog/state\",\"label\":\"Workflow State: Share Data Across Steps\",\"kind\":\"blog\",\"tokens\":[\"state\",\"workflow\",\"share\",\"data\",\"across\",\"steps\"]},{\"href\":\"/blog/templates\",\"label\":\"Introducing Mastra Templates\",\"kind\":\"blog\",\"tokens\":[\"templates\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/the-detective-game\",\"label\":\"Building an Interactive Detective Game with Multi-Agent AI\",\"kind\":\"blog\",\"tokens\":[\"the\",\"detective\",\"game\",\"building\",\"interactive\",\"with\",\"multi\",\"agent\"]},{\"href\":\"/blog/the-next-million-ai-developers\",\"label\":\"A framework for the next million AI developers\",\"kind\":\"blog\",\"tokens\":[\"the\",\"next\",\"million\",\"developers\",\"framework\",\"for\"]},{\"href\":\"/blog/tool-approval\",\"label\":\"HITL: Ask Before Acting\",\"kind\":\"blog\",\"tokens\":[\"tool\",\"approval\",\"hitl\",\"ask\",\"before\",\"acting\"]},{\"href\":\"/blog/travel-ai\",\"label\":\"Multi-Agent AI Travel Planning with Mastra\",\"kind\":\"blog\",\"tokens\":[\"travel\",\"multi\",\"agent\",\"planning\",\"with\",\"mastra\"]},{\"href\":\"/blog/tts-support\",\"label\":\"Introducing TTS in Mastra\",\"kind\":\"blog\",\"tokens\":[\"tts\",\"support\",\"introducing\",\"mastra\"]},{\"href\":\"/blog/txt-to-sql\",\"label\":\"Mastra Text-to-SQL: from natural language to database queries\",\"kind\":\"blog\",\"tokens\":[\"txt\",\"sql\",\"mastra\",\"text\",\"from\",\"natural\",\"language\",\"database\",\"queries\"]},{\"href\":\"/blog/upgraded-mastra-cli\",\"label\":\"Introducing Mastra CLI Actions for Claude Code, Cursor, and Codex\",\"kind\":\"blog\",\"tokens\":[\"upgraded\",\"mastra\",\"cli\",\"introducing\",\"actions\",\"for\",\"claude\",\"code\",\"cursor\",\"and\",\"codex\"]},{\"href\":\"/blog/use-rag-for-agent-memory\",\"label\":\"Yes, you can use RAG for agent memory\",\"kind\":\"blog\",\"tokens\":[\"use\",\"rag\",\"for\",\"agent\",\"memory\",\"yes\",\"you\",\"can\"]},{\"href\":\"/blog/using-ai-sdk-with-mastra\",\"label\":\"Using Vercel's AI SDK with Mastra\",\"kind\":\"blog\",\"tokens\":[\"using\",\"sdk\",\"with\",\"mastra\",\"vercel\"]},{\"href\":\"/blog/vNext-workflows\",\"label\":\"Introducing vNext Workflows: the next generation of Mastra Workflows\",\"kind\":\"blog\",\"tokens\":[\"next\",\"workflows\",\"introducing\",\"the\",\"generation\",\"mastra\"]},{\"href\":\"/blog/vnext-agent-network\",\"label\":\"Beyond Workflows: Introducing Agent Network (vNext)\",\"kind\":\"blog\",\"tokens\":[\"vnext\",\"agent\",\"network\",\"beyond\",\"workflows\",\"introducing\",\"next\"]},{\"href\":\"/blog/voice-agent-render-assemblyai\",\"label\":\"Building a voice research agent with Mastra, Render, and AssemblyAI\",\"kind\":\"blog\",\"tokens\":[\"voice\",\"agent\",\"render\",\"assemblyai\",\"building\",\"research\",\"with\",\"mastra\",\"and\",\"assembly\"]},{\"href\":\"/blog/web-browsing-agent\",\"label\":\"Building a Web Browsing Agent with Mastra and Stagehand\",\"kind\":\"blog\",\"tokens\":[\"web\",\"browsing\",\"agent\",\"building\",\"with\",\"mastra\",\"and\",\"stagehand\"]},{\"href\":\"/blog/what-are-durable-ai-agents\",\"label\":\"What are durable AI agents? How state persistence and checkpoints survive a restart\",\"kind\":\"blog\",\"tokens\":[\"what\",\"are\",\"durable\",\"agents\",\"how\",\"state\",\"persistence\",\"and\",\"checkpoints\",\"survive\",\"restart\"]},{\"href\":\"/blog/what-is-agent-to-agent-protocol\",\"label\":\"What is the Agent2Agent (A2A) protocol? How AI agents delegate work\",\"kind\":\"blog\",\"tokens\":[\"what\",\"agent\",\"protocol\",\"the\",\"agent2\",\"how\",\"agents\",\"delegate\",\"work\"]},{\"href\":\"/blog/what-is-llm-observability\",\"label\":\"What is LLM observability? A span-by-span breakdown\",\"kind\":\"blog\",\"tokens\":[\"what\",\"llm\",\"observability\",\"span\",\"breakdown\"]},{\"href\":\"/blog/whiteboard-to-excalidraw-converter\",\"label\":\"From Whiteboard to Excalidraw: Building a Multi-Agent Workflow\",\"kind\":\"blog\",\"tokens\":[\"whiteboard\",\"excalidraw\",\"converter\",\"from\",\"building\",\"multi\",\"agent\",\"workflow\"]}
182],\"initialPopular\":[\"$85:props:children:0:props:candidates:5\",\"$85:props:children:0:props:candidates:6\",\"$85:props:children:0:props:candidates:7\",\"$85:props:children:0:props:candidates:3\",\"$85:props:children:0:props:candidates:4\"]}],\"$L86\",\"$L87\",\"$L88\"]}]\n"])</script>
182<script>self.__next_f.push([1,"86:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"What is Mastra?\"}],[\"$\",\"p\",null,{\"className\":\"ds-section--description\",\"data-size\":\"m\",\"children\":\"An open-source TypeScript framework for building, testing, and deploying AI agents â agents, workflows, RAG, evals and observability behind a typed API.\"}]]}],[\"$\",\"div\",null,{\"className\":\"max-w-ds-layout-content-v1 mx-auto px-ds-antigrid-gap w-full flex justify-center\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/about\",\"className\":\"text-ds-main-white hover:text-ds-green transition-colors\",\"children\":\"Learn more about Mastra â\"}]}]]}]\n87:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"Some of our customers and their stories\"}],\"$undefined\"]}],[\"$\",\"section\",null,{\"className\":\"relative z-10 w-full overflow-x-clip\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-[1330px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hidden grid-cols-6 grid-rows-2 xl:grid\",\"children\":[[\"$\",\"$L2f\",\"1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$40:props:children:1:props:children:props:children:0:props:children:0:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$48:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$49:props:children:0:props:children:props:children\"}]}
182],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4a:props:children:0:props:children:props:children\"}]}],\"$L89\"]}],\"$L8a\",\"$L8b\",\"$L8c\",\"$L8d\",\"$L8e\",\"$L8f\",\"$L90\",\"$L91\"]}],\"$L92\"]}]}]]}]\n88:[\"$\",\"section\",null,{\"className\":\"ds-section\",\"children\":[[\"$\",\"header\",null,{\"className\":\"ds-section--header\",\"children\":[\"$undefined\",[\"$\",\"h2\",null,{\"className\":\"ds-section--title\",\"children\":\"Recent from the blog\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"max-w-ds-layout-content-v1 mx-auto px-ds-antigrid-gap w-full flex flex-col gap-ds-antigrid\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"grid gap-ds-antigrid sm:grid-cols-3\",\"children\":[[\"$\",\"li\",\"introducing-vitest-integration\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-vitest-integration\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 24, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Vitest Integration for Testing\"}]]}]]}]}],[\"$\",\"li\",\"introducing-experiment-tool-mocks\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-experiment-tool-mocks\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 23, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Experiment Tool Mocks\"}]]}]]}]}],[\"$\",\"li\",\"introducing-experiment-lifecycle-hooks\",{\"className\":\"contents\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog/introducing-experiment-lifecycle-hooks\",\"prefetch\":\"$undefined\",\"target\":\"$undefined\",\"className\":\"box\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"box--content flex flex-col gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-ds-main-gray text-sm\",\"children\":\"Sep 22, 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-headline-md text-ds-main-white\",\"children\":\"Introducing Experiment Lifecycle Hooks\"}]]}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"flex justify-center\",\"children\":[\"$\",\"$L2f\",null,{\"href\":\"/blog\",\"className\":\"text-ds-main-gray hover:text-ds-green transition-colors\",\"children\":\"All posts â\"}]}]]}]]}]\n"])</script>
182<script>self.__next_f.push([1,"89:[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n8a:[\"$\",\"$L2f\",\"5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4b:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n8b:[\"$\",\"div\",\"6\",{\"className\":\"relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4c:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":\"Read â\"}]]}]\n8c:[\"$\",\"$L2f\",\"7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4d:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n8d:[\"$\",\"div\",\"8\",{\"className\":\"relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4e:props:children:0:props:children:props:children\"}]}
182],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":\"Read â\"}]]}]\n8e:[\"$\",\"$L2f\",\"9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$4f:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n8f:[\"$\",\"$L2f\",\"10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$50:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n90:[\"$\",\"$L2f\",\"11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$51:props:children:0:props:children:props:children\"}]}],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n91:[\"$\",\"$L2f\",\"12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item relative flex h-[128px] min-w-0 items-center justify-center p-[10px]\",\"style\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center transition-opacity duration-200 group-hover/logo-item:opacity-80\",\"children\":[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[78px] xl:h-[87px]\",\"children\":\"$52:props:children:0:props:children:props:children\"}]}
182],[\"$\",\"p\",null,{\"className\":\"absolute bottom-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n92:[\"$\",\"div\",null,{\"className\":\"xl:hidden\",\"children\":[\"$\",\"div\",null,{\"className\":\"group/logo-marquee flex w-full gap-4 overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex shrink-0 gap-4 animate-logo-marquee group-hover/logo-marquee:[animation-play-state:paused] group-focus-within/logo-marquee:[animation-play-state:paused] motion-reduce:animate-none\",\"children\":[[\"$\",\"$L2f\",\"1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$40:props:children:1:props:children:props:children:0:props:children:0:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$48:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$49:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4a:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4b:props:children:0:props:children:props:children\"}],\"$L93\"]}],\"$L94\",\"$L95\",\"$L96\",\"$L97\",\"$L98\",\"$L99\",\"$L9a\"]}],\"$L9b\"]}]}]\n"])</script>
182<script>self.__next_f.push([1,"93:[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]\n94:[\"$\",\"div\",\"6\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4c:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n95:[\"$\",\"$L2f\",\"7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4d:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n96:[\"$\",\"div\",\"8\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4e:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n97:[\"$\",\"$L2f\",\"9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4f:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n98:[\"$\",\"$L2f\",\"10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$50:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n99:[\"$\",\"$L2f\",\"11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$51:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n9a:[\"$\",\"$L2f\",\"12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$52:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n9b:[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"flex shrink-0 gap-4 animate-logo-marquee group-hover/logo-marquee:[animation-play-state:paused] group-focus-within/logo-marquee:[animation-play-state:paused] motion-reduce:animate-none\",\"children\":[[\"$\",\"$L2f\",\"dup-1\",{\"href\":\"/customers/salesforce\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Salesforce uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Salesforce\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$40:props:children:1:props:children:props:children:0:props:children:0:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-2\",{\"href\":\"/customers/marsh\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Marsh McLennan uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Marsh McLennan\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$48:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-3\",{\"href\":\"/customers/sanity\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Sanity uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Sanity\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$49:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-4\",{\"href\":\"/customers/softbank\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how SoftBank uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"SoftBank\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4a:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],[\"$\",\"$L2f\",\"dup-5\",{\"href\":\"/customers/workos\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how WorkOS uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"WorkOS\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4b:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}],\"$L9c\",\"$L9d\",\"$L9e\",\"$L9f\",\"$La0\",\"$La1\",\"$La2\"]}]\n"])</script>
182<script>self.__next_f.push([1,"9c:[\"$\",\"div\",\"dup-6\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Brex\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4c:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n9d:[\"$\",\"$L2f\",\"dup-7\",{\"href\":\"/customers/range\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Range uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Range\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4d:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n9e:[\"$\",\"div\",\"dup-8\",{\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"PayPal\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4e:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray invisible\",\"children\":[\"Read\",\" â\"]}]]}]\n9f:[\"$\",\"$L2f\",\"dup-9\",{\"href\":\"/customers/mongodb\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how MongoDB uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"MongoDB\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$4f:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\na0:[\"$\",\"$L2f\",\"dup-10\",{\"href\":\"/customers/factorial\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Factorial uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Factorial\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$50:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\na1:[\"$\",\"$L2f\",\"dup-11\",{\"href\":\"https://www.elastic.co/search-labs/blog/agentic-rag\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"See how Elastic uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Elastic\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$51:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\na2:[\"$\",\"$L2f\",\"dup-12\",{\"href\":\"/customers/replit\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"aria-label\":\"See how Replit uses Mastra\",\"className\":\"group/logo-item flex shrink-0 items-center justify-center px-4 h-[128px] flex-col gap-2\",\"children\":[[\"$\",\"span\",null,{\"role\":\"img\",\"aria-label\":\"Replit\",\"className\":\"inline-flex items-center justify-center [\u0026_svg]:h-full [\u0026_svg]:w-auto [\u0026_svg]:max-w-full [\u0026_img]:h-full [\u0026_img]:w-auto [\u0026_img]:max-w-full h-[36px]\",\"children\":\"$52:props:children:0:props:children:props:children\"}],[\"$\",\"p\",null,{\"aria-hidden\":true,\"className\":\"whitespace-nowrap text-center text-[14.5px] leading-[1.36] tracking-[0.015em] text-ds-dark-gray transition-colors duration-200 group-hover/logo-item:text-ds-main-gray group-focus-visible/logo-item:text-ds-main-gray\",\"children\":[\"Read\",\" â\"]}]]}]\n"])</script>
182</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.