PageSourceSearch

https://mastra.ai/blog

html mastra.ai collected 2026-09-24 17:13:24 UTC 541,189 bytes, 182 lines download raw bytes

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/0l92kp1vq2yr8.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 Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra</title><meta name="description" content="Mastra.ai blog - Latest updates, tutorials, and insights 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/blog"/><meta property="og:title" content="Mastra Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra"/><meta property="og:description" content="Mastra.ai blog - Latest updates, tutorials, and insights on building AI agents."/><meta property="og:url" content="https://mastra.ai/blog"/><meta property="og:image" content="https://mastra.ai/api/og/page?title=Blog"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Mastra Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra"/><meta name="twitter:description" content="Mastra.ai blog - Latest updates, tutorials, and insights on building AI agents."/><meta name="twitter:image" content="https://mastra.ai/api/og/page?title=Blog"/><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="7ab850d93a6b892d9f23cdbfa324b80c-c016f5bfd6092851-1"/><meta name="baggage" content="sentry-environment=vercel-production,sentry-release=ae47bac364170a850db499abe60f14efdc3faf1c,sentry-public_key=eff91afdc73645f3f7de729456be7d68,sentry-trace_id=7ab850d93a6b892d9f23cdbfa324b80c,sentry-org_id=4509090735783936,sentry-transaction=GET%20%2Fblog,sentry-sampled=true,sentry-sample_rand=0.37809757739236094,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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1u7tc4p6bb6mu.png&amp;w=3840&amp;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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2ytfkdgn5sn8m.png&amp;w=3840&amp;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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.2zj9trvthlk04.png&amp;w=3840&amp;q=75"/></span></a></div></section><section class="nav-product-group"><p class="nav-column-heading">Platform &amp; 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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.1swmqwebb6q7j.png&amp;w=3840&amp;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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.42ozje4-4sv5i.png&amp;w=3840&amp;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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fproduct-icon.081y_l6onl9h9.png&amp;w=3840&amp;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&amp;w=32&amp;q=75 32w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=48&amp;q=75 48w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=64&amp;q=75 64w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=96&amp;q=75 96w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=128&amp;q=75 128w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=256&amp;q=75 256w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=384&amp;q=75 384w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fnav-icon.43e_1mkeg83im.png&amp;w=3840&amp;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 lg:text-white" 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":"Blog","item":"https://mastra.ai/blog"}]}</script>
168<script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Introducing Vitest Integration for Testing","url":"https://mastra.ai/blog/introducing-vitest-integration"},{"@type":"ListItem","position":2,"name":"Introducing Experiment Tool Mocks","url":"https://mastra.ai/blog/introducing-experiment-tool-mocks"},{"@type":"ListItem","position":3,"name":"Introducing Experiment Lifecycle Hooks","url":"https://mastra.ai/blog/introducing-experiment-lifecycle-hooks"},{"@type":"ListItem","position":4,"name":"Introducing Experiment Targets","url":"https://mastra.ai/blog/introducing-experiment-targets"},{"@type":"ListItem","position":5,"name":"Introducing the Feedback API Endpoint for Mastra Observability","url":"https://mastra.ai/blog/introducing-http-feedback-api"},{"@type":"ListItem","position":6,"name":"Introducing Incident Alerts for Mastra Platform","url":"https://mastra.ai/blog/introducing-incident-alerts"},{"@type":"ListItem","position":7,"name":"Introducing Error Diagnosis for Mastra Platform and CLI","url":"https://mastra.ai/blog/introducing-error-diagnostics-platform-cli"},{"@type":"ListItem","position":8,"name":"Introducing Server Health for Mastra Platform","url":"https://mastra.ai/blog/introducing-server-health-for-mastra-platform"},{"@type":"ListItem","position":9,"name":"Introducing Filesystem Skills for Mastra Workspaces","url":"https://mastra.ai/blog/introducing-filesystem-skills"},{"@type":"ListItem","position":10,"name":"Introducing Filesystem Search for Mastra Workspaces","url":"https://mastra.ai/blog/introducing-filesystem-search"},{"@type":"ListItem","position":11,"name":"Announcing Mastra Factory Beta","url":"https://mastra.ai/blog/announcing-mastra-factory-beta"},{"@type":"ListItem","position":12,"name":"Introducing Filesystem Mounts for Mastra Workspaces","url":"https://mastra.ai/blog/introducing-filesystem-mounts"}]}</script>
168<section class="ds-section [--ds-section-stage-shell-fill:transparent] [&amp;_.ds-section--stage-content]:pb-14 [&amp;_.ds-section--stage-content]:pt-24 md:[&amp;_.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">The Mastra blog</h1><p class="max-w-[560px] text-[1.0625rem] leading-[1.5] text-ds-main-gray">Updates, tutorials, 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="/blog">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="/blog/category/announcements">Announcements</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="/blog/category/features">Features</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="/blog/category/examples">Examples</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="/blog/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 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_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 blog 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="/blog/introducing-vitest-integration"><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">Introducing Vitest Integration for Testing</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Catch regressions and errors before you deploy.</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">Sep 24, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-experiment-tool-mocks"><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">Introducing Experiment Tool Mocks</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Run experiments without hitting live APIs.</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">Sep 23, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-experiment-lifecycle-hooks"><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">Introducing Experiment Lifecycle Hooks</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Configure each stage of an experiment run.</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">Sep 22, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-experiment-targets"><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">Introducing Experiment Targets</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Run experiments on workflows and scorers too, not just 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">Sep 21, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-http-feedback-api"><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">Introducing the Feedback API Endpoint for Mastra Observability</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Query feedback by region, environment, thread and source.</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">Sep 18, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-incident-alerts"><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">Introducing Incident Alerts for Mastra Platform</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Real-time updates for failed deploys and crashed services.</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">Sep 17, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-error-diagnostics-platform-cli"><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">Introducing Error Diagnosis for Mastra Platform and CLI</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Diagnose and fix failed deploys with helpful recommendations.</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">Sep 15, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-server-health-for-mastra-platform"><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">Introducing Server Health for Mastra Platform</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Monitor server requests and inspect by path, status, or latency.</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">Sep 14, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-filesystem-skills"><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">Introducing Filesystem Skills for Mastra Workspaces</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Reusable skills for multi-agent systems.</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">Sep 11, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/introducing-filesystem-search"><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">Introducing Filesystem Search for Mastra Workspaces</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Find relevant content by keyword, semantic-similarity, or both.</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">Sep 10, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</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="/blog/announcing-mastra-factory-beta"><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">Announcing Mastra Factory Beta</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">How we learned to stop worrying and let the agents ship</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">Sep 8, 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;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AC0qNy0pNy0nMi0mLCUgJiklLy4qNy4qNwAtKjYtKTZeSEilgnqIaGI8LzEtKTQuKjgALSo1MSw3hGZhzaCVzZ2QdVdPMSw2Lis4AC0qNTUwOpV0br6RiL2OgKR6bks9RS4rOAAsKTQxLjh8XVewf3ayf297Xlc3Mj0uKjcANDRBPDxLUENFkWhfeFVKUEZJR0VRNjRBAElLXUZHVjYxNWFHPVZHRFNQWExMXVhYaQBOUGFAQU4vLTYzLzFEQkdPTVpUVWhYWW3MoDnjbEvkVgAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fcalcsam.2t675rxbkngzr.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fcalcsam.2t675rxbkngzr.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fcalcsam.2t675rxbkngzr.png&amp;w=48&amp;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"># <!-- -->announcements</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="/blog/introducing-filesystem-mounts"><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">Introducing Filesystem Mounts for Mastra Workspaces</h2><p class="line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray">Read and write to multiple filesystems using the same file interface.</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">Sep 8, 2026</span><div class="flex items-center gap-2"><img alt="Paul Scanlon" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="rounded-full ring-1 ring-ds-border-antigrid" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 320&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;
168sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fimmutable%2Fmedia%2Fpaul.00yw1hun16lh-.png&amp;w=48&amp;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"># <!-- -->features</span></div></div></a></div><nav aria-label="Blog 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="/blog">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="/blog/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="/blog/page/22">22</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="/blog/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-h-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(&quot;/new-brand/footer-shader-fallback-gray.jpg&quot;)"></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 focu
168s-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:&quot;ss01&quot;, &quot;ss02&quot;">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: &quot;my-mastra-app&quot;)
171Provider? (required; options: &quot;openai&quot;, &quot;anthropic&quot;, &quot;google&quot;, &quot;xai&quot;)
172If the provider isn&#x27;t supported, ask again and list the supported values.
173
174Run: `npm create mastra@latest &lt;project-name&gt; -- --llm &lt;provider&gt;`
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 &lt;project-name&gt; -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 focus-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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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)">
182<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 [&amp;_svg]:block! [&amp;_svg]:h-full! [&amp;_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)] focu
182s-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">Agent 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">
182Book · 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\":[\"\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(resources)\",{\"children\":[\"blog\",{\"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/0l92kp1vq2yr8.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/0l92kp1vq2yr8.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 Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Mastra.ai blog - Latest updates, tutorials, and insights 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/blog\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Mastra Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Mastra.ai blog - Latest updates, tutorials, and insights on building AI agents.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://mastra.ai/blog\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image\",\"content\":\"https://mastra.ai/api/og/page?title=Blog\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:title\",\"content\":\"Mastra Blog: AI Agents, Workflows, and TypeScript Engineering | Mastra\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:description\",\"content\":\"Mastra.ai blog - Latest updates, tutorials, and insights on building AI agents.\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:image\",\"content\":\"https://mastra.ai/api/og/page?title=Blog\"}],[\"$\",\"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\"}}]\n28: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\":[[\"$\",\"$L28\",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\"]}],\"$L29\",\"$L2a\",\"$L2b\"]}]\n2c: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"\"]\n29:[\"$\",\"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\":[\"$\",\"$L2c\",null,{\"href\":\"/about\",\"className\":\"text-ds-main-white hover:text-ds-green transition-colors\",\"children\":\"Learn more about Mastra →\"}]}]]}]\n2d: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.161s1.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.6572e: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.
182069-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.6022a:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2d\"}],[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"$2e\",\"clipRule\":\"evenodd\"}],\"$L2f\",\"$L30\",\"$L31\"]}]}]}]}],\"$L32\"]}],\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\"]}],\"$L3e\"]}]}]]}]\n2b:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",null,{\"href\":\"/blog\",\"className\":\"text-ds-main-gray hover:text-ds-green transition-colors\",\"children\":\"All posts →\"}]}]]}]]}]\n59: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"SectionStageShell\"]\n2f:[\"$\",\"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\"}]\n3f: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-.377.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.255z30:[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"$3f\",\"clipRule\":\"evenodd\"}]\n31:[\"$\",\"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\"}]\n32:[\"$\",\"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\",\" →\"]}]\n40: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.302z33:[\"$\",\"$L2c\",\"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\":\"$40\"}]}]}]}
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\",\" →\"]}]]}]\n41: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.891 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.724z34:[\"$\",\"$L2c\",\"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\":\"$41\"}]}]}]}],[\"$\",\"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\",\" →\"]}]]}]\n42: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.38235:[\"$\",\"$L2c\",\"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\":\"$42\"}]}]}]}],\"$L43\"]}]\n44: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.64836:[\"$\",\"$L2c\",\"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\":\"$44\"}],[\"$\",\"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\",\" →\"]}]]}]\n37:[\"$\",\"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 →\"}]]}]\n45: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.04538:[\"$\",\"$L2c\",\"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\":\"$45\"}]}]}]}],\"$L46\"]}]\n47: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.9z39:[\"$\",\"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\":\"$47\"}]}]}]}
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 →\"}]]}]\n48: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.0473a:[\"$\",\"$L2c\",\"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\":\"$48\"}]}]}]}],\"$L49\"]}]\n4a: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 03b:[\"$\",\"$L2c\",\"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\":\"$4a\"}],[\"$\",\"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\"}],\"$L4b\"]}]}]}]}],\"$L4c\"]}]\n4d: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.4023c:[\"$\",\"$L2c\",\"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\":\"$4d\"}]}]}]}],[\"$\",\"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\",\" →\"]}]]}]\n4e: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.76z3d:[\"$\",\"$L2c\",\"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\":\"$4e\"}]}]}]}],[\"$\",\"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\",\" →\"]}]]}]\n3e:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2a: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$33: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$34: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$35: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$36:props:children:0:props:children:props:children\"}],\"$L4f\"]}],\"$L50\",\"$L51\",\"$L52\",\"$L53\",\"$L54\",\"$L55\",\"$L56\"]}],\"$L57\"]}]}]\n58:T779,{\"@context\":\"https://schema.org\",\"@type\":\"ItemList\",\"
182itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Introducing Vitest Integration for Testing\",\"url\":\"https://mastra.ai/blog/introducing-vitest-integration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Experiment Tool Mocks\",\"url\":\"https://mastra.ai/blog/introducing-experiment-tool-mocks\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Introducing Experiment Lifecycle Hooks\",\"url\":\"https://mastra.ai/blog/introducing-experiment-lifecycle-hooks\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Introducing Experiment Targets\",\"url\":\"https://mastra.ai/blog/introducing-experiment-targets\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Introducing the Feedback API Endpoint for Mastra Observability\",\"url\":\"https://mastra.ai/blog/introducing-http-feedback-api\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Introducing Incident Alerts for Mastra Platform\",\"url\":\"https://mastra.ai/blog/introducing-incident-alerts\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"Introducing Error Diagnosis for Mastra Platform and CLI\",\"url\":\"https://mastra.ai/blog/introducing-error-diagnostics-platform-cli\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Introducing Server Health for Mastra Platform\",\"url\":\"https://mastra.ai/blog/introducing-server-health-for-mastra-platform\"},{\"@type\":\"ListItem\",\"position\":9,\"name\":\"Introducing Filesystem Skills for Mastra Workspaces\",\"url\":\"https://mastra.ai/blog/introducing-filesystem-skills\"},{\"@type\":\"ListItem\",\"position\":10,\"name\":\"Introducing Filesystem Search for Mastra Workspaces\",\"url\":\"https://mastra.ai/blog/introducing-filesystem-search\"},{\"@type\":\"ListItem\",\"position\":11,\"name\":\"Announcing Mastra Factory Beta\",\"url\":\"https://mastra.ai/blog/announcing-mastra-factory-beta\"},{\"@type\":\"ListItem\",\"position\":12,\"name\":\"Introducing Filesystem Mounts for Mastra Workspaces\",\"url\":\"https://mastra.ai/blog/introducing-filesystem-mounts\"}]}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\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://mastra.ai/blog\\\"}]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$58\"}}],[\"$\",\"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,[\"$\",\"$L59\",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\":\"The Mastra blog\"}],[\"$\",\"p\",null,{\"className\":\"max-w-[560px] text-[1.0625rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Updates, tutorials, and engineering deep-dives on building AI agents, workflows, and TypeScript tooling with Mastra.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex w-full flex-wrap items-center gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hidden lg:flex gap-2 md:w-fit\",\"children\":[\"$L5a\",\"$L5b\",\"$L5c\",\"$L5d\",\"$L5e\"]}],\"$L5f\"]}]]}]}]]}],\"$L60\",\"$L61\"]}]\n69:I[973030,[\"/_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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"ClientSideSearchSection\"]\n6a: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"Image\"]\n76: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterShaderBackdrop\"]\n77: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterHeroCtas\"]\n43:[\"$\",\"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\",\" →\"]}]\n46:[\"$\",\"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\",\" →\"]}]\n49:[\"$\",\"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\",\" →\"]}]\n4b:[\"$\",\"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\"}]\n4c:[\"$\",\"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\",\" →\"]}]\n4f:[\"$\",\"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\",\" →\"]}]\n50:[\"$\",\"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\":\"$37: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\",\" →\"]}]]}]\n51:[\"$\",\"$L2c\",\"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\":\"$38: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\",\" →\"]}]]}]\n52:[\"$\",\"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\":\"$39: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\",\" →\"]}]]}]\n53:[\"$\",\"$L2c\",\"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\":\"$3a: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\",\" →\"]}]]}]\n54:[\"$\",\"$L2c\",\"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\":\"$3b: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\",\" →\"]}]]}]\n55:[\"$\",\"$L2c\",\"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\":\"$3c: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\",\" →\"]}]]}]\n56:[\"$\",\"$L2c\",\"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\":\"$3d: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\",\" →\"]}]]}]\n57:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2a: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$33: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$34: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$35: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$36: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\",\" →\"]}]]}],\"$L62\",\"$L63\",\"$L64\",\"$L65\",\"$L66\",\"$L67\",\"$L68\"]}]\n5a:[\"$\",\"$L2c\",\"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\":\"/blog\",\"children\":\"All Posts\"}]\n5b:[\"$\",\"$L2c\",\"announcements\",{\"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 dat
182a-[active=true]:text-ds-main-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--color-ds-green)\",\"href\":\"/blog/category/announcements\",\"children\":\"Announcements\"}]\n5c:[\"$\",\"$L2c\",\"features\",{\"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\":\"/blog/category/features\",\"children\":\"Features\"}]\n5d:[\"$\",\"$L2c\",\"examples\",{\"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\":\"/blog/category/examples\",\"children\":\"Examples\"}]\n5e:[\"$\",\"$L2c\",\"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\":\"/blog/category/foundations\",\"children\":\"Foundations\"}]\n5f:[\"$\",\"$L69\",null,{\"query\":\"\",\"posts\":[{\"slug\":\"introducing-vitest-integration\",\"data\":{\"title\":\"Introducing Vitest Integration for Testing\",\"publishedAt\":\"2026-09-24\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Catch regressions and errors before you deploy.\"}},{\"slug\":\"introducing-experiment-tool-mocks\",\"data\":{\"title\":\"Introducing Experiment Tool Mocks\",\"publishedAt\":\"2026-09-23\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Run experiments without hitting live APIs.\"}},{\"slug\":\"introducing-experiment-lifecycle-hooks\",\"data\":{\"title\":\"Introducing Experiment Lifecycle Hooks\",\"publishedAt\":\"2026-09-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Configure each stage of an experiment run.\"}},{\"slug\":\"introducing-experiment-targets\",\"data\":{\"title\":\"Introducing Experiment Targets\",\"publishedAt\":\"2026-09-21\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Run experiments on workflows and scorers too, not just agents.\"}},{\"slug\":\"introducing-http-feedback-api\",\"data\":{\"title\":\"Introducing the Feedback API Endpoint for Mastra Observability\",\"publishedAt\":\"2026-09-18\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Query feedback by region, environment, thread and source.\"}},{\"slug\":\"introducing-incident-alerts\",\"data\":{\"title\":\"Introducing Incident Alerts for Mastra Platform\",\"publishedAt\":\"2026-09-17\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Real-time updates for failed deploys and crashed services.\"}},{\"slug\":\"introducing-error-diagnostics-platform-cli\",\"data\":{\"title\":\"Introducing Error Diagnosis for Mastra Platform and CLI\",\"publishedAt\":\"2026-09-15\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Diagnose and fix failed deploys with helpful recommendations.\"}},{\"slug\":\"introducing-server-health-for-mastra-platform\",\"data\":{\"title\":\"Introducing Server Health for Mastra Platform\",\"publishedAt\":\"2026-09-14\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Monitor server requests and inspect by path, status, or latency.\"}},{\"slug\":\"introducing-filesystem-skills\",\"data\":{\"title\":\"Introducing Filesystem Skills for Mastra Workspaces\",\"publishedAt\":\"2026-09-11\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Reusable skills for multi-agent systems.\"}},{\"slug\":\"introducing-filesystem-search\",\"data\":{\"title\":\"Introducing Filesystem Search for Mastra Workspaces\",\"publishedAt\":\"2026-09-10\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Find relevant content by keyword, semantic-similarity, or both.\"}},{\"slug\":\"announcing-mastra-factory-beta\",\"data\":{\"title\":\"Announcing Mastra Factory Beta\",\"publishedAt\":\"2026-09-08\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"How we learned to stop worrying and let the agents ship\"}},{\"slug\":\"introducing-filesystem-mounts\",\"data\":{\"title\":\"Introducing Filesystem Mounts for Mastra Workspaces\",\"publishedAt\":\"2026-09-08\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Read and write to multiple filesystems using the same file interface.\"}},{\"slug\":\"remote-filesystem-support\",\"data\":{\"title\":\"Remote Filesystem Support for Mastra Agents\",\"publishedAt\":\"2026-09-07\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Give your agents access to filesystems your team already use.\"}}
182,{\"slug\":\"introducing-sandbox-lifecycle-controls\",\"data\":{\"title\":\"Introducing Sandbox Lifecycle Controls in Mastra\",\"publishedAt\":\"2026-09-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Control, status, hooks, persistence, and background processes.\"}},{\"slug\":\"introducing-sandbox-computer-use\",\"data\":{\"title\":\"Introducing Sandbox Computer Use for Mastra Agents\",\"publishedAt\":\"2026-09-02\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Give your agents a computer to use, just like you do.\"}},{\"slug\":\"introducing-harness-channels\",\"data\":{\"title\":\"Introducing Harness Channels\",\"publishedAt\":\"2026-09-01\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Run a multi-player harness from Slack, iMessage, WhatsApp, Discord, and more.\"}},{\"slug\":\"introducing-token-limiting\",\"data\":{\"title\":\"Introducing Token Limiting for Mastra Agents\",\"publishedAt\":\"2026-08-28\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Real-time caps on context window and response lengths.\"}},{\"slug\":\"introducing-token-cost-control\",\"data\":{\"title\":\"Introducing Token Cost Control for Mastra Agents\",\"publishedAt\":\"2026-08-27\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Real-time spending caps configurable by thread, user, session, org, and more.\"}},{\"slug\":\"introducing-mastra-helm-chart\",\"data\":{\"title\":\"Introducing the Mastra Helm Chart for Self-Hosted Deployments\",\"publishedAt\":\"2026-08-26\",\"draft\":false,\"categories\":\"features\",\"author\":[\"Paul Scanlon\",\"Patrycja Jenkner-Sar\"],\"summary\":\"Kubernetes best practices for your self-hosted Mastra project.\"}},{\"slug\":\"introducing-skill-search-processor\",\"data\":{\"title\":\"Introducing Skill Search for Mastra Agents\",\"publishedAt\":\"2026-08-25\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Load agent skills on demand to reduce context bloat, token usage and cost.\"}},{\"slug\":\"introducing-tool-search-processor\",\"data\":{\"title\":\"Introducing Tool Search for Mastra Agents\",\"publishedAt\":\"2026-08-25\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Load agent tools on demand for sharper tool selection, lower token usage, and less cost.\"}},{\"slug\":\"introducing-multi-turn-evals\",\"data\":{\"title\":\"Introducing Multi-turn Evals for Mastra Agents\",\"publishedAt\":\"2026-08-24\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Assert multi-turn conversations using deterministic gates and LLM-as-judge scorers.\"}},{\"slug\":\"introducing-fine-grained-authorization\",\"data\":{\"title\":\"Introducing Fine-Grained Authorization for Mastra\",\"publishedAt\":\"2026-08-19\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Per-user, per-resource permissions for routes, agents, workflows, tools, memory, and MCP servers.\"}},{\"slug\":\"ai-sdk-v7-support\",\"data\":{\"title\":\"AI SDK v7 support in Mastra\",\"publishedAt\":\"2026-08-18\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Image generation, reasoning control, multimodal prompts, stream handlers, and UI helpers.\"}},{\"slug\":\"introducing-create-coding-agent-helper\",\"data\":{\"title\":\"Introducing Coding Agent Helper for Mastra\",\"publishedAt\":\"2026-08-17\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"A preconfigured coding agent with sandbox, task list, error retries, and a goal-judge built-in.\"}},{\"slug\":\"introducing-built-in-tools\",\"data\":{\"title\":\"Introducing Built-in Tools for Mastra Agents\",\"publishedAt\":\"2026-08-13\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Five ready-to-use tools for common agent tasks.\"}},{\"slug\":\"introducing-dynamic-workflows\",\"data\":{\"title\":\"Introducing Dynamic Workflows for Mastra\",\"publishedAt\":\"2026-08-12\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Add, update, and remove workflows from a running Mastra server — without touching the code.\"}},{\"slug\":\"introducing-imessage-support\",\"data\":{\"title\":\"Introducing iMessage Support for Mastra Agents\",\"publishedAt\":\"2026-08-11\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Let users chat to your agents using iMessage on iPhone, iPad, or Mac.\"}},{\"slug\":\"introducing-sensitive-data-redaction\",\"data\":{\"title\":\"Introducing Sensitive Data Redaction for Mastra Observability\",\"publishedAt\":\"2026-08-10\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Automatically redact sensitive customer information from agent traces.\"}},{\"slug\":\"introducing-ephemeral-sandbox-deploys\",\"data\":{\"title\":\"Introducing Ephemeral Sandbox Deployments for Mastra Server and Studio\",\"publishedAt\":\"2026-08-05\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Deploy your entire Mastra project to E2B, Daytona, or Vercel sandboxes.\"}},{\"slug\":\"introducing-feedback-and-feedback-analytics\",\"data\":{\"title\":\"Introducing Agent Feedback and Feedback Analytics\",\"publishedAt\":\"2026-08-04\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Capture human feedback for every agent response and query them by agent, source, or time.\"}},{\"slug\":\"introducing-managed-sandboxes-and-filesystems-for-mastra-platform\",\"data\":{\"title\":\"Introducing Managed Sandboxes and Filesystems for Mastra Platform\",\"publishedAt\":\"2026-08-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"You can now give every environment a persistent filesystem and secure sandboxes, provisioned and billed through the Mastra platform.\"}},{\"slug\":\"introducing-rubric-scorers-for-mastra-agents\",\"data\":{\"title\":\"Introducing Rubric Scorers for Mastra Agents\",\"publishedAt\":\"2026-07-28\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Evaluate agent output against a rubric of criteria.\"}},{\"slug\":\"announcing-mastra-factory\",\"data\":{\"title\":\"Announcing Mastra Factory\",\"publishedAt\":\"2026-07-27\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"From issue to production, run by agents.\"}},{\"slug\":\"announcing-trace-intelligence\",\"data\":{\"title\":\"Announcing Trace Intelligence\",\"publishedAt\":\"2026-07-27\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Group traces into clusters.\"}},{\"slug\":\"agent-memory-layers\",\"data\":{\"title\":\"AI Agent Memory: Persistence, Layers, and Tradeoffs\",\"publishedAt\":\"2026-07-25\",\"draft\":false,\"categories\":\"memory\",\"author\":\"Sam Bhagwat\",\"summary\":\"A definition of AI agent memory, including persistence, layers, and tradeoffs in Mastra.\"}},{\"slug\":\"best-ai-agent-integration-platforms\",\"data\":{\"title\":\"The 11 Best AI Agent Integration Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-25\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares eleven leading AI agent integration platforms, explains where each one excels, and helps you choose the right integration infrastru
182cture for your next AI application.\"}},{\"slug\":\"introducing-environments-for-mastra-platform\",\"data\":{\"title\":\"Introducing Environments for Mastra Platform\",\"publishedAt\":\"2026-07-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"You can now deploy the same project to production, staging, and preview environments each with its own URL, variables, and database.\"}},{\"slug\":\"introducing-eu-us-regions-for-mastra-platform\",\"data\":{\"title\":\"Introducing EU \u0026 US Regions for Mastra Platform\",\"publishedAt\":\"2026-07-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"You can now pin a deployment environment to a region and your server, hosted databases, and observability data all run there.\"}},{\"slug\":\"best-ai-agent-web-data-platforms\",\"data\":{\"title\":\"The 6 Best AI Agent Web Data Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-21\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares six leading web data platforms for AI agents, explains where each one excels, and helps you choose the right web retrieval infrastructure for your next AI application.\"}},{\"slug\":\"introducing-memory-extractors\",\"data\":{\"title\":\"Introducing Memory Extractors for Mastra Agents\",\"publishedAt\":\"2026-07-21\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Extract structured data from agent conversations.\"}},{\"slug\":\"best-ai-agent-frameworks\",\"data\":{\"title\":\"The 6 Best AI Agent Frameworks (July 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-18\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares six leading frameworks, explains where each one excels, and helps you choose the right foundation for your next AI application.\"}},{\"slug\":\"mastra-platform-pricing\",\"data\":{\"title\":\"How Mastra Platform Pricing Works\",\"publishedAt\":\"2026-07-17\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Joel Smith\",\"summary\":\"Starter is free and pay-as-you-go with monthly allowances. Teams adds larger allowances, lower usage rates, and production controls.\"}},{\"slug\":\"multi-agent-orchestration\",\"data\":{\"title\":\"Multi-agent orchestration and how it works\",\"publishedAt\":\"2026-07-17\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"What multi-agent orchestration is, the five workflows Anthropic names, and Mastra code examples for each, with an interactive explainer.\"}},{\"slug\":\"best-ai-agent-browser-platforms\",\"data\":{\"title\":\"The 6 Best AI Agent Browser Platforms (July 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares six leading browser platforms for AI agents, explains where each one excels, and helps you choose the right browser infrastructure for your next AI application.\"}},{\"slug\":\"software-factory\",\"data\":{\"title\":\"How to Build an AI Software Factory with AI Agents in TypeScript\",\"publishedAt\":\"2026-07-16\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"A governed, observable system where specialized agents own the repetitive work of software development, and humans own the judgment.\"}},{\"slug\":\"introducing-goals\",\"data\":{\"title\":\"Introducing Goals for Mastra Agents\",\"publishedAt\":\"2026-07-15\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Durable objectives for long-running agents with LLM-judged evaluations.\"}},{\"slug\":\"best-ai-agent-email-providers\",\"data\":{\"title\":\"The 8 Best AI Agent Email Providers (July 2026): Features, Tradeoffs, and Use Cases\",\"publishedAt\":\"2026-07-14\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"This guide compares eight leading AI agent email providers, explains where each one excels, and helps you choose the right email infrastru
182cture for your next AI application.\"}},{\"slug\":\"introducing-tool-hooks\",\"data\":{\"title\":\"Introducing Tool Hooks for Mastra Agents\",\"publishedAt\":\"2026-07-14\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Observe and control every tool call your agent makes.\"}},{\"slug\":\"introducing-gates-and-verdicts\",\"data\":{\"title\":\"Introducing Gates and Verdicts for Mastra Evals\",\"publishedAt\":\"2026-07-13\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Catch agent regressions and ship with more confidence.\"}},{\"slug\":\"what-is-llm-observability\",\"data\":{\"title\":\"What is LLM observability? A span-by-span breakdown\",\"publishedAt\":\"2026-07-10\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"LLM observability records what an agent did at the level of individual model calls and tool executions. This reads the trace of a live agent run span by span from storage, shows what a hallucination and a failed tool call look like, covers where the OpenTelemetry GenAI conventions stand in mid-2026, and walks the four dials that control tracing cost in production.\"}},{\"slug\":\"introducing-custom-signal-providers\",\"data\":{\"title\":\"Introducing Custom Signal Providers for Mastra Agents\",\"publishedAt\":\"2026-07-09\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Send notification signals to your agents from any external source.\"}},{\"slug\":\"introducing-schedules-for-agents-and-workflows\",\"data\":{\"title\":\"Introducing Schedules for Mastra Agents and Workflows\",\"publishedAt\":\"2026-07-08\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"A unified API for managing automated recurring tasks\"}},{\"slug\":\"introducing-first-class-skills\",\"data\":{\"title\":\"Introducing First-Class Skills for Mastra Agents\",\"publishedAt\":\"2026-07-07\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Attach skills directly to your agents.\"}},{\"slug\":\"introducing-file-based-agents\",\"data\":{\"title\":\"Introducing File-Based Agents for Mastra\",\"publishedAt\":\"2026-07-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Define your agents using folders and files.\"}},{\"slug\":\"introducing-browser-recording\",\"data\":{\"title\":\"Introducing Browser Recording for Mastra Agents\",\"publishedAt\":\"2026-07-02\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Record and replay your agent's browser sessions.\"}},{\"slug\":\"introducing-webhook-signal-provider\",\"data\":{\"title\":\"Introducing Webhook Signals for Mastra Agents\",\"publishedAt\":\"2026-07-01\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Your agents can now react to webhook events from GitHub, Slack, Stripe, or your own API.\"}},{\"slug\":\"build-claude-code-for-x-with-agentcontroller\",\"data\":{\"title\":\"Build Claude Code for X with Agent Controller\",\"publishedAt\":\"2026-06-30\",\"draft\":false,\"categories\":\"features\",\"author\":\"Alex Booker\",\"summary\":\"Build and control long-running agent experiences with sessions, modes, permissions, subagents.\"}},{\"slug\":\"what-are-durable-ai-agents\",\"data\":{\"title\":\"What are durable AI agents? How state persistence and checkpoints survive a restart\",\"publishedAt\":\"2026-06-30\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"A long-running agent is a durable record that short-lived processes take turns with. This walks through why a context window is not a persistence layer, the three granularities of persistence, how Mastra checkpoints a run to JSON and resumes it on a fresh machine, why a worker can't judge its own work, and the two kinds of state a durable agent has to keep.\"}},{\"slug\":\"mastra-archil-persistent-storage\",\"data\":{\"title\":\"Give a Mastra agent persistent file storage with Archil\",\"publishedAt\":\"2026-06-29\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"The @mastra/archil integration attaches an Archil disk to your agent's workspace — persistent file storage backed by your own S3 that an agent can read, write, run code on, search, and share, with files that outlive the run.\"}},{\"slug\":\"introducing-durable-agents\",\"data\":{\"title\":\"Introducing Durable Agents\",\"publishedAt\":\"2026-06-26\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Survive client disconnects, browser refreshes, or network blips with cacheable resumable streams.\"}},{\"slug\":\"introducing-mastras-event-system\",\"data\":{\"title\":\"Publish and Subscribe with Mastra's Built-In Event System\",\"publishedAt\":\"2026-06-25\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Send or receive events with Redis Streams and Google Cloud Pub/Sub.\"}},{\"slug\":\"introducing-notification-inbox\",\"data\":{\"title\":\"Your Mastra Agent Now Has an Inbox With Priority Notifications\",\"publishedAt\":\"2026-06-24\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Connect external sources like GitHub and Slack and trigger them to wake up your agent.\"}},{\"slug\":\"introducing-task-lists\",\"data\":{\"title\":\"Introducing Task Lists for Mastra Agents\",\"publishedAt\":\"2026-06-23\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Keep your agents on track through long-running, complex work.\"}},{\"slug\":\"introducing-deployable-templates\",\"data\":{\"title\":\"Introducing deployable templates in Mastra platform\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"Create and deploy a new Mastra project using pre-built templates.\"}},{\"slug\":\"upgraded-mastra-cli\",\"data\":{\"title\":\"Introducing Mastra CLI Actions for Claude Code, Cursor, and Codex\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Run, debug, and improve your Mastra agents from the terminal.\"}},{\"slug\":\"what-is-agent-to-agent-protocol\",\"data\":{\"title\":\"What is the Agent2Agent (A2A) protocol? How AI agents delegate work\",\"publishedAt\":\"2026-06-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"A2A is a shared standard for one agent to hand work to another on a remote server. This walks through its five-object data model, the agent card, the eight task states, the three ways to watch a task, how trust is decided before work is sent, and how Mastra implements both sides on the official @a2a-js/sdk.\"}},{\"slug\":\"introducing-auto-deployment-platform\",\"data\":{\"title\":\"Introducing auto-deployment in Mastra platform\",\"publishedAt\":\"2026-06-19\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"Create and deploy your Mastra platform project from GitHub\"}},{\"slug\":\"mastra-inworld-realtime-voice\",\"data\":{\"title\":\"Add realtime voice to your Mastra agents with Inworld\",\"publishedAt\":\"2026-06-19\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"Inworld's Realtime API now plugs into Mastra via @mastra/voice-inworld-realtime — one WebSocket session gives your agent speech in/out, semantic turn detection, barge-in, and tool calling, attached to the agent you already have.\"}},{\"slug\":\"announcing-agent-harness\",\"data\":{\"title\":\"Announcing Mastra Harness\",\"publishedAt\":\"2026-06-18\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Build interactive AI agents with multiple modes, persistent threads, tool approval, and model switching.\"}},{\"slug\":\"introducing-managed-databases\",\"data\":{\"title\":\"Introducing Managed Databases for Mastra Projects\",\"publishedAt\":\"2026-06-16\",\"draft\":false,\"categories\":\"features\",\"author\":\"Joel Smith\",\"summary\":\"Provision a database for your Mastra project in seconds.\"}},{\"slug\":\"mastra-web-access-bright-data\",\"data\":{\"title\":\"Giving a Mastra agent web access with Bright Data\",\"publishedAt\":\"2026-06-16\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"How a Mastra agent uses Bright Data's webSearch and webFetch in its reasoning loop — what comes back from each tool, why memory turns search into research, and when to choose the typed @mastra/brightdata tools over the Web MCP.\"}},{\"slug\":\"introducing-sdk-subagents\",\"data\":{\"title\":\"Introducing Claude Code, Cursor, and Codex agents in Mastra\",\"publishedAt\":\"2026-06-15\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Build your own coding agents using Claude, Cursor, or OpenAI's agent SDKs.\"}},{\"slug\":\"product-agents-we-built-at-mastra\",\"data\":{\"title\":\"Product Agents We Built at Mastra\",\"publishedAt\":\"2026-06-11\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Michael Litchev\",\"summary\":\"Internal agents help us keep information out of silos, automate work in public, and scale how we listen to users.\"}},{\"slug\":\"introducing-code-mode\",\"data\":{\"title\":\"Introducing Code Mode for Mastra Agents\",\"publishedAt\":\"2026-06-09\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\" Your agents can now run multi-tool computations with more accurate results.\"}},{\"slug\":\"anatomy-of-a-coding-agent\",\"data\":{\"title\":\"Anatomy of a harness: building a coding agent that can run for hours\",\"publishedAt\":\"2026-06-05\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"How Mastra Code's harness wraps the agent loop: conversation-as-channel, event-to-display-state translation, human-in-the-loop tools, observational memory, subagents, modes, and an ordered tool-approval chain.\"}},{\"slug\":\"announcing-agent-signals\",\"data\":{\"title\":\"Announcing Agent Signals\",\"publishedAt\":\"2026-06-03\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Tyler Barnes\",\"summary\":\"A context engineering primitive for interacting with running agents.\"}},{\"slug\":\"building-low-latency-agents\",\"data\":{\"title\":\"Building Low-Latency Agents That Help Humans Respond on Live Calls\",\"publishedAt\":\"2026-06-02\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"The engineering and context principles Micro uses to deliver sub-3s answers on live calls with Mastra.\"}},{\"slug\":\"introducing-agent-client-protocol\",\"data\":{\"title\":\"Introducing Agent Client Protocol Support for Mastra Agents\",\"publishedAt\":\"2026-06-02\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Delegate coding tasks to Claude Agent, Codex CLI, Cursor, or any ACP-compatible harness.\"}},{\"slug\":\"building-multi-user-multi-channel-agents\",\"data\":{\"title\":\"The Rise of Multi-User, Multi-Channel Agents\",\"publishedAt\":\"2026-05-29\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"A look at how Mastra solves the multi-user agent problem: concurrency, memory scoping, tool approval, and per-thread sandboxes.\"}},{\"slug\":\"announcing-agent-builder\",\"data\":{\"title\":\"Announcing Agent Builder\",\"publishedAt\":\"2026-05-28\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Your internal agent platform.\"}}
182,{\"slug\":\"mastra-workflows-enhanced\",\"data\":{\"title\":\"Mastra Workflows, Enhanced\",\"publishedAt\":\"2026-05-27\",\"draft\":false,\"categories\":\"features\",\"author\":\"Brandon Barros\",\"summary\":\"Mastra's new Temporal integration brings durable execution, advanced retries, and richer observability to your workflows.\"}},{\"slug\":\"build-rag-agent-mastra-elasticsearch\",\"data\":{\"title\":\"Build a RAG agent with Mastra and Elasticsearch\",\"publishedAt\":\"2026-05-26\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"How Elastic's reference build wires Mastra's agent, tool, and memory primitives onto Elasticsearch's vector store to answer questions over a corpus of 500 sci-fi movies.\"}},{\"slug\":\"introducing-agent-to-agent-support\",\"data\":{\"title\":\"Introducing Agent-to-Agent support for Mastra\",\"publishedAt\":\"2026-05-19\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Build cross-framework multi-agent systems with A2A-enabled agents.\"}},{\"slug\":\"introducing-response-caching\",\"data\":{\"title\":\"Introducing Response Caching for Mastra Agents\",\"publishedAt\":\"2026-05-15\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"You can now cut costs and reduce latency with cached responses.\"}},{\"slug\":\"announcing-mastra-observability\",\"data\":{\"title\":\"Announcing Mastra Observability\",\"publishedAt\":\"2026-05-13\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Production observability for every Mastra project.\"}},{\"slug\":\"introducing-temporal-workflows\",\"data\":{\"title\":\"Introducing Temporal Support for Mastra Workflows\",\"publishedAt\":\"2026-05-12\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Your workflows can now run on Temporal with durable, fault-tolerant execution.\"}},{\"slug\":\"voice-agent-render-assemblyai\",\"data\":{\"title\":\"Building a voice research agent with Mastra, Render, and AssemblyAI\",\"publishedAt\":\"2026-05-08\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"How ravendr — Render and AssemblyAI's reference voice research agent — combines the AssemblyAI Voice Agent API, Render Workflows, and per-stage Mastra agents to answer in under 60 seconds without dead air.\"}},{\"slug\":\"best-ai-workflow-automation-tools-2026\",\"data\":{\"title\":\"7 Best AI Workflow Automation Tools in 2026\",\"publishedAt\":\"2026-05-07\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Hashim Warren\",\"summary\":\"Compare the best AI workflow automation tools in 2026, from developer-native frameworks like Mastra to no-code platforms like Gumloop, and more.\"}},{\"slug\":\"introducing-background-tasks\",\"data\":{\"title\":\"Introducing Background Tasks for Mastra Agents\",\"publishedAt\":\"2026-05-07\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Your agents can now stream progress feedback during long-running tool calls.\"}},{\"slug\":\"introducing-clickhouse-support\",\"data\":{\"title\":\"Introducing ClickHouse Support for Mastra Observability\",\"publishedAt\":\"2026-05-05\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Make your Mastra application production-ready with observability storage that scales.\"}},{\"slug\":\"introducing-remote-filesystems\",\"data\":{\"title\":\"Introducing Remote Filesystems for Mastra Workspaces\",\"publishedAt\":\"2026-04-29\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Your agents can now work with remote filesystems like S3, GCS, and Azure.\"}},{\"slug\":\"introducing-channels\",\"data\":{\"title\":\"Introducing Channels for Mastra Agents\",\"publishedAt\":\"2026-04-28\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Give users access to your agent from Slack, Discord, Telegram, and more.\"}}
182,{\"slug\":\"lsp-inspection-for-mastra-workspaces\",\"data\":{\"title\":\"LSP Inspection for Mastra Workspaces\",\"publishedAt\":\"2026-04-27\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Give agents semantic understanding of your codebase.\"}},{\"slug\":\"introducing-browser-support\",\"data\":{\"title\":\"Introducing Browser Support for Mastra Agents\",\"publishedAt\":\"2026-04-24\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Your agents can now browse and take actions on the web, just like you.\"}},{\"slug\":\"build-agents-mastra-mongodb\",\"data\":{\"title\":\"Build Agents with Retrieval and Long-Term Memory Using Mastra and MongoDB\",\"publishedAt\":\"2026-04-23\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ashwin Mudaliar\",\"summary\":\"A tutorial on building a movie recommendation agent with vector search and Observational Memory — all on a single MongoDB Atlas cluster.\"}},{\"slug\":\"agent-prototype-playbook\",\"data\":{\"title\":\"The Agent Prototype Playbook\",\"publishedAt\":\"2026-04-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Brandon Barros\",\"summary\":\"A 7-step playbook for scoping, building, and shipping AI agent prototypes.\"}},{\"slug\":\"deployment-models\",\"data\":{\"title\":\"Choosing the Right Deployment Model for Your Mastra Application\",\"publishedAt\":\"2026-04-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Brandon Barros\",\"summary\":\"A guide to the different deployment models for Mastra Server and Studio with real-world examples of each.\"}},{\"slug\":\"best-personal-ai-assistants-in-2026\",\"data\":{\"title\":\"The Best AI Personal Assistants of 2026\",\"publishedAt\":\"2026-04-10\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Hashim Warren\",\"summary\":\"The top AI personal assistants in 2026 are moving beyond chat into real execution, from Lindy's cross-app workflows to Vellum's long-term memory.\"}},{\"slug\":\"announcing-mastra-platform\",\"data\":{\"title\":\"Announcing Mastra Platform\",\"publishedAt\":\"2026-04-09\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Studio, Server, and Memory Gateway. Everything you need to run your agents at scale.\"}},{\"slug\":\"series-a\",\"data\":{\"title\":\"We raised a $22M Series A to help every developer build agents\",\"publishedAt\":\"2026-04-09\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra raises a $22M Series A led by Spark Capital, bringing total funding to $35M. Plus: the Mastra platform launches today.\"}},{\"slug\":\"introducing-agent-editor\",\"data\":{\"title\":\"Introducing Agent Editor\",\"publishedAt\":\"2026-04-08\",\"draft\":false,\"categories\":\"features\",\"author\":\"Daniel Lew\",\"summary\":\"Edit agent instructions, tools, and display conditions from Studio with draft/publish versioning, or programmatically through the editor API.\"}},{\"slug\":\"introducing-studio-metrics\",\"data\":{\"title\":\"Introducing Metrics and Logs\",\"publishedAt\":\"2026-04-01\",\"draft\":false,\"categories\":\"features\",\"author\":\"Eric Pinzur\",\"summary\":\"Mastra Studio now supports logs, traces, and metrics, so you can understand how your agents behave in production.\"}},{\"slug\":\"changelog-2026-03-23\",\"data\":{\"title\":\"Mastra Changelog 2026-03-23\",\"publishedAt\":\"2026-03-23\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Token-aware model routing for observational memory, MongoDB-backed versioned datasets and experiments, Okta SSO auth with RBAC, workflow upgrades, tool suspension handling, and observability improvements.\"}},{\"slug\":\"changelog-2026-03-17\",\"data\":{\"title\":\"Mastra Changelog 2026-03-17\",\"publishedAt\":\"2026-03-17\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"AI Gateway tool support in the agentic loop, more reliable observational memory, MCP client diagnostics and per-server control, and improved tracing with spanId, working memory and schema fixes.\"}},{\"slug\":\"introducing-studio-auth\",\"data\":{\"title\":\"Introducing Studio Auth: Secure, Team-Friendly Access for Deployed Mastra Studios\",\"publishedAt\":\"2026-03-17\",\"draft\":false,\"categories\":\"features\",\"author\":\"Ryan Hansen\",\"summary\":\"Secure your deployed Mastra Studio with login screens, third-party identity providers, and role-based permissions.\"}},{\"slug\":\"changelog-2026-03-13\",\"data\":{\"title\":\"Mastra Changelog 2026-03-13\",\"publishedAt\":\"2026-03-13\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Persistent agent workspace filesystem, observability pipeline upgrades, type-safe server route inference, lower token costs for long-running Observational Memory, and breaking changes to metrics, scores, and ObservabilityBus configuration\"}},{\"slug\":\"changelog-2026-03-12\",\"data\":{\"title\":\"Mastra Changelog 2026-03-12\",\"publishedAt\":\"2026-03-12\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Cloudflare Durable Objects storage adapter,improved observability for MCP tooling, more reliable agent loops and token budgeting, sandbox and workspace extensibility via provider-specific getters and string PIDs\"}},{\"slug\":\"changelog-2026-03-16\",\"data\":{\"title\":\"Mastra Changelog 2026-03-11\",\"publishedAt\":\"2026-03-11\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Dynamic model fallback arrays, Standard Schema normalization with Zod v4 compatibility, customizable request validation for server adapters, and end-to-e
182nd RequestContext support for tracing and datasets/experiments.\"}},{\"slug\":\"introducing-remote-sandboxes\",\"data\":{\"title\":\"Safely Execute Untrusted Code with Remote Sandboxes\",\"publishedAt\":\"2026-03-11\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Three new sandbox providers for safely running agent code in isolated cloud containers.\"}},{\"slug\":\"changelog-2026-03-05\",\"data\":{\"title\":\"Mastra Changelog 2026-03-05\",\"publishedAt\":\"2026-03-05\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Improve tool-call accuracy, MCP fetch hooks receive RequestContext, and reliability updates surface streaming errors, preserve history in stateless tool runs, and clean up orphaned vector embeddings.\"}},{\"slug\":\"changelog-2026-03-04\",\"data\":{\"title\":\"Mastra Changelog 2026-03-04\",\"publishedAt\":\"2026-03-04\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Token-aware workspace output, smarter truncation, LSP resolution, sandbox process control, end-to-end auth and RBAC, workflow path tracking, concurrent-safe snapshots, and harness.sendMessage() file support.\"}},{\"slug\":\"build-your-first-agent-course\",\"data\":{\"title\":\"Introducing Our New Course: Build Your First Agent in TypeScript\",\"publishedAt\":\"2026-03-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Guil Hernandez\",\"summary\":\"A new video course designed to get you from zero to deploying your first agent in under two hours.\"}},{\"slug\":\"mastra-experiments\",\"data\":{\"title\":\"Change, Run, and Compare with Experiments in Mastra Studio\",\"publishedAt\":\"2026-03-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Yujohn Nattrass\",\"summary\":\"Run test cases against agents and workflows, score the results, and track quality over time.\"}},{\"slug\":\"changelog-2026-02-26\",\"data\":{\"title\":\"Mastra Changelog 2026-02-26\",\"publishedAt\":\"2026-02-26\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Supervisor pattern for multi-agent coordination, metadata-only vector queries, more flexible runEvals options, LSP diagnostics after workspace edits, and a new Blaxel sandbox provider.\"}},{\"slug\":\"announcing-mastra-code\",\"data\":{\"title\":\"Announcing Mastra Code: A coding agent that never compacts\",\"publishedAt\":\"2026-02-24\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Tyler Barnes\",\"summary\":\"An open-source TUI coding agent with observational memory that compresses context without losing it.\"}},{\"slug\":\"changelog-2026-02-24\",\"data\":{\"title\":\"Mastra Changelog 2026-02-24\",\"publishedAt\":\"2026-02-24\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Background process management in workspaces and sandboxes, runtime tool configuration via Workspace.setToolsConfig(), and observational memory reliability and introspection improvements.\"}},{\"slug\":\"changelog-2026-02-23\",\"data\":{\"title\":\"Mastra Changelog 2026-02-23\",\"publishedAt\":\"2026-02-23\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"AST-based workspace edits, real-time streaming tool argument previews, built-in task tracking tools for Harness, and improved Observational Memory continuity\"}},{\"slug\":\"changelog-2026-02-19\",\"data\":{\"title\":\"Mastra Changelog 2026-02-19\",\"publishedAt\":\"2026-02-19\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"A new reusable Harness orchestration layer for agent apps, versioned workspaces and skills, pluggable blob storage, security and discovery upgrades, plus improved tool I/O and streaming behavior, including better chunk handling.\"}},{\"slug\":\"introducing-datasets\",\"data\":{\"title\":\"Introducing Datasets in Mastra Studio\",\"publishedAt\":\"2026-02-19\",\"draft\":false,\"categories\":\"features\",\"author\":\"Yujohn Nattrass\",\"summary\":\"Define test cases, run experiments, and track response quality for every change you make.\"}}
182,{\"slug\":\"how-to-structure-projects-for-ai-agents-and-llms\",\"data\":{\"title\":\"How to Structure Projects for AI Agents and LLMs\",\"publishedAt\":\"2026-02-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Lennart Jörgens\",\"summary\":\"Learn how Mastra is optimized for modern AI systems, and how to implement a similar approach.\"}},{\"slug\":\"changelog-2026-02-13\",\"data\":{\"title\":\"Mastra Changelog 2026-02-13\",\"publishedAt\":\"2026-02-13\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Datasets and experiments for evaluations, workspace and filesystem lifecycle improvements with safer introspection, and workflow foreach progress streaming.\"}},{\"slug\":\"changelog-2026-02-011\",\"data\":{\"title\":\"Mastra Changelog 2026-02-11\",\"publishedAt\":\"2026-02-11\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Observational memory async buffering (default-on) with new structured streaming events, workspace mounts with CompositeFilesystem for unified multi-provider file access.\"}},{\"slug\":\"changelog-2026-02-11\",\"data\":{\"title\":\"Mastra Changelog 2026-02-11\",\"publishedAt\":\"2026-02-11\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Observational memory async buffering (default-on) with new structured streaming events, workspace mounts with CompositeFilesystem for unified multi-provider file access.\"}},{\"slug\":\"observational-memory\",\"data\":{\"title\":\"Announcing Observational Memory\",\"publishedAt\":\"2026-02-09\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Tyler Barnes\",\"summary\":\"A human-inspired memory system that scores ~95% on LongMemEval — with a completely stable context window.\"}},{\"slug\":\"introducing-mastra-skills\",\"data\":{\"title\":\"Introducing Mastra Skills\",\"publishedAt\":\"2026-02-05\",\"draft\":false,\"categories\":\"features\",\"author\":\"Lennart Jörgens\",\"summary\":\"Mastra Skills teach coding agents about Mastra through structured knowledge files, giving any compatible agent the context it needs to help you build.\"}},{\"slug\":\"introducing-mastra-workspaces\",\"data\":{\"title\":\"Introducing Workspaces: Safe, Controlled Environments for Mastra Agents\",\"publishedAt\":\"2026-02-05\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"File access, command execution, and reusable skills for agents that actually get things done.\"}},{\"slug\":\"changelog-2026-02-04\",\"data\":{\"title\":\"Mastra Changelog 2026-02-04\",\"publishedAt\":\"2026-02-04\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Observational Memory, skills.sh integrations, plus improved tracing and safer error handling.\"}},{\"slug\":\"hitl-where-to-put-approval-in-agents-and-workflows\",\"data\":{\"title\":\"Human-in-the-Loop: Where to Put Approval in Agents and Workflows\",\"publishedAt\":\"2026-02-04\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Paul Scanlon\",\"summary\":\"Agents can pause before tool calls. Workflows can suspend at steps. But when they're working together, where's the right place for a human-in-the-loop?\"}},{\"slug\":\"changelog-2026-01-30\",\"data\":{\"title\":\"Mastra Changelog 2026-01-30\",\"publishedAt\":\"2026-01-30\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Unified Workspace API, observability and server adapters improvements.\"}},{\"slug\":\"human-in-the-loop-when-to-use-agent-approval\",\"data\":{\"title\":\"Human-in-the-Loop: When to Use Agent Approval\",\"publishedAt\":\"2026-01-28\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Paul Scanlon\",\"summary\":\"When should an agent ask for permission? How to think about approval, suspension, and the trust spectrum in your agent design.\"}},{\"slug\":\"announcing-mastra-1\",\"data\":{\"title\":\"Announcing Mastra 1.0!\",\"publishedAt\":\"2026-01-20\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"APIs are locked, server adapters are the new default, and we've shipped thread cloning, composite storage, AI SDK v6 support, and more.\"}},{\"slug\":\"changelog-2026-01-20\",\"data\":{\"title\":\"Mastra Changelog 2026-01-20\",\"publishedAt\":\"2026-01-20\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Server adapters, composite storage, processor system overhaul, AI SDK v6 support, thread cloning, and more.\"}},{\"slug\":\"composite-storage-with-mastra-storage\",\"data\":{\"title\":\"Composite Storage: Optimize for Performance, Scale, and Cost with MastraCompositeStore\",\"publishedAt\":\"2026-01-14\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Paul Scanlon\",\"summary\":\"You can now use multiple storage providers in a single Mastra project, all configured from one place.\"}},{\"slug\":\"automating-multi-language-pr-descriptions-in-github-actions\",\"data\":{\"title\":\"Automating multi-language PR descriptions in GitHub Actions\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build a GitHub Action that uses Mastra to read pull request diffs and generate multi-language PR descriptions.\"}},{\"slug\":\"build-a-research-coordinator-with-supervisor-agents\",\"data\":{\"title\":\"Build a research coordinator with supervisor agents\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build a research coordinator that orchestrates specialized agents to research topics and produce detailed reports.\"}},{\"slug\":\"building-a-code-review-bot\",\"data\":{\"title\":\"Building a code review bot\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build an automated code review bot that uses workspace skills to apply coding standards and provide PR feedback.\"}},{\"slug\":\"building-a-coding-agent\",\"data\":{\"title\":\"Building a coding agent\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build and run an interactive coding agent with tool approvals, persistent sessions, and a terminal UI.\"}},{\"slug\":\"building-a-dev-assistant\",\"data\":{\"title\":\"Building a dev assistant\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build a development assistant that uses workspace filesystems, sandboxes, skills, and search to write and test code.\"}},{\"slug\":\"building-a-docs-manager\",\"data\":{\"title\":\"Building a docs manager\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build an AI documentation manager that creates, updates, and organizes Markdown files with a workspace filesystem.\"}},{\"slug\":\"building-a-notes-mcp-server\",\"data\":{\"title\":\"Building a notes MCP server\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build an MCP server that lets clients list, read, write, and summarize a collection of Markdown notes.\"}},{\"slug\":\"building-a-research-paper-assistant-with-rag\",\"data\":{\"title\":\"Building a research paper assistant with RAG\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build an AI research assistant that analyzes academic papers and answers questions using retrieval-augmented generation.\"}},{\"slug\":\"building-a-signal-provider\",\"data\":{\"title\":\"Building a signal provider\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build a polling signal provider that watches an external service and pushes notifications into an agent thread.\"}},{\"slug\":\"building-an-ai-recruiter\",\"data\":{\"title\":\"Building an AI recruiter\",\"publishedAt\":\"2026-01-01\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Mastra\",\"summary\":\"Build a recruiter workflow in Mastra that gathers candidate information, branches on candidate profiles, and generates follow-up questions.\"}}
182,{\"slug\":\"mastra-server-adapters\",\"data\":{\"title\":\"Introducing Server Adapters: Run Mastra Inside Your Existing Express or Hono App\",\"publishedAt\":\"2025-12-11\",\"draft\":false,\"categories\":\"features\",\"author\":\"Paul Scanlon\",\"summary\":\"Mastra’s new Server Adapters automatically expose your agents, workflows, tools, and MCP servers as HTTP endpoints on the server you’re already running.\"}},{\"slug\":\"changelog-2025-11-20\",\"data\":{\"title\":\"Mastra Changelog 2025-11-20\",\"publishedAt\":\"2025-11-20\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Generate endpoint fix for OpenAI streaming, AI SDK v5 fine-grained stream control, and more.\"}},{\"slug\":\"aiuidojo\",\"data\":{\"title\":\"Mastra UI Dojo: Choose your frontend\",\"publishedAt\":\"2025-11-14\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"We have a new UI dojo. It's a collection of working examples showing Mastra agents integrated with the most popular AI UI frameworks. Try it out at ui-dojo.mastra.ai.\"}},{\"slug\":\"changelog-2025-11-14\",\"data\":{\"title\":\"Mastra Changelog 2025-11-14\",\"publishedAt\":\"2025-11-14\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra v1 is now in beta, we published a new book, and shipped the Mastra UI Dojo.\"}},{\"slug\":\"rebrand\",\"data\":{\"title\":\"Announcing our new logo and brand\",\"publishedAt\":\"2025-11-13\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"We're excited to announce the launch of our new logo and brand for Mastra. We believe developers deserve beautiful tools that match the sophistication and dynamism of the systems they're building.\"}},{\"slug\":\"patterns-book\",\"data\":{\"title\":\"Announcing our second book: Patterns for Building AI Agents\",\"publishedAt\":\"2025-11-12\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"We're excited to announce the release of our new book: Patterns for Building AI Agents. This book helps you take your agents from prototype to production.\"}},{\"slug\":\"mastrav1\",\"data\":{\"title\":\"Announcing Mastra v1 beta\",\"publishedAt\":\"2025-11-06\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra v1 is now in beta, marking the production-ready release of the leading TypeScript framework for AI agents, trusted by top global companies.\"}},{\"slug\":\"changelog-2025-11-01\",\"data\":{\"title\":\"Mastra Changelog 2025-11-01\",\"publishedAt\":\"2025-11-01\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Agent Studio, 1.0 Release Preparation, and more.\"}},{\"slug\":\"agent-studio\",\"data\":{\"title\":\"Introducing Mastra’s Agent Studio\",\"publishedAt\":\"2025-10-30\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"We've renamed Playground to Studio and it's now shareable with your team.\"}},{\"slug\":\"tool-approval\",\"data\":{\"title\":\"HITL: Ask Before Acting\",\"publishedAt\":\"2025-10-28\",\"draft\":false,\"categories\":\"features\",\"author\":\"Shane Thomas\",\"summary\":\"Learn how to use HITL (Human-in-the-Loop) to safely build tools that require human approval.\"}},{\"slug\":\"changelog-2025-10-23\",\"data\":{\"title\":\"Mastra Changelog 2025-10-23\",\"publishedAt\":\"2025-10-23\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Workflow state management, unified streaming, AI tracing updates, and more..\"}},{\"slug\":\"resumeworkflows\",\"data\":{\"title\":\"You can suspend/resume workflows in playground\",\"publishedAt\":\"2025-10-22\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra workflows now support suspend and resume in Playground. You can also use the new resumeStream API to close streams on suspend and resume them later.\"}},{\"slug\":\"state\",\"data\":{\"title\":\"Workflow State: Share Data Across Steps\",\"publishedAt\":\"2025-10-22\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"Workflow state lets you share values across steps without threading them through every `inputSchema` and `outputSc
182hema`.\"}},{\"slug\":\"agent-network\",\"data\":{\"title\":\"The evolution of AgentNetwork\",\"publishedAt\":\"2025-10-10\",\"draft\":false,\"categories\":\"features\",\"author\":\"Abhi Aiyer\",\"summary\":\"We've unified multi-agent coordination under a new .network() primitive—read about our journey, the experiments, and how you can use it to orchestrate collaborative agents simply.\"}},{\"slug\":\"model-router\",\"data\":{\"title\":\"Introducing Mastra Model Router: 600+ models, one API, zero package installs\",\"publishedAt\":\"2025-10-09\",\"draft\":false,\"categories\":\"features\",\"author\":\"Tyler Barnes\",\"summary\":\"Access 600+ LLM models from 40+ providers with a single string. Full TypeScript autocomplete turns your IDE into a model search engine.\"}},{\"slug\":\"seed-round\",\"data\":{\"title\":\"Announcing our $13m seed round from YC, pg, Gradient, Amjad, Guillermo, Balaji, and 120+ others\",\"publishedAt\":\"2025-10-08\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra secures $13m from a coalition of legendary investors to fuel AI agent development and production.\"}},{\"slug\":\"migration-guide-streaming\",\"data\":{\"title\":\"Migration Guide: VNext to Standard APIs\",\"publishedAt\":\"2025-10-06\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"Learn how to migrate from Mastra’s VNext streaming methods to the new standard APIs, with details on renaming, compatibility, and key differences between AI SDK v4 and v5.\"}},{\"slug\":\"changelog-2025-10-03\",\"data\":{\"title\":\"Mastra Changelog 2025-10-03\",\"publishedAt\":\"2025-10-03\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"New model router and automatic model fallbacks.\"}},{\"slug\":\"model-fallback\",\"data\":{\"title\":\"Model fallbacks: Your safety net for production AI\",\"publishedAt\":\"2025-10-01\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Model fallbacks ensure your application stays online by automatically switching to backup models when your primary provider fails.\"}},{\"slug\":\"aitracing\",\"data\":{\"title\":\"Mastra now supports AI Tracing\",\"publishedAt\":\"2025-09-30\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra introduces AI Tracing: filter out noise and use multiple observability platforms.\"}},{\"slug\":\"mergetemplates\",\"data\":{\"title\":\"Adding agent templates into existing projects\",\"publishedAt\":\"2025-09-26\",\"draft\":false,\"categories\":\"features\",\"author\":\"Nik Aiyer\",\"summary\":\"You can now easily merge Mastra agent templates into your existing projects with just a few clicks.\"}},{\"slug\":\"changelog-2025-09-25\",\"data\":{\"title\":\"Mastra Changelog 2025-09-25\",\"publishedAt\":\"2025-09-25\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"New streaming architecture, scoring improvements, and more.\"}},{\"slug\":\"mastra-streaming\",\"data\":{\"title\":\"The next evolution of Mastra streaming\",\"publishedAt\":\"2025-09-25\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"We're making our new streaming architecture the default experience starting from `@mastra/core v0.19.0.`\"}},{\"slug\":\"changelog-2025-09-18\",\"data\":{\"title\":\"Mastra Changelog 2025-09-18\",\"publishedAt\":\"2025-09-18\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Resumable streams, structured output API change, bundling overhaul, and more.\"}},{\"slug\":\"copilotkitmastra\",\"data\":{\"title\":\"Building agentic copilots with CopilotKit and Mastra\",\"publishedAt\":\"2025-09-18\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"Learn how to build interactive, real-time agentic apps using CopilotKit as a frontend for Mastra agents.\"}},{\"slug\":\"introducing-output-processors\",\"data\":{\"title\":\"Introducing Output Processors\",\"publishedAt\":\"2025-09-16\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Introducing output processors: the gatekeepers that sit between your language model's response and your users.\"}},{\"slug\":\"changelog-2025-09-08\",\"data\":{\"title\":\"Mastra Changelog 2025-09-08\",\"publishedAt\":\"2025-09-08\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Zod v4 support with v3 compatibility and more.\"}},{\"slug\":\"introducing-cloneable-scorers\",\"data\":{\"title\":\"Introducing Cloneable Scorers\",\"publishedAt\":\"2025-09-05\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Cloneable scorers let you copy, customize, and extend Mastra’s evals into your project.\"}},{\"slug\":\"introducing-mastra-improved-agent-orchestration-ai-sdk-v5-support\",\"data\":{\"title\":\"Introducing Mastra's improved agent orchestration with AI SDK v5 support\",\"publishedAt\":\"2025-08-26\",\"draft\":false,\"categories\":[\"features\",\"foundations\"],\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra now controls the agent loop and tool calling with increased orchestration capabilities—while maintaining backward compatibility with AI SDK v4 and v5.\"}},{\"slug\":\"changelog-2025-08-21\",\"data\":{\"title\":\"Mastra Changelog 2025-08-21\",\"publishedAt\":\"2025-08-21\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"New streamVNext and generateVNext methods with AI SDK v5 support, output processors, and more.\"}},{\"slug\":\"hackathon-winners-community-templates\",\"data\":{\"title\":\"MASTRA.BUILD Templates Hackathon Winners \u0026 Community Templates Library\",\"publishedAt\":\"2025-08-19\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Shane Thomas\",\"summary\":\"Celebrating the winners of our MASTRA.BUILD templates hackathon and launching our new community templates library\"}},{\"slug\":\"changelog-2025-08-14\",\"data\":{\"title\":\"Mastra Changelog 2025-08-14\",\"publishedAt\":\"2025-08-14\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"This week we've shipped a major RAG enhancement with semantic markdown chunking and updated our A2A implementation to spec v0.3.0.\"}},{\"slug\":\"changelog-2025-08-08\",\"data\":{\"title\":\"Mastra Changelog 2025-08-08\",\"publishedAt\":\"2025-08-08\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Introducing Scorer API, critical fixes for message handling and parallel workflows, plus improvements to memory filtering and type safety across the board. Plus, we're announcing our first ever conference: TypeScript AI\"}},{\"slug\":\"mastra-scorers\",\"data\":{\"title\":\"Introducing Scorers in Mastra\",\"publishedAt\":\"2025-08-06\",\"draft\":false,\"categories\":\"features\",\"author\":\"Yujohn Nattrass\",\"summary\":\"We're excited to announce the release of scorers in Mastra, a new way to evaluate and rank the quality of your agent's responses.\"}},{\"slug\":\"building-fast-reliable-input-processors\",\"data\":{\"title\":\"Building low-latency guardrails to secure your agents\",\"publishedAt\":\"2025-07-30\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Daniel Lew\",\"summary\":\"How we built a suite of out-of-the-box input processors and optimized them from 5000ms to under 500ms per request.\"}},{\"slug\":\"changelog-2025-07-30\",\"data\":{\"title\":\"Mastra Changelog 2025-07-30\",\"publishedAt\":\"2025-07-30\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Improvements to Agents, Memory, and more.\"}},{\"slug\":\"nested-streaming-support\",\"data\":{\"title\":\"Nested streaming support in Mastra\",\"publishedAt\":\"2025-07-25\",\"draft\":false,\"categories\":\"features\",\"author\":\"Ward Peeters\",\"summary\":\"Mastra's nested streaming support provides real-time visibility into agent and workflow execution, with comprehensive cost tracking and a unified messaging interfaces.\"}},{\"slug\":\"changelog-2025-07-24\",\"data\":{\"title\":\"Mastra Changelog 2025-07-24\",\"publishedAt\":\"2025-07-24\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Introducing Mastra Templates, MASTRA.BUILD hackathon, StreamVNext protocol, complete eval scores system, and major improvements across the board.\"}},{\"slug\":\"templates\",\"data\":{\"title\":\"Introducing Mastra Templates\",\"publishedAt\":\"2025-07-23\",\"draft\":false,\"categories\":\"features\",\"author\":\"Shane Thomas\",\"summary\":\"Announcing Mastra Templates: pre-built, production-ready, customizable agent and workflow projects. Plus: join our MASTRA.BUILD hackathon to create and showcase your own templates.\"}},{\"slug\":\"changelog-2025-07-17\",\"data\":{\"title\":\"Mastra Changelog 2025-07-17\",\"publishedAt\":\"2025-07-17\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"New memory improvements, new CLI templates, reasoning display in playground, and major improvements across the board.\"}},{\"slug\":\"use-rag-for-agent-memory\",\"data\":{\"title\":\"Yes, you can use RAG for agent memory\",\"publishedAt\":\"2025-07-17\",\"draft\":false,\"categories\":\"memory\",\"author\":\"Tyler Barnes\",\"summary\":\"How we spent $8k to prove RAG isn’t dead\"}},{\"slug\":\"apache-license\",\"data\":{\"title\":\"Mastra is now Apache 2.0 licensed!\",\"publishedAt\":\"2025-07-09\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra is now licensed under Apache 2.0, making it easier for everyone to use, modify, and contribute.\"}},{\"slug\":\"changelog-2025-07-09\",\"data\":{\"title\":\"Mastra Changelog 2025-07-09\",\"publishedAt\":\"2025-07-09\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra is now Apache-2.0 licensed, Playground goes multi-modal, new memory and RAG features, and more.\"}},{\"slug\":\"changelog-2025-07-03\",\"data\":{\"title\":\"Mastra Changelog 2025-07-03\",\"publishedAt\":\"2025-07-03\",\"draft\":false,\"categories\":\"changelog\",\"author\":\"Shane Thomas\",\"summary\":\"Agent Network (vNext), workflow cancellation, and custom memory model support highlight this week's Mastra updates.\"}},{\"slug\":\"vnext-agent-network\",\"data\":{\"title\":\"Beyond Workflows: Introducing Agent Network (vNext)\",\"publishedAt\":\"2025-07-03\",\"draft\":false,\"categories\":\"features\",\"author\":\"Tony Kovanen\",\"summary\":\"Agent Network (vNext) introduces intelligent AI orchestration that automatically routes and executes complex multi-agent tasks without predetermined workflows.\"}},{\"slug\":\"changelog-2025-06-27\",\"data\":{\"title\":\"Mastra Changelog 2025-06-27\",\"publishedAt\":\"2025-06-27\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra Cloud public beta, agent network chat, memory improvements, workflow updates, and a new Mastra 101 lesson.\"}},{\"slug\":\"mastra-cloud-public-beta\",\"data\":{\"title\":\"Mastra Cloud Public Beta\",\"publishedAt\":\"2025-06-26\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra Cloud is now in public beta — deploy, manage, and scale your AI agents and workflows.\"}},{\"slug\":\"changelog-2025-06-24\",\"data\":{\"title\":\"Mastra Changelog 2025-06-20\",\"publishedAt\":\"2025-06-20\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"We added sleep methods to workflows, structured memory to agents, and a new Gladia STT provider.\"}},{\"slug\":\"changelog-2025-06-13\",\"data\":{\"title\":\"Mastra Changelog 2025-06-13\",\"publishedAt\":\"2025-06-13\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Cross-thread memory recall, universal schema support, and enhanced workflow observability.\"}},{\"slug\":\"changelog-2025-06-06\",\"data\":{\"title\":\"Mastra Changelog 2025-06-06\",\"publishedAt\":\"2025-06-06\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra 101, Mastra Auth, and more\"}},{\"slug\":\"research-assistant\",\"data\":{\"title\":\"Building an AI Research Assistant  with vNext Workflows\",\"publishedAt\":\"2025-06-06\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"A deep dive into building MastraManus, an AI research assistant powered by Mastra's vNext workflows.\"}},{\"slug\":\"mastra-101\",\"data\":{\"title\":\"Introducing Mastra 101: The experimental course led by MCP, r
182ight in your IDE\",\"publishedAt\":\"2025-06-04\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Shane Thomas\",\"summary\":\"The newest (and perhaps coolest) way to learn Mastra\"}},{\"slug\":\"principlesv2\",\"data\":{\"title\":\"Announcing the second edition of Principles of Building AI Agents\",\"publishedAt\":\"2025-06-02\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"We're excited to announce the release of v2 of Principles of Building AI Agents.\"}},{\"slug\":\"changelog-2025-05-29\",\"data\":{\"title\":\"Mastra Changelog 2025-05-29\",\"publishedAt\":\"2025-05-29\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"MCP Server updates, streaming support, and more.\"}},{\"slug\":\"mcp-tool-compatibility-layer\",\"data\":{\"title\":\"Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models\",\"publishedAt\":\"2025-05-29\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Daniel Lew\",\"summary\":\"We recently built a tool compatibility layer that reduced tool calling error rates from 15% to 3% for 12 OpenAI, Anthropic, and Google Gemini models, across a set of 30 property types and constraints.\"}},{\"slug\":\"mastra-build-recap\",\"data\":{\"title\":\"MASTRA.BUILD Recap \u0026 Winner Announcement\",\"publishedAt\":\"2025-05-27\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Shane Thomas\",\"summary\":\"The results of MASTRA.BUILD, our inaugural hackathon.\"}},{\"slug\":\"fullstack-typescript-agents-with-mastra-and-copilotkit\",\"data\":{\"title\":\"Full-Stack TypeScript Agents with Mastra and Copilot Kit\",\"publishedAt\":\"2025-05-23\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"Build a full-stack TypeScript agent with Mastra and Copilot Kit.\"}},{\"slug\":\"matt-pocock-meets-mastra\",\"data\":{\"title\":\"An Honest Skeptic Meets Mastra: Matt Pocock's Live Review\",\"publishedAt\":\"2025-05-23\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Abhi Aiyer\",\"summary\":\"Typescript leader Matt Pocock builds, breaks, and reacts to Mastra in real time.\"}},{\"slug\":\"mastra-0.10\",\"data\":{\"title\":\"Announcing Mastra 0.10\",\"publishedAt\":\"2025-05-20\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Deploy Mastra anywhere\"}},{\"slug\":\"changelog-2025-05-15\",\"data\":{\"title\":\"Mastra Changelog 2025-05-15\",\"publishedAt\":\"2025-05-15\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's latest updates: A2A support, MCP updates, and more.\"}},{\"slug\":\"ai-prompting-techniques\",\"data\":{\"title\":\"AI prompting techniques\",\"publishedAt\":\"2025-05-13\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"Learn about effective AI prompting techniques, including types of prompts, handling their output, and evals.\"}},{\"slug\":\"the-detective-game\",\"data\":{\"title\":\"Building an Interactive Detective Game with Multi-Agent AI\",\"publishedAt\":\"2025-05-10\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"How we built an interactive detective game using Mastra's agent system and Next.js.\"}},{\"slug\":\"flash-genius\",\"data\":{\"title\":\"FlashGenius: instantly generate flashcards on any topic\",\"publishedAt\":\"2025-05-08\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"How we vibecoded Flash Genius, an instant flashcard generator, in 1 hour\"}},{\"slug\":\"changelog-2025-05-07\",\"data\":{\"title\":\"Mastra Changelog 2025-05-07\",\"publishedAt\":\"2025-05-07\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's latest updates: vNext is live, AGUI integration, and linting.\"}},{\"slug\":\"introducing-docs-chatbot\",\"data\":{\"title\":\"Introducing Mastra Docs Chatbot: Your AI Documentation Assistant\",\"publishedAt\":\"2025-05-07\",\"draft\":false,\"categories\":\"features\",\"author\":\"Shane Thomas\",\"summary\":\"Explore how our new docs chatbot leverages the Mastra MCP Docs server to enhance user experience and streamline access to documentation.\"}}
182,{\"slug\":\"changelog-2025-05-01\",\"data\":{\"title\":\"Mastra Changelog 2025-05-01\",\"publishedAt\":\"2025-05-01\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's latest updates: vNext workflows, MongoDB vectorDB provider, Streamable HTTP MCP transport, and more.\"}},{\"slug\":\"vNext-workflows\",\"data\":{\"title\":\"Introducing vNext Workflows: the next generation of Mastra Workflows\",\"publishedAt\":\"2025-04-29\",\"draft\":false,\"categories\":\"features\",\"author\":\"Tony Kovanen\",\"summary\":\"vNext brings stronger control flow, better type safety, and multi-engine support.\"}},{\"slug\":\"changelog-2025-04-24\",\"data\":{\"title\":\"Mastra Changelog 2025-04-24\",\"publishedAt\":\"2025-04-24\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's latest updates: dynamic agents, MCPServer support, vNext workflows, and more.\"}},{\"slug\":\"web-browsing-agent\",\"data\":{\"title\":\"Building a Web Browsing Agent with Mastra and Stagehand\",\"publishedAt\":\"2025-04-23\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"See how we built a web browsing agent using Mastra and Stagehand. Learn about the tools needed to allow your agents to control a browser.\"}},{\"slug\":\"dynamic-agents\",\"data\":{\"title\":\"Dynamic Agents: Inserting Runtime Context in Mastra\",\"publishedAt\":\"2025-04-22\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra's dynamic agents provide a powerful way to handle context in AI applications, without exposing sensitive information to the LLM or relying on globals.\"}},{\"slug\":\"introducing-mcp-support\",\"data\":{\"title\":\"Introducing MCP Server Support in Mastra\",\"publishedAt\":\"2025-04-21\",\"draft\":false,\"categories\":\"features\",\"author\":\"Nik Aiyer\",\"summary\":\"Create and share your AI tools with the Model Context Protocol (MCP) - now available in our latest stable release.\"}},{\"slug\":\"ai-engineering-javascript\",\"data\":{\"title\":\"AI with JavaScript in 2025\",\"publishedAt\":\"2025-04-20\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"A dive into four leading open-source JS AI libraries: Vercel AI SDK for model routing, Mastra for agents and workflows, Langfuse for observability, and Stagehand for web automation.\"}},{\"slug\":\"choosing-a-js-agent-framework\",\"data\":{\"title\":\"Choosing a JavaScript Agent Framework\",\"publishedAt\":\"2025-04-19\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"When choosing a JavaScript agent framework, consider the needs of your project and the team's expertise. Mastra and LangGraph.js are two leading options.\"}},{\"slug\":\"personal-assistant\",\"data\":{\"title\":\"Building a Personal Assistant with Mastra and MCP\",\"publishedAt\":\"2025-04-18\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"How we built a personal assistant that can manage emails, monitor GitHub activity, schedule social media posts, and more - all through a Telegram interface.\"}},{\"slug\":\"changelog-2025-04-16\",\"data\":{\"title\":\"Mastra Changelog 2025-04-16\",\"publishedAt\":\"2025-04-16\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's latest updates: MCP registry registry, model settings in Playground UI, and new Memory docs\"}},{\"slug\":\"pdf-to-blog\",\"data\":{\"title\":\"PDF-to-Blog: Giving documents a second life with Mastra and Mistral OCR\",\"publishedAt\":\"2025-04-11\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"A technical guide showing how to build a PDF-to-blog converter using Mastra and Mistral OCR\"}},{\"slug\":\"mcp-registry-registry\",\"data\":{\"title\":\"Introducing Mastra's MCP Registry Registry\",\"publishedAt\":\"2025-04-10\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra's MCP Registry Registry simplifies the process of finding MCP registries.\"}},{\"slug\":\"txt-to-sql\",\"data\":{\"title\":\"Mastra Text-to-SQL: from natural language to database queries\",\"publishedAt\":\"2025-04-04\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"Use Mastra's Text-to-SQL system to convert natural language to database queries\"}},{\"slug\":\"changelog-2025-04-02\",\"data\":{\"title\":\"Mastra Changelog 2025-04-02\",\"publishedAt\":\"2025-04-02\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's Latest Updates: API routing, memory processors, and more\"}},{\"slug\":\"mastra-storage\",\"data\":{\"title\":\"Mastra Storage: a flexible storage system for AI Applications\",\"publishedAt\":\"2025-04-01\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Nik Aiyer\",\"summary\":\"A look at how Mastra's storage system simplifies building AI a
182pplications by managing workflows, memory, traces, and eval data with flexible storage backends.\"}},{\"slug\":\"changelog-2025-03-27\",\"data\":{\"title\":\"Mastra Changelog 2025-03-27\",\"publishedAt\":\"2025-03-27\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Mastra's Latest Updates: Nested Workflows, Voice to Voice, and more\"}},{\"slug\":\"speech-to-speech\",\"data\":{\"title\":\"The Voice Connection: Mastra's Speech-to-Speech Capabilities\",\"publishedAt\":\"2025-03-26\",\"draft\":false,\"categories\":\"features\",\"author\":\"Yujohn Nattrass\",\"summary\":\"We've expanded Mastra Voice with real-time speech-to-speech capabilities for Agents.\"}},{\"slug\":\"seamless-edge-deployments\",\"data\":{\"title\":\"Optimizing Mastra for Seamless Edge Deployments\",\"publishedAt\":\"2025-03-25\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Ward Peeters\",\"summary\":\"Exploring a recent handful of Mastra optimizations that help it run smoothly on edge functions\"}},{\"slug\":\"changelog-2025-03-20\",\"data\":{\"title\":\"Mastra Changelog 2025-03-20\",\"publishedAt\":\"2025-03-20\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra MCP documentation server, AgentNetwork updates, and more\"}},{\"slug\":\"introducing-mastra-mcp\",\"data\":{\"title\":\"Introducing Mastra MCP Documentation Server\",\"publishedAt\":\"2025-03-18\",\"draft\":false,\"categories\":\"features\",\"author\":\"Tyler Barnes\",\"summary\":\"We built a Mastra MCP documentation server that provides AI assistants and IDE's with direct access to Mastra.ai's complete knowledge base. \"}},{\"slug\":\"changelog-2025-03-14\",\"data\":{\"title\":\"Mastra Changelog 2025-03-14\",\"publishedAt\":\"2025-03-14\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"Major workflow enhancements, new Mastra Voice features, and more\"}},{\"slug\":\"principles-of-ai-engineering\",\"data\":{\"title\":\"Announcing our new book: Principles of Building AI agents\",\"publishedAt\":\"2025-03-12\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra founder Sam Bhagwat is excited to announce the release of our new book: Principles of Building AI agents. This book is a guide for developers who want to rapidly build AI applications.\"}},{\"slug\":\"ai-beats-lab\",\"data\":{\"title\":\"AI Beats Laboratory: A Multi-Agent Music Generation System\",\"publishedAt\":\"2025-03-11\",\"draft\":false,\"categories\":\"case-studies\",\"author\":\"Abhi Aiyer\",\"summary\":\"A demo using Mastra to show how multiple AI agents can work together to generate music\"}},{\"slug\":\"nextjs-integration-guide\",\"data\":{\"title\":\"Integrating Mastra with Next.js: Two Approaches for AI-Powered Apps\",\"publishedAt\":\"2025-03-06\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Ehindero Israel\",\"summary\":\"A comprehensive guide to adding Mastra's agent capabilities to your Next.js applications, with flexible integration options for projects of any size\"}},{\"slug\":\"mastra-mcp\",\"data\":{\"title\":\"Why We're All-In on MCP\",\"publishedAt\":\"2025-03-05\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Tyler Barnes\",\"summary\":\"A deep dive into why Mastra is adopting Model Context Protocol (MCP) for AI tool integration, comparing it with Agents.json and Composio, addressing current limitations in discovery, quality, and configuration, and providing a framework-friendly proposal with practical code examples for implementation.\"}},{\"slug\":\"repo-base\",\"data\":{\"title\":\"Building a Code Assistant with Large Context Windows\",\"publishedAt\":\"2025-03-05\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"How we used Mastra and Gemini Flash 2.0 to build a natural language interface for code repositories\"}},{\"slug\":\"changelog-2025-03-04\",\"data\":{\"title\":\"Mastra Changelog 2025-03-04\",\"publishedAt\":\"2025-03-04\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Shane Thomas\",\"summary\":\"Introducing Mastra Cloud and Mastra Voice (as well as a few other things)\"}},{\"slug\":\"whiteboard-to-excalidraw-converter\",\"data\":{\"title\":\"From Whiteboard to Excalidraw: Building a Multi-Agent Workflow\",\"publishedAt\":\"2025-02-28\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Shane Thomas\",\"summary\":\"How we built a whiteboard image to Excalidraw converter using Mastra's multi-agent workflows, and what we learned about breaking down complex AI tasks into deterministic steps with validation loops.\"}},{\"slug\":\"giving-agents-a-voice\",\"data\":{\"title\":\"Giving Agents a Voice\",\"publishedAt\":\"2025-02-27\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Yujohn Nattrass\",\"summary\":\"Mastra Voice lets developers add speech-to-text and text-to-speech capabilities to AI agents using a straightforward API\"}},{\"slug\":\"pgvector-perf\",\"data\":{\"title\":\"Benchmarking pgvector RAG performance across different dataset sizes\",\"publishedAt\":\"2025-02-26\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Nik Aiyer\",\"summary\":\"Benchmark tests for pgvector, showing how IVFFlat, adaptive lists, flat search, and HNSW perform at different dataset sizes in recall and latency.\"}},{\"slug\":\"beta-launch\",\"data\":{\"title\":\"Mastra is moving into beta\",\"publishedAt\":\"2025-02-20\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra moving into beta\"}},{\"slug\":\"solving-the-hardest-problem-in-cs\",\"data\":{\"title\":\"Solving the hardest problem in computer science with LLMs\",\"publishedAt\":\"2025-02-14\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Sam Bhagwat\",\"summary\":\"How we use LLMs at Mastra to design clean, intuitive APIs by improving naming, structure, and developer workflow.\"}},{\"slug\":\"using-ai-sdk-with-mastra\",\"data\":{\"title\":\"Using Vercel's AI SDK with Mastra\",\"publishedAt\":\"2025-02-13\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Shane Thomas\",\"summary\":\"How Mastra enhances Vercel's AI SDK with agent primitives, RAG pipelines, and evaluation capabilities\"}},{\"slug\":\"changelog-2025-02-10\",\"data\":{\"title\":\"Mastra Changelog 2025-02-10\",\"publishedAt\":\"2025-02-10T18:05:00-08:00\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"Major updates including AI SDK integration, optimized bundle size through subpath imports, and enhanced 
182storage layer with tracing capabilities\"}},{\"slug\":\"agent-memory-guide\",\"data\":{\"title\":\"Using Mastra's Agent Memory API\",\"publishedAt\":\"2025-02-04\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Tyler Barnes\",\"summary\":\"A technical guide to implementing agent memory in Mastra, covering storage, vector search, and context management\"}},{\"slug\":\"changelog-2025-01-31\",\"data\":{\"title\":\"Mastra Changelog 2025-01-31\",\"publishedAt\":\"2025-01-31\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"New Memory API, speech providers, vector store integrations, and core improvements\"}},{\"slug\":\"ai-ops\",\"data\":{\"title\":\"Baby steps towards AI Ops\",\"publishedAt\":\"2025-01-30\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Abhi Aiyer\",\"summary\":\"How do we apply the lessons learned from the last decade of DevOps to manage, deploy, and operate AI agents at scale?\"}},{\"slug\":\"travel-ai\",\"data\":{\"title\":\"Multi-Agent AI Travel Planning with Mastra\",\"publishedAt\":\"2025-01-28\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"A demo using Mastra to show how multiple AI agents can work together to plan travel itineraries.\"}},{\"slug\":\"api-endpoints\",\"data\":{\"title\":\"Every API needs a natural language endpoint\",\"publishedAt\":\"2025-01-25\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Shane Thomas\",\"summary\":\"Building a world where every API has a chat endpoint\"}},{\"slug\":\"changelog-2025-01-24\",\"data\":{\"title\":\"Mastra Changelog 2025-01-24\",\"publishedAt\":\"2025-01-24\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"New `mastra build` command, evals in dev playground, new model support, and an abstracted deployer package\"}},{\"slug\":\"introducing-mastra-evals\",\"data\":{\"title\":\"Introducing Evals in Mastra\",\"publishedAt\":\"2025-01-20\",\"draft\":false,\"categories\":\"features\",\"author\":\"Nik Aiyer\",\"summary\":\"A guide to Mastra's evaluation metrics suite, demonstrating how to measure and validate AI model outputs across dimensions including answer relevancy, completeness, content similarity, context usage, and tone consistency.\"}},{\"slug\":\"tts-support\",\"data\":{\"title\":\"Introducing TTS in Mastra\",\"publishedAt\":\"2025-01-20\",\"draft\":false,\"categories\":\"features\",\"author\":\"Sam Bhagwat\",\"summary\":\"Use Mastra's TTS system with OpenAI's speech models to create text-to-speech applications, covering voice selection, audio generation, streaming capabilities\"}},{\"slug\":\"changelog-2025-01-17\",\"data\":{\"title\":\"Mastra Changelog 2025-01-17\",\"publishedAt\":\"2025-01-17\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra's changelog for Jan 10th, 2025 through Jan 17th, 2025\"}},{\"slug\":\"notebooklm-clone-with-agent-orchestration\",\"data\":{\"title\":\"Building a NotebookLM clone with an agent orchestrator\",\"publishedAt\":\"2025-01-16\",\"draft\":false,\"categories\":\"examples\",\"author\":\"Sam Bhagwat\",\"summary\":\"A technical guide showing how to build a NotebookLM clone that transforms documents into AI-generated podcasts using Mastra's agent orchestration, Pgvector vector storage, and LlamaIndex for content processing.\"}},{\"slug\":\"rag-tutorial\",\"data\":{\"title\":\"RAG tutorial: Setting up a RAG pipeline\",\"publishedAt\":\"2025-01-16\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Nik Aiyer\",\"summary\":\"A guide to setting up a simple RAG pipeline with Mastra\"}},{\"slug\":\"building-workflows\",\"data\":{\"title\":\"Building workflows with Mastra\",\"publishedAt\":\"2025-01-13\",\"draft\":false,\"categories\":\"foundations\",\"author\":\"Abhi Aiyer\",\"summary\":\"A few patterns for building workflows\"}},{\"slug\":\"changelog-2025-01-10\",\"data\":{\"title\":\"Mastra Changelog 2025-01-10\",\"publishedAt\":\"2025-01-10\",\"draft\":false,\"categories\":\"changelogs\",\"author\":\"Sam Bhagwat\",\"summary\":\"Mastra's changelog for Dec 27th 2024 through Jan 10th, 2025\"}},{\"slug\":\"the-next-million-ai-developers\",\"data\":{\"title\":\"A framework for the next million AI developers\",\"publishedAt\":\"2024-11-20\",\"draft\":false,\"categories\":\"announcements\",\"author\":\"Sam Bhagwat\",\"summary\":\"The next generation of AI products will be built with Apis written in Typescript\"}},{\"slug\":\"ai-engineering\",\"data\":{\"title\":\"AI engineering, two years later\",\"publishedAt\":\"2024-11-11\",\"draft\":false,\"categories\":\"foundations, case-studies\",\"author\":\"Sam Bhagwat\",\"summary\":\"What's changed in AI engineering over the last two years: models, agents, knowledge, tracing, evals\"}}]}]\n60:[\"$\",\"section\",null,{\"className\":\"ds-section ds-section--inverse-bottom ds-section--inverse-top\",\"children\":[false,[\"$\",\"$L59\",null,{\"variant\":\"inverse\",\"contentPadding\":\"$undefined\",\"className\":\"ds-section--stage-shell-inverse\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid gap-6 lg:grid-cols-2\",\"children\":[[\"$\",\"$L2c\",\"introducing-vitest-integration\",{\"href\":\"/blog/introducing-vitest-integration\",\"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\":\"Introducing Vitest Integration for Testing\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Catch regressions and errors before you deploy.\"}]]}],[\"$\",\"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\":\"Sep 24, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":{\"src\":\"/_next/static/immutable/media/paul.00yw1hun16lh-.png\",\"width\":200,\"height\"
182:200,\"blurWidth\":8,\"blurHeight\":8,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AB4VIC0iLUk5Q35lZo9xcpt1dJBvbp93dgACAQcHBQ1oUErJqpSuinuPYWF3PjukWlIADAgVMSMtrYd317ulyJ+LsIp+v52O2KWNAG48PXxUUsSUf+KvlOiwlN+rk+bPwurbzQBDKCgrISSvg27rrpDnqozDe2esb16yfWkAX1hWc2xopY2BwZF+u4Fyx4Nsq3BXrnphAI+ff6i4n8G1pMSVf9ymiteukndeWqOGdQC+o1aOj2g/S1xQRkxoWls2PE8HHDoXKkUzAFrmZ5HxFwAAAABJRU5ErkJggg==\"},\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}],[\"$\",\"$L2c\",\"introducing-experiment-tool-mocks\",{\"href\":\"/blog/introducing-experiment-tool-mocks\",\"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\":\"Introducing Experiment Tool Mocks\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Run experiments without hitting live APIs.\"}]]}],[\"$\",\"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\":\"Sep 23, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}],\"$L6b\",\"$L6c\",\"$L6d\",\"$L6e\",\"$L6f\",\"$L70\",\"$L71\",\"$L72\",\"$L73\",\"$L74\"]}],\"$L75\"]}]]}]\n61:[\"$\",\"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\":[[\"$\",\"$L76\",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]}],[\"$\",\"$L77\",null,{}]]}]]}]\n62:[\"$\",\"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\":\"$37: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\",\" →\"]}]]}]\n63:[\"$\",\"$L2c\",\"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\":\"$38: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\",\" →\"]}]]}]\n64:[\"$\",\"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\":\"$39: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\",\" →\"]}]]}]\n65:[\"$\",\"$L2c\",\"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\":\"$3a: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\",\" →\"]}]]}]\n66:[\"$\",\"$L2c\",\"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\":\"$3b: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:[\"$\",\"$L2c\",\"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\":\"$3c: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\",\" →\"]}]]}]\n68:[\"$\",\"$L2c\",\"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\":\"$3d: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:[\"$\",\"$L2c\",\"introducing-experiment-lifecycle-hooks\",{\"href\":\"/blog/introducing-experiment-lifecycle-hooks\",\"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\":\"Introducing Experiment Lifecycle Hooks\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Configure each stage of an experiment run.\"}]]}],[\"$\",\"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\":\"Sep 22, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n6c:[\"$\",\"$L2c\",\"introducing-experiment-targets\",{\"href\":\"/blog/introducing-experiment-targets\",\"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\":\"Introducing Experiment Targets\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Run experiments on workflows and scorers too, not just 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\":\"Sep 21, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n6d:[\"$\",\"$L2c\",\"introducing-http-feedback-api\",{\"href\":\"/blog/introducing-http-feedback-api\",\"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\":\"Introducing the Feedback API Endpoint for Mastra Observability\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Query feedback by region, environment, thread and source.\"}]]}],[\"$\",\"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\":\"Sep 18, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n6e:[\"$\",\"$L2c\",\"introducing-incident-alerts\",{\"href\":\"/blog/introducing-incident-alerts\",\"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\":\"Introducing Incident Alerts for Mastra Platform\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Real-time updates for failed deploys and crashed services.\"}]]}],[\"$\",\"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\":\"Sep 17, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n6f:[\"$\",\"$L2c\",\"introducing-error-diagnostics-platform-cli\",{\"href\":\"/blog/introducing-error-diagnostics-platform-cli\",\"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\":\"Introducing Error Diagnosis for Mastra Platform and CLI\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Diagnose and fix failed deploys with helpful recommendations.\"}]]}],[\"$\",\"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\":\"Sep 15, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n70:[\"$\",\"$L2c\",\"introducing-server-health-for-mastra-platform\",{\"href\":\"/blog/introducing-server-health-for-mastra-platform\",\"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\":\"Introducing Server Health for Mastra Platform\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Monitor server requests and inspect by path, status, or latency.\"}]]}],[\"$\",\"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\":\"Sep 14, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n71:[\"$\",\"$L2c\",\"introducing-filesystem-skills\",{\"href\":\"/blog/introducing-filesystem-skills\",\"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\":\"Introducing Filesystem Skills for Mastra Workspaces\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Reusable skills for multi-agent systems.\"}]]}],[\"$\",\"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\":\"Sep 11, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\"
182:20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n72:[\"$\",\"$L2c\",\"introducing-filesystem-search\",{\"href\":\"/blog/introducing-filesystem-search\",\"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\":\"Introducing Filesystem Search for Mastra Workspaces\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Find relevant content by keyword, semantic-similarity, or both.\"}]]}],[\"$\",\"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\":\"Sep 10, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n73:[\"$\",\"$L2c\",\"announcing-mastra-factory-beta\",{\"href\":\"/blog/announcing-mastra-factory-beta\",\"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\":\"Announcing Mastra Factory Beta\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"How we learned to stop worrying and let the agents ship\"}]]}],[\"$\",\"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\":\"Sep 8, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Sam Bhagwat\",{\"src\":{\"src\":\"/_next/static/immutable/media/calcsam.2t675rxbkngzr.png\",\"width\":200,\"height\":200,\"blurWidth\":8,\"blurHeight\":8,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAA00lEQVR42gHIADf/AC0qNy0pNy0nMi0mLCUgJiklLy4qNy4qNwAtKjYtKTZeSEilgnqIaGI8LzEtKTQuKjgALSo1MSw3hGZhzaCVzZ2QdVdPMSw2Lis4AC0qNTUwOpV0br6RiL2OgKR6bks9RS4rOAAsKTQxLjh8XVewf3ayf297Xlc3Mj0uKjcANDRBPDxLUENFkWhfeFVKUEZJR0VRNjRBAElLXUZHVjYxNWFHPVZHRFNQWExMXVhYaQBOUGFAQU4vLTYzLzFEQkdPTVpUVWhYWW3MoDnjbEvkVgAAAABJRU5ErkJggg==\"}
182,\"alt\":\"Sam Bhagwat\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"announcements\"]}]}]]}]]}]\n74:[\"$\",\"$L2c\",\"introducing-filesystem-mounts\",{\"href\":\"/blog/introducing-filesystem-mounts\",\"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\":\"Introducing Filesystem Mounts for Mastra Workspaces\"}],[\"$\",\"p\",null,{\"className\":\"line-clamp-3 text-[0.95rem] leading-[1.5] text-ds-main-gray\",\"children\":\"Read and write to multiple filesystems using the same file interface.\"}]]}],[\"$\",\"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\":\"Sep 8, 2026\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L6a\",\"Paul Scanlon\",{\"src\":\"$60:props:children:1:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:children:0:props:src\",\"alt\":\"Paul Scanlon\",\"width\":20,\"height\":20,\"className\":\"rounded-full ring-1 ring-ds-border-antigrid\",\"placeholder\":\"blur\"}]]}]]}],[\"$\",\"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\":[\"# \",\"features\"]}]}]]}]]}]\n75:[\"$\",\"nav\",null,{\"aria-label\":\"Blog pagination\",\"className\":\"mt-12 flex flex-wrap items-center justify-center gap-2\",\"children\":[false,[[\"$\",\"$L2c\",\"1\",{\"href\":\"/blog\",\"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}],[\"$\",\"$L2c\",\"2\",{\"href\":\"/blog/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\":\"…\"}],[\"$\",\"$L2c\",\"22\",{\"href\":\"/blog/page/22\",\"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\":22}]],[\"$\",\"$L2c\",null,{\"href\":\"/blog/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\"}]]}]\n78: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\"]\n79: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\"]\n7b: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"AnimatedLogo\"]\n7a: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:[\"$\",\"$L78\",null,{\"header\":[\"$\",\"$L79\",null,{\"githubStarCount\":\"28.3k\",\"nextWorkshop\":{\"_id\":\"3YuHhCM2aS4wIXM3jJXj6Z\",\"description\":\"$7a\",\"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\":[\"$\",\"$L59\",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\":[\"$\",\"$L7b\",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\":\"$L7c\"}],[\"$L7d\",\"$L7e\",\"$L7f\",\"$L80\",\"$L81\",\"$L82\"],\"$L83\",\"$L84\"]}]}]}]}],\"$L85\"]}],\"children\":\"$L86\"}]\n87: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.
182js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"SubscribeForm\"]\n88: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/0l92kp1vq2yr8.js\",\"/_next/static/immutable/chunks/294_4ng-gmvuz.js\",\"/_next/static/immutable/chunks/2p0nsw-od_6cr.js\",\"/_next/static/immutable/chunks/03ey9nhyp1anf.js\"],\"FooterStatus\"]\n7c:[\"$\",\"$L87\",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}]\n7d:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]]}]\n7e:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]]}]\n7f:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]]}]\n80:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]]}]\n81:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]]}]\n82:[\"$\",\"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\":[\"$\",\"$L2c\",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)\"}]}]]}]]}]\n83:[\"$\",\"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\":[\"$\",\"$L88\",null,{}]}]]}]}]\n84:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\"}]}]]}]}]\
182n85:[\"$\",\"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\"}]\n86:[\"$\",\"$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.\"}]}]]}],\"$L89\"]}],[[\"$\",\"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\"}]\n89:[\"$\",\"div\",null,{\"id\":\"useful-404\",\"className\":\"flex flex-col\",\"style\":{\"fontFamily\":\"var(--font-sans)\",\"--font-mono\":\"var(--commit-mono)\"},\"children\":[[\"$\",\"$L28\",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\":[\"$89:props:children:0:props:candidates:5\",\"$89:props:children:0:props:candidates:6\",\"$89:props:children:0:props:candidates:7\",\"$89:props:children:0:props:candidates:3\",\"$89:props:children:0:props:candidates:4\"]}],\"$L8a\",\"$L8b\",\"$L8c\"]}]\n"])</script>
182<script>self.__next_f.push([1,"8a:[\"$\",\"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\":[\"$\",\"$L2c\",null,{\"href\":\"/about\",\"className\":\"text-ds-main-white hover:text-ds-green transition-colors\",\"children\":\"Learn more about Mastra →\"}]}]]}]\n8b:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2a: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$33: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$34: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$35:props:children:0:props:children:props:children\"}]}],\"$L8d\"]}],\"$L8e\",\"$L8f\",\"$L90\",\"$L91\",\"$L92\",\"$L93\",\"$L94\",\"$L95\"]}],\"$L96\"]}]}]]}]\n8c:[\"$\",\"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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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\":[\"$\",\"$L2c\",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,"8d:[\"$\",\"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\",\" →\"]}]\n8e:[\"$\",\"$L2c\",\"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\":\"$36: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:[\"$\",\"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\":\"$37: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 →\"}]]}]\n90:[\"$\",\"$L2c\",\"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\":\"$38: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:[\"$\",\"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\":\"$39: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 →\"}]]}]\n92:[\"$\",\"$L2c\",\"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\":\"$3a: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\",\" →\"]}]]}]\n93:[\"$\",\"$L2c\",\"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\":\"$3b: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\",\" →\"]}]]}]\n94:[\"$\",\"$L2c\",\"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\":\"$3c: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\",\" →\"]}]]}]\n95:[\"$\",\"$L2c\",\"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\":\"$3d: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\",\" →\"]}]]}]\n96:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2a: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$33: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$34: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$35: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$36:props:children:0:props:children:props:children\"}],\"$L97\"]}],\"$L98\",\"$L99\",\"$L9a\",\"$L9b\",\"$L9c\",\"$L9d\",\"$L9e\"]}],\"$L9f\"]}]}]\n"])</script>
182<script>self.__next_f.push([1,"97:[\"$\",\"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:[\"$\",\"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\":\"$37: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\",\" →\"]}]]}]\n99:[\"$\",\"$L2c\",\"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\":\"$38: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:[\"$\",\"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\":\"$39: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\",\" →\"]}]]}]\n9b:[\"$\",\"$L2c\",\"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\":\"$3a: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\",\" →\"]}]]}]\n9c:[\"$\",\"$L2c\",\"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\":\"$3b: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\",\" →\"]}]]}]\n9d:[\"$\",\"$L2c\",\"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\":\"$3c: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:[\"$\",\"$L2c\",\"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\":\"$3d: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\",\" →\"]}]]}]\n9f:[\"$\",\"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\":[[\"$\",\"$L2c\",\"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\":\"$2a: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$33: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$34: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$35: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\",\" →\"]}]]}],[\"$\",\"$L2c\",\"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\":\"$36: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\",\" →\"]}]]}],\"$La0\",\"$La1\",\"$La2\",\"$La3\",\"$La4\",\"$La5\",\"$La6\"]}]\n"])</script>
182<script>self.__next_f.push([1,"a0:[\"$\",\"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\":\"$37: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\",\" →\"]}]]}]\na1:[\"$\",\"$L2c\",\"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\":\"$38: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:[\"$\",\"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\":\"$39: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\",\" →\"]}]]}]\na3:[\"$\",\"$L2c\",\"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\":\"$3a: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\",\" →\"]}]]}]\na4:[\"$\",\"$L2c\",\"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\":\"$3b: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\",\" →\"]}]]}]\na5:[\"$\",\"$L2c\",\"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\":\"$3c: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\",\" →\"]}]]}]\na6:[\"$\",\"$L2c\",\"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\":\"$3d: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.