<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Dynatrace Developer Blog</title>
        <link>https://developer.dynatrace.com/blog/</link>
        <description>Dynatrace Developer Blog</description>
        <lastBuildDate>Tue, 14 Jul 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[PageLayout: a composable app layout]]></title>
            <link>https://developer.dynatrace.com/blog/pagelayout-component/</link>
            <guid>https://developer.dynatrace.com/blog/pagelayout-component/</guid>
            <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[PageLayout is the new, more flexible replacement for Page, with composable slots that work anywhere and a split-or-overlay details panel.]]></description>
            <content:encoded><![CDATA[<p><code>PageLayout</code> is the new Strato layout component and the more flexible successor to <code>Page</code>. It keeps the familiar slot-based structure (header, sidebar, content, and details) while giving you more freedom in how you compose and control those panels. <code>Page</code> still works, so you can migrate at your own pace.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="composable-slots">Composable slots<a href="https://developer.dynatrace.com/blog/pagelayout-component/#composable-slots" class="hash-link" aria-label="Direct link to Composable slots" title="Direct link to Composable slots" translate="no">​</a></h2>
<p>The headline change is that slots are <strong>composable</strong>: <code>Header</code>, <code>Sidebar</code>, <code>Content</code>, and <code>Details</code> can live anywhere in your component tree—inside an <code>&lt;Outlet /&gt;</code>, a <code>&lt;Suspense&gt;</code> boundary, or any wrapper—instead of having to be direct children. That's what makes it work cleanly with routers, where the layout frame and the routed content can own different slots. Beyond that, panel state is preserved across collapse and expand, the details panel can render side-by-side or as an overlay, and panels are responsive with their own breakpoints.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="migrating-from-page">Migrating from Page<a href="https://developer.dynatrace.com/blog/pagelayout-component/#migrating-from-page" class="hash-link" aria-label="Direct link to Migrating from Page" title="Direct link to Migrating from Page" translate="no">​</a></h2>
<p>Most of the migration is mechanical, so you just need to rename the slots and a few props. A few APIs changed along the way (expand/collapse controls are always on, content always stays mounted) and the default breakpoints are different, so review any breakpoint overrides after you switch.</p>
<p>Start with the <a href="https://developer.dynatrace.com/design/components/layouts/PageLayout/" target="_blank" rel="noopener noreferrer" class="">PageLayout component</a> and the <a href="https://developer.dynatrace.com/design/components/layouts/PageLayout/migration/" target="_blank" rel="noopener noreferrer" class="">migration guide</a>.</p>]]></content:encoded>
            <category>Strato Design System</category>
            <category>Design</category>
            <category>Feature</category>
        </item>
        <item>
            <title><![CDATA[July office hours recap, and our next session]]></title>
            <link>https://developer.dynatrace.com/blog/office-hours-july-2026-recap/</link>
            <guid>https://developer.dynatrace.com/blog/office-hours-july-2026-recap/</guid>
            <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A recap of the July App Development Office Hours — page titles, PageLayout, lazy loading, and more — plus the date for our next session.]]></description>
            <content:encoded><![CDATA[<p>Thanks to everyone who joined the July App Development Office Hours! If you missed it, the <a href="https://www.youtube.com/watch?v=ZwNAnSgzWEM" target="_blank" rel="noopener noreferrer" class="">recording is up</a> and here's a quick rundown of what we covered: new features for app builders, the latest design-system additions, and questions from the community. The next session is <strong>Tuesday, September 8</strong>.</p>
<div style="position:relative;padding-bottom:56.25%;height:0;margin-bottom:1.5rem"><iframe style="position:absolute;inset:0;width:100%;height:100%" src="https://www.youtube.com/embed/ZwNAnSgzWEM" title="App Development Office Hours — July 2026 recording" allow="encrypted-media" sandbox="allow-scripts allow-same-origin allow-presentation allow-popups" allowfullscreen=""></iframe></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="new-for-app-builders">New for app builders<a href="https://developer.dynatrace.com/blog/office-hours-july-2026-recap/#new-for-app-builders" class="hash-link" aria-label="Direct link to New for app builders" title="Direct link to New for app builders" translate="no">​</a></h2>
<ul>
<li class=""><strong>Custom page titles</strong>—set a descriptive browser-tab title with the <code>usePageTitle</code> hook, so users can tell multiple open tabs apart. See <a href="https://developer.dynatrace.com/develop/guides/navigation/page-titles/" target="_blank" rel="noopener noreferrer" class="">Page titles</a>.</li>
<li class=""><strong>Lazy loading</strong>—a deeper guide on code splitting, route- and view-based lazy loading, when not to split, and how to parallelize a chunk download with its Grail query. See <a href="https://developer.dynatrace.com/develop/guides/code-optimization/lazy-loading/" target="_blank" rel="noopener noreferrer" class="">Understand lazy loading</a>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="from-the-strato-design-system">From the Strato design system<a href="https://developer.dynatrace.com/blog/office-hours-july-2026-recap/#from-the-strato-design-system" class="hash-link" aria-label="Direct link to From the Strato design system" title="Direct link to From the Strato design system" translate="no">​</a></h2>
<ul>
<li class=""><strong>PageLayout</strong>—the new, more flexible replacement for <code>Page</code>, with composable slots and a split-or-overlay details panel. See the <a href="https://developer.dynatrace.com/design/components/layouts/PageLayout/" target="_blank" rel="noopener noreferrer" class="">PageLayout component</a> and its <a href="https://developer.dynatrace.com/design/components/layouts/PageLayout/migration/" target="_blank" rel="noopener noreferrer" class="">migration guide</a>.</li>
<li class=""><strong>Accessibility foundation</strong>—a new design-foundation page covering what you need to build inclusive apps — WCAG 2.2 AA, and what Strato handles for you. See <a href="https://developer.dynatrace.com/design/foundations/accessibility/" target="_blank" rel="noopener noreferrer" class="">Accessibility</a>.</li>
<li class=""><strong>TimeframeSelector</strong>—from <code>@dynatrace/strato-components</code> v3.1+, it shows users their recently used timeframes automatically — no code changes required. See <a href="https://developer.dynatrace.com/design/components/filters/TimeframeSelector/" target="_blank" rel="noopener noreferrer" class="">TimeframeSelector</a>.</li>
<li class=""><strong>XYChart</strong>—a low-level, composable option for charts the ready-made components can't build — heatmaps, scatterplots, and more. See <a href="https://developer.dynatrace.com/design/data-visualizations/charts/XYChart/" target="_blank" rel="noopener noreferrer" class="">XYChart</a>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="from-the-community">From the community<a href="https://developer.dynatrace.com/blog/office-hours-july-2026-recap/#from-the-community" class="hash-link" aria-label="Direct link to From the community" title="Direct link to From the community" translate="no">​</a></h2>
<p>One thread we highlighted: a user asked whether they could set a <a href="https://community.dynatrace.com/t5/Developer-Q-A-Forum/Can-I-have-a-custom-page-title-in-a-Dynatrace-App/td-p/288101" target="_blank" rel="noopener noreferrer" class="">custom page title in a Dynatrace app</a>. It was on the roadmap then, and it's now shipped, with the <code>usePageTitle</code> hook above. Your questions genuinely feed what we prioritize.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="next-session">Next session<a href="https://developer.dynatrace.com/blog/office-hours-july-2026-recap/#next-session" class="hash-link" aria-label="Direct link to Next session" title="Direct link to Next session" translate="no">​</a></h2>
<p>The next App Development Office Hours is <strong>Tuesday, September 8, 16:00 CEST / 10:00 EDT</strong>. We'll post the sign-up link on <a href="https://www.linkedin.com/company/dynatrace" target="_blank" rel="noopener noreferrer" class="">Dynatrace's LinkedIn</a> closer to the date, so follow along there to register.</p>
<p>Got a topic you'd like us to cover? Drop it in the <a href="https://community.dynatrace.com/t5/Developer-Q-A-Forum/bd-p/devs_qanda" target="_blank" rel="noopener noreferrer" class="">Developer Q&amp;A Forum</a>.</p>]]></content:encoded>
            <category>Office Hours</category>
            <category>Dynatrace Community</category>
            <category>Release</category>
        </item>
        <item>
            <title><![CDATA[Two guides for faster apps: lazy loading and SWR]]></title>
            <link>https://developer.dynatrace.com/blog/app-performance-guides/</link>
            <guid>https://developer.dynatrace.com/blog/app-performance-guides/</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Two new guides on making Dynatrace apps feel fast: lazy loading to cut initial load time, and stale-while-revalidate to keep navigation instant.]]></description>
            <content:encoded><![CDATA[<p>Two new performance guides are live, and they tackle the same goal from opposite ends: ship less upfront, and reuse what you've already fetched. Lazy loading splits your bundle so the browser only downloads the code for the view in front of the user. Stale-while-revalidate serves cached Grail results instantly while refreshing them in the background. Together they cover both first load and every navigation after it.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="lazy-loading-ship-less-upfront">Lazy loading: ship less upfront<a href="https://developer.dynatrace.com/blog/app-performance-guides/#lazy-loading-ship-less-upfront" class="hash-link" aria-label="Direct link to Lazy loading: ship less upfront" title="Direct link to Lazy loading: ship less upfront" translate="no">​</a></h2>
<p>By default, an app bundles every page and component into one download, even the ones the user never opens. Lazy loading splits that bundle into chunks that load on demand, using React's <code>lazy()</code> and <code>&lt;Suspense&gt;</code>. The App Toolkit now supports this out of the box.</p>
<p>The highest-impact, lowest-risk place to start is the route level: load only the page the user navigates to. From there, you can defer in-page views that sit behind an interaction (tabs, drawers, modals), and even fire a Grail query while the browser is still downloading the component that will render it. The guide also covers where <strong>not</strong> to split: anything above the fold, or smaller than ~20–30 KB, usually isn't worth a separate chunk.</p>
<div class="dtAdmonition_gWjT tip_pbuZ"><div class="dtAdmonitionIcon_jo_B"><svg focusable="false" role="img" aria-hidden="true" fill="currentColor" width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" data-iconname="IdeaIcon"><path d="M10.75 3V.5h-1.5V3z"></path><path d="M13.482 4.018 15.25 2.25l1.06 1.06-1.767 1.768z"></path><path d="M14.496 8.996a4.5 4.5 0 0 1-2.124 3.822v1.18a1 1 0 0 1-1 1H8.62a1 1 0 0 1-1-1v-1.18a4.5 4.5 0 1 1 6.876-3.822m-3.623 2.87a3.001 3.001 0 0 0-.877-5.87 3 3 0 0 0-.87 5.872v1.63h1.747z"></path><path d="M7.625 17.238a.75.75 0 0 1 .75-.75h3.25a.75.75 0 0 1 0 1.5h-3.25a.75.75 0 0 1-.75-.75"></path><path d="M4.25 6.5h-2.5V8h2.5z"></path><path d="M18.25 6.5h-2.5V8h2.5z"></path><path d="m4.75 2.25 1.768 1.768-1.06 1.06-1.769-1.767z"></path></svg></div><div class="dtAdmonitionContent__URv"><div class="dtAdmonitionHeader_ql5F">Tip</div><div><p>Read about how to <a href="https://developer.dynatrace.com/develop/guides/code-optimization/lazy-loading/" target="_blank" rel="noopener noreferrer" class="">Understand lazy loading</a>.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="stale-while-revalidate-reuse-what-youve-fetched">Stale-while-revalidate: reuse what you've fetched<a href="https://developer.dynatrace.com/blog/app-performance-guides/#stale-while-revalidate-reuse-what-youve-fetched" class="hash-link" aria-label="Direct link to Stale-while-revalidate: reuse what you've fetched" title="Direct link to Stale-while-revalidate: reuse what you've fetched" translate="no">​</a></h2>
<p>Grail queries can take seconds, and much of the data an app shows such as host lists, topology, or configuration, doesn't change second to second. Stale-while-revalidate (SWR) renders cached data instantly, then quietly refreshes it in the background and swaps in the new result if anything changed. No spinner, no blank screen.</p>
<p>You mostly get this for free: <code>useDql</code> from <code>@dynatrace-sdk/react-hooks</code> is built on TanStack Query and ships with SWR support. The guide walks through setting <code>staleTime</code> per data type, using <code>placeholderData</code> to avoid a flash of loading state on filter changes, and the key distinction between <code>isLoading</code> (first load) and <code>isFetching</code> (background refresh).</p>
<div class="dtAdmonition_gWjT tip_pbuZ"><div class="dtAdmonitionIcon_jo_B"><svg focusable="false" role="img" aria-hidden="true" fill="currentColor" width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" data-iconname="IdeaIcon"><path d="M10.75 3V.5h-1.5V3z"></path><path d="M13.482 4.018 15.25 2.25l1.06 1.06-1.767 1.768z"></path><path d="M14.496 8.996a4.5 4.5 0 0 1-2.124 3.822v1.18a1 1 0 0 1-1 1H8.62a1 1 0 0 1-1-1v-1.18a4.5 4.5 0 1 1 6.876-3.822m-3.623 2.87a3.001 3.001 0 0 0-.877-5.87 3 3 0 0 0-.87 5.872v1.63h1.747z"></path><path d="M7.625 17.238a.75.75 0 0 1 .75-.75h3.25a.75.75 0 0 1 0 1.5h-3.25a.75.75 0 0 1-.75-.75"></path><path d="M4.25 6.5h-2.5V8h2.5z"></path><path d="M18.25 6.5h-2.5V8h2.5z"></path><path d="m4.75 2.25 1.768 1.768-1.06 1.06-1.769-1.767z"></path></svg></div><div class="dtAdmonitionContent__URv"><div class="dtAdmonitionHeader_ql5F">Tip</div><div><p>Read more about <a href="https://developer.dynatrace.com/develop/guides/code-optimization/stale-while-revalidate/" target="_blank" rel="noopener noreferrer" class="">Stale-While-Revalidate (SWR)</a>.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="why-both-matter">Why both matter<a href="https://developer.dynatrace.com/blog/app-performance-guides/#why-both-matter" class="hash-link" aria-label="Direct link to Why both matter" title="Direct link to Why both matter" translate="no">​</a></h2>
<p>The two techniques map neatly onto Core Web Vitals: lazy loading reduces the JavaScript the browser parses before first render, which helps <strong>LCP</strong>; while SWR removes loading states from repeat navigation, which helps <strong>INP</strong>.</p>]]></content:encoded>
            <category>App</category>
            <category>Feature</category>
            <category>SDK</category>
        </item>
        <item>
            <title><![CDATA[Enroll now: the AI-first app development workshop]]></title>
            <link>https://developer.dynatrace.com/blog/ai-first-app-development-workshop/</link>
            <guid>https://developer.dynatrace.com/blog/ai-first-app-development-workshop/</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A hands-on, full-day workshop for R&D engineers who build Dynatrace Apps, covering Claude Code, MCP, Skills, Agents, and Spec-Driven Development.]]></description>
            <content:encoded><![CDATA[<p>The AI-First App Development Workshop is open for enrollment. It's a full-day session for R&amp;D engineers who build Dynatrace Apps and want to move past the basics of AI-assisted development. It pairs the concepts with plenty of hands-on practice on a real Dynatrace App repo and live Dynatrace data.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="who-its-for">Who it's for<a href="https://developer.dynatrace.com/blog/ai-first-app-development-workshop/#who-its-for" class="hash-link" aria-label="Direct link to Who it's for" title="Direct link to Who it's for" translate="no">​</a></h2>
<p>R&amp;D engineers who build or contribute to Dynatrace Apps — whether you've just started with Claude Code or already use it daily and want a deeper understanding of the underlying concepts.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="what-youll-learn">What you'll learn<a href="https://developer.dynatrace.com/blog/ai-first-app-development-workshop/#what-youll-learn" class="hash-link" aria-label="Direct link to What you'll learn" title="Direct link to What you'll learn" translate="no">​</a></h2>
<ul>
<li class="">How to get the most out of Claude Code—context, memory, and project conventions</li>
<li class="">How MCP works, and how to connect Claude to live Dynatrace data</li>
<li class="">How to write, share, and evaluate Skills for your team</li>
<li class="">What AI Agents are and how they differ from Skills</li>
<li class="">How to use Spec-Driven Development to agree on what to build before writing code, and let AI do more of the execution</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="format">Format<a href="https://developer.dynatrace.com/blog/ai-first-app-development-workshop/#format" class="hash-link" aria-label="Direct link to Format" title="Direct link to Format" translate="no">​</a></h2>
<p>The workshop is virtual and runs a full day (09:00–16:00 CET, with breaks). The hands-on exercises run real Claude Code sessions, so budget roughly <strong>$10–20 USD</strong> in usage for the day.</p>
<p>There's a bit of setup involved: Node.js, Claude Code, the demo app, and the Dynatrace MCP servers. We recommend you check the prerequisites and get them done <strong>before</strong> the session.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="sign-up">Sign up<a href="https://developer.dynatrace.com/blog/ai-first-app-development-workshop/#sign-up" class="hash-link" aria-label="Direct link to Sign up" title="Direct link to Sign up" translate="no">​</a></h2>
<p>Sessions are scheduled and open for enrollment. Find the dates, the full agenda, and the prerequisites on the <a href="https://dynatrace.sharepoint.com/sites/AdvanceGalaxy/SitePages/ai-first_app_development_workshop.aspx?isNewUI=true" target="_blank" rel="noopener noreferrer" class="">AI-First App Development Workshop page on Advance Galaxy</a>.</p>
<p>Stuck on the setup, or have questions before the day? Reach out in <a href="https://dynatrace.enterprise.slack.com/archives/C01RU8UMV19" target="_blank" rel="noopener noreferrer" class="">#team-platform-success</a>.</p>]]></content:encoded>
            <category>Enablement</category>
            <category>AI</category>
            <category>App</category>
        </item>
        <item>
            <title><![CDATA[Set custom browser-tab titles for your apps]]></title>
            <link>https://developer.dynatrace.com/blog/custom-page-titles/</link>
            <guid>https://developer.dynatrace.com/blog/custom-page-titles/</guid>
            <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Apps can now set descriptive browser-tab titles with the usePageTitle hook, so users can tell multiple open tabs of the same app apart at a glance.]]></description>
            <content:encoded><![CDATA[<p>Users often keep several tabs of the same app open: different filters, different entities, etc. Until now every tab showed the same title, but now apps can set a descriptive browser-tab title so each tab describes what it actually shows.</p>
<p>You add a small <code>usePageTitle</code> hook to your project and call it from each routed page. The app shell composes the rest of the tab title (app name, tenant, "Dynatrace") around the part you set. One thing to watch: only set a title for views with a <strong>persistent URL</strong> — updating it for transient overlays or modals confuses the browser's back/forward history.</p>
<p>The <a href="https://developer.dynatrace.com/develop/guides/navigation/page-titles/" target="_blank" rel="noopener noreferrer" class="">Page titles guide</a> has the full walkthrough, including the hook itself and how to set titles for widgets.</p>
<p>This one closed a loop with the community — it started as a <a href="https://community.dynatrace.com/t5/Developer-Q-A-Forum/Can-I-have-a-custom-page-title-in-a-Dynatrace-App/td-p/288101" target="_blank" rel="noopener noreferrer" class="">question on the Developer Q&amp;A forum</a>. If there's something you're missing, that's a good place to ask.</p>]]></content:encoded>
            <category>App</category>
            <category>Feature</category>
            <category>SDK</category>
        </item>
        <item>
            <title><![CDATA[Bring Dynatrace Intelligence into your apps: three new guides]]></title>
            <link>https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/</link>
            <guid>https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/</guid>
            <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Three new guides on wiring Dynatrace Intelligence into your apps: conversation starters, built-in dashboard prompts, and contributing DQL examples.]]></description>
            <content:encoded><![CDATA[<p>Three new guides show how to bring Dynatrace Intelligence closer to where people already work in your apps:</p>
<ul>
<li class=""><strong>Conversation starters</strong> add an <strong>Explain with Dynatrace Assist</strong> action to any app.</li>
<li class=""><strong>Built-in prompts</strong> push that same idea into the dashboards and notebooks you ship.</li>
<li class=""><strong>Contributing DQL examples</strong> helps train the NL2DQL model that turns natural language into DQL.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="conversation-starters">Conversation starters<a href="https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/#conversation-starters" class="hash-link" aria-label="Direct link to Conversation starters" title="Direct link to Conversation starters" translate="no">​</a></h2>
<p>Conversation starters connect any app on the platform to Dynatrace Intelligence, so users can get AI-powered context without leaving what they're doing. Think of an <strong>Explain with Dynatrace Assist</strong> button, pre-loaded with the right question and context. It works via an intent to the Dynatrace Assist app, with a prompt and optional supplementary or instruction context.</p>
<p>A couple of things to know before you build:</p>
<ul>
<li class="">Conversation starters currently run in non-agentic mode, and because LLM output isn't deterministic, you add your use cases to the regression test suite via GitOps.</li>
<li class="">Always check availability first with <code>listAvailableSkills</code>—not every tenant or user has Dynatrace Assist enabled—and only render the trigger when the conversation skill is present.</li>
</ul>
<div class="dtAdmonition_gWjT tip_pbuZ"><div class="dtAdmonitionIcon_jo_B"><svg focusable="false" role="img" aria-hidden="true" fill="currentColor" width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" data-iconname="IdeaIcon"><path d="M10.75 3V.5h-1.5V3z"></path><path d="M13.482 4.018 15.25 2.25l1.06 1.06-1.767 1.768z"></path><path d="M14.496 8.996a4.5 4.5 0 0 1-2.124 3.822v1.18a1 1 0 0 1-1 1H8.62a1 1 0 0 1-1-1v-1.18a4.5 4.5 0 1 1 6.876-3.822m-3.623 2.87a3.001 3.001 0 0 0-.877-5.87 3 3 0 0 0-.87 5.872v1.63h1.747z"></path><path d="M7.625 17.238a.75.75 0 0 1 .75-.75h3.25a.75.75 0 0 1 0 1.5h-3.25a.75.75 0 0 1-.75-.75"></path><path d="M4.25 6.5h-2.5V8h2.5z"></path><path d="M18.25 6.5h-2.5V8h2.5z"></path><path d="m4.75 2.25 1.768 1.768-1.06 1.06-1.769-1.767z"></path></svg></div><div class="dtAdmonitionContent__URv"><div class="dtAdmonitionHeader_ql5F">Tip</div><div><p>Read more about <a href="https://developer.dynatrace.com/develop/guides/dynatrace-intelligence/conversation-starters/" target="_blank" rel="noopener noreferrer" class="">Conversation starters</a>.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="built-in-prompts-for-ready-made-dashboards">Built-in prompts for ready-made dashboards<a href="https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/#built-in-prompts-for-ready-made-dashboards" class="hash-link" aria-label="Direct link to Built-in prompts for ready-made dashboards" title="Direct link to Built-in prompts for ready-made dashboards" translate="no">​</a></h2>
<p>This takes the same idea as conversation starters a step further. Instead of a button, you integrate Dynatrace Intelligence directly into the dashboards and notebooks that ship with your app. The setup is lightweight: add a <code>prompt</code> field to your DQL result set and users get a Dynatrace Assist trigger right there in the data. Add <code>execute=true</code> to auto-send it, and pass hidden context to make the response more relevant to what the user is looking at.</p>
<div class="dtAdmonition_gWjT tip_pbuZ"><div class="dtAdmonitionIcon_jo_B"><svg focusable="false" role="img" aria-hidden="true" fill="currentColor" width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" data-iconname="IdeaIcon"><path d="M10.75 3V.5h-1.5V3z"></path><path d="M13.482 4.018 15.25 2.25l1.06 1.06-1.767 1.768z"></path><path d="M14.496 8.996a4.5 4.5 0 0 1-2.124 3.822v1.18a1 1 0 0 1-1 1H8.62a1 1 0 0 1-1-1v-1.18a4.5 4.5 0 1 1 6.876-3.822m-3.623 2.87a3.001 3.001 0 0 0-.877-5.87 3 3 0 0 0-.87 5.872v1.63h1.747z"></path><path d="M7.625 17.238a.75.75 0 0 1 .75-.75h3.25a.75.75 0 0 1 0 1.5h-3.25a.75.75 0 0 1-.75-.75"></path><path d="M4.25 6.5h-2.5V8h2.5z"></path><path d="M18.25 6.5h-2.5V8h2.5z"></path><path d="m4.75 2.25 1.768 1.768-1.06 1.06-1.769-1.767z"></path></svg></div><div class="dtAdmonitionContent__URv"><div class="dtAdmonitionHeader_ql5F">Tip</div><div><p>Read more about <a href="https://developer.dynatrace.com/develop/guides/dynatrace-intelligence/prompts-dashboards/" target="_blank" rel="noopener noreferrer" class="">Prompts for ready-made dashboards</a>.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="contribute-dql-query-examples">Contribute DQL query examples<a href="https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/#contribute-dql-query-examples" class="hash-link" aria-label="Direct link to Contribute DQL query examples" title="Direct link to Contribute DQL query examples" translate="no">​</a></h2>
<p>Rather than looking examples up at query time, the NL2DQL model is trained on hundreds of thousands of real DQL queries. You can help by contributing well-documented examples to improve the model, and increase the chance it gets the queries you care about right. We're especially short on RUM-on-Grail and FinOps examples.</p>
<div class="dtAdmonition_gWjT tip_pbuZ"><div class="dtAdmonitionIcon_jo_B"><svg focusable="false" role="img" aria-hidden="true" fill="currentColor" width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" data-iconname="IdeaIcon"><path d="M10.75 3V.5h-1.5V3z"></path><path d="M13.482 4.018 15.25 2.25l1.06 1.06-1.767 1.768z"></path><path d="M14.496 8.996a4.5 4.5 0 0 1-2.124 3.822v1.18a1 1 0 0 1-1 1H8.62a1 1 0 0 1-1-1v-1.18a4.5 4.5 0 1 1 6.876-3.822m-3.623 2.87a3.001 3.001 0 0 0-.877-5.87 3 3 0 0 0-.87 5.872v1.63h1.747z"></path><path d="M7.625 17.238a.75.75 0 0 1 .75-.75h3.25a.75.75 0 0 1 0 1.5h-3.25a.75.75 0 0 1-.75-.75"></path><path d="M4.25 6.5h-2.5V8h2.5z"></path><path d="M18.25 6.5h-2.5V8h2.5z"></path><path d="m4.75 2.25 1.768 1.768-1.06 1.06-1.769-1.767z"></path></svg></div><div class="dtAdmonitionContent__URv"><div class="dtAdmonitionHeader_ql5F">Tip</div><div><p>Read more about how to <a href="https://developer.dynatrace.com/develop/guides/dynatrace-intelligence/contribute-dql-examples/" target="_blank" rel="noopener noreferrer" class="">Contribute DQL query examples</a>.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="questions">Questions<a href="https://developer.dynatrace.com/blog/dynatrace-intelligence-guides/#questions" class="hash-link" aria-label="Direct link to Questions" title="Direct link to Questions" translate="no">​</a></h2>
<p>For anything Dynatrace Intelligence–related, reach out in <a href="https://dynatrace.enterprise.slack.com/archives/C05QJD3HA5B" target="_blank" rel="noopener noreferrer" class="">#help-dti-agentic-ai</a>.</p>]]></content:encoded>
            <category>AI</category>
            <category>DQL</category>
            <category>Feature</category>
        </item>
        <item>
            <title><![CDATA[Hot off the press: Dynatrace Developer gets a blog]]></title>
            <link>https://developer.dynatrace.com/blog/whats-new-launch/</link>
            <guid>https://developer.dynatrace.com/blog/whats-new-launch/</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Dynatrace Developer now has a blog with news and updates for Dynatrace app creators, all in one searchable, filterable place.]]></description>
            <content:encoded><![CDATA[<p>If you've ever learned about important app development news from a four-times-forwarded Slack post, or an offsides comment in a meeting, this blog is for you.</p>
<p><strong>What's new</strong> is the new home for app developer news on Dynatrace Developer. It's a single, searchable, filterable feed of news worth knowing, without all the channel-hopping.</p>
<h2 class="anchor anchorTargetStickyNavbar_FADo" id="what-youll-find-here">What you'll find here<a href="https://developer.dynatrace.com/blog/whats-new-launch/#what-youll-find-here" class="hash-link" aria-label="Direct link to What you'll find here" title="Direct link to What you'll find here" translate="no">​</a></h2>
<p>This isn't a changelog—you'll still find those in <a href="https://developer.dynatrace.com/release-notes" target="_blank" rel="noopener noreferrer" class="">Release notes</a>.</p>
<p>In <strong>What's new</strong>, you can expect a steady mix of updates about new features and ideas, interesting events and tools for your work, plus lots of other topics that matter to app creators.</p>
<p>Today, you see the MVP. More features are coming soon. Use the feedback button at the bottom of the page to tell us what you want more of (or less of).</p>
]]></content:encoded>
            <category>Dynatrace Developer</category>
            <category>Feature</category>
            <category>Release</category>
        </item>
    </channel>
</rss>