<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Julia Muiruri</title>
    <description>The latest articles on DEV Community by Julia Muiruri (@juliamuiruri4).</description>
    <link>https://dev.to/juliamuiruri4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F750460%2F7c440b0b-5edc-408f-a3b0-68aefd52c95a.jpg</url>
      <title>DEV Community: Julia Muiruri</title>
      <link>https://dev.to/juliamuiruri4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/juliamuiruri4"/>
    <language>en</language>
    <item>
      <title>The JavaScript AI Build-a-thon Season 2 starts March 2!</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Wed, 25 Feb 2026 04:09:06 +0000</pubDate>
      <link>https://dev.to/azure/the-javascript-ai-build-a-thon-season-2-starts-march-2-1e92</link>
      <guid>https://dev.to/azure/the-javascript-ai-build-a-thon-season-2-starts-march-2-1e92</guid>
      <description>&lt;p&gt;Most applications used by millions of people every single day are powered by JavaScript/TypeScript. But when it comes to AI, most learning resources and code samples assume you're working in Python and will leave you trying to stitch scattered tutorials together to build AI into your stack.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;JavaScript AI Build-a-thon&lt;/strong&gt; is a free, hands-on program designed to close that gap. Over the course of four weeks &lt;strong&gt;(March 2 - March 31, 2026)&lt;/strong&gt;, you'll move from running AI 100% on-device (Local AI), to designing multi-service, multi-agentic systems, all in JavaScript/ TypeScript and using tools you are already familiar with.&lt;br&gt;
The series will culminate in a &lt;strong&gt;hackathon&lt;/strong&gt;, where you will create, compete and turn what you'll have learnt into working projects you can point to, talk about and extend.&lt;/p&gt;

&lt;p&gt;Register now at &lt;a href="https://aka.ms/JSAIBuildathon" rel="noopener noreferrer"&gt;aka.ms/JSAIBuildathon&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the program works!
&lt;/h2&gt;

&lt;p&gt;The program is organized around 2 phases: -&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase I: Learn &amp;amp; Skill Up Schedule (Mar 2 - 13)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Self-paced quests that teach core AI patterns,&lt;/li&gt;
&lt;li&gt;Interactive Expert-led sessions on Microsoft Reactor (Livestreams) and Discord (Office hours &amp;amp; QnA)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1779ztlhwqxtoxdxq6d3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1779ztlhwqxtoxdxq6d3.png" alt="JavaScript AI Build-a-thon Roadmap" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day/Time (PT)&lt;/th&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;Links to join&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mon 3/2, 8:00 AM PST&lt;/td&gt;
&lt;td&gt;Local AI Development with Foundry Local&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.microsoft.com/en-us/reactor/events/26772/" rel="noopener noreferrer"&gt;Livestream&lt;/a&gt; &lt;br&gt; &lt;a href="https://discord.gg/microsoftfoundry?event=1465380906842853666" rel="noopener noreferrer"&gt;Discord Office Hour&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wed 3/4, 8:00 AM PST&lt;/td&gt;
&lt;td&gt;End-to-End Model Development on Microsoft Foundry&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.microsoft.com/en-us/reactor/events/26773/" rel="noopener noreferrer"&gt;Livestream&lt;/a&gt; &lt;br&gt; &lt;a href="https://discord.gg/microsoftfoundry?event=1470927803888173109" rel="noopener noreferrer"&gt;Discord Office Hour&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fri 3/6, 9:00 AM PST&lt;/td&gt;
&lt;td&gt;Advanced RAG Deep Dive + Guided Project&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.microsoft.com/en-us/reactor/events/26775" rel="noopener noreferrer"&gt;Livestream&lt;/a&gt; &lt;br&gt; &lt;a href="https://discord.gg/microsoftfoundry?event=1465381686362509323" rel="noopener noreferrer"&gt;Discord Office Hour&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mon 3/9, 8:00 AM PST&lt;/td&gt;
&lt;td&gt;Design &amp;amp; Build an Agent E2E with Agent Builder (AITK)&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.microsoft.com/en-us/reactor/events/26776/" rel="noopener noreferrer"&gt;Livestream&lt;/a&gt; &lt;br&gt; &lt;a href="https://discord.gg/microsoftfoundry?event=1465382167894036481" rel="noopener noreferrer"&gt;Discord Office Hour&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wed 3/11, 8:00 AM PST&lt;/td&gt;
&lt;td&gt;Build, Scale &amp;amp; Govern AI Agents + Guided project&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://developer.microsoft.com/en-us/reactor/events/26786/" rel="noopener noreferrer"&gt;Livestream&lt;/a&gt; &lt;br&gt; &lt;a href="https://discord.gg/microsoftfoundry?event=1465382908687814840" rel="noopener noreferrer"&gt;Discord Office Hour&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Build-a-thon prioritizes practical learning, so you'll complete &lt;strong&gt;2 guided projects&lt;/strong&gt; by the end of this phase:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A Local Serverless AI chat with RAG&lt;/strong&gt;&lt;br&gt;
Concepts covered include: -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RAG Architecture&lt;/li&gt;
&lt;li&gt;RAG Ingestion pipeline&lt;/li&gt;
&lt;li&gt;Query &amp;amp; Retrieval&lt;/li&gt;
&lt;li&gt;Response Generation (LLM Chains)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc733enuiuhxw2cx3jde7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc733enuiuhxw2cx3jde7.png" alt="Serverless Chat LangChain.js CodeTour" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Burger Ordering AI Agent&lt;/strong&gt;&lt;br&gt;
Concepts covered include: -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designing AI Agents&lt;/li&gt;
&lt;li&gt;Building MCP Tools (Backend API Design)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl74vmkvwp1c3m1k6g08m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl74vmkvwp1c3m1k6g08m.png" alt="Contoso Burger Ordering Agent" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase II: Global Hack! (Mar 13 - 31)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Product demo series to showcase the latest product features that will accelerate your builder experience&lt;/li&gt;
&lt;li&gt;A Global hackathon to apply what you learn into real, working AI solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where you'll build something that matters using everything learnt in the quests, and beyond, to create an AI-powered project that solves a real problem, delights users, or pushes what's possible.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The hackathon launches on March 13, 2026.&lt;/strong&gt; Full details on registration, submission, judging criteria, award categories, prizes, and the hack phase schedule will be published when the hack goes live. Stay tuned!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But, here's what we can tell you now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🏆 &lt;strong&gt;6 award categories&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Product demo showcases&lt;/strong&gt; throughout the hack phase to keep you building with the latest tools&lt;/li&gt;
&lt;li&gt;👥 Teams of up to 4 or solo. Your call&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Start Now (Join the Community)
&lt;/h2&gt;

&lt;p&gt;Join our community to connect with other participants and experts from Microsoft &amp;amp;. GitHub to support your builder journey.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foundry Discord (#js-ai-build-a-thon channel):&lt;/strong&gt; &lt;a href="https://aka.ms/JSAIonDiscord" rel="noopener noreferrer"&gt;Our platform for office hours, live QnA, quick questions, community &amp;amp; expert support&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Discussions:&lt;/strong&gt; &lt;a href="https://aka.ms/JSAI_Discussions" rel="noopener noreferrer"&gt;This is where you'll share ideas, ask questions, find teammates&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social:&lt;/strong&gt; Share your progress online using &lt;strong&gt;#JSAIBuildathon&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Register now at &lt;a href="https://aka.ms/JSAIBuildathon" rel="noopener noreferrer"&gt;aka.ms/JSAIBuildathon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See you soon!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>langchain</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building an AI Study Agent - How GitHub Copilot CLI &amp; SDK helped Reimagine LMS</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Wed, 18 Feb 2026 09:58:24 +0000</pubDate>
      <link>https://dev.to/juliamuiruri4/building-an-ai-study-agent-how-github-copilot-cli-sdk-helped-reimagine-lms-279n</link>
      <guid>https://dev.to/juliamuiruri4/building-an-ai-study-agent-how-github-copilot-cli-sdk-helped-reimagine-lms-279n</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;What if your Learning Management System didn't just host lecture documents, assignments, and grades - but actually understood them?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every time I sit through a lecture, a constant thought lingers: &lt;em&gt;"I love what I'm studying, don't get me wrong - but it's a lot!"&lt;/em&gt; These are 3-hour lectures, a little too much content with piles of reference materials - how do I create efficient study routines beyond the lectures? With the world moving toward an agentic future, AI should help but having read so many posts on AI personalization for education systems, in my experience today, that personalized support isn't here - YET!&lt;/p&gt;

&lt;p&gt;Here is the catch though! I don't have weeks to design an architecture, plan every component, and slowly build my way there. I have a problem and a rough idea of a solution, and I need a working prototype &lt;em&gt;fast!&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwxik9zsw5n9855bkr5o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwxik9zsw5n9855bkr5o.gif" alt="Typing copilot --banner on the terminal to launch Copilot CLI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Staring at an empty folder with a half-baked idea and not exactly sure where to start, I spun up the terminal and launched a Copilot Agent in &lt;strong&gt;/plan&lt;/strong&gt; mode for a brainstorming session. &lt;em&gt;You know - to help me think&lt;/em&gt;.&lt;br&gt;
This was less of a building session and more of an interactive brainstorm with the agent asking clarifying questions about features, stack preferences, and constraints, then returned a &lt;strong&gt;comprehensive implementation plan in seconds&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;That step alone was incredibly valuable: it didn't just give the agent a picture of what I wanted to build, it also surfaced scenarios I hadn't even thought of. Even without the full implemenation, that step alone was enough to move my idea forward, and this has influenced my normal ideation routine which is now: &lt;strong&gt;idea&lt;/strong&gt; → &lt;strong&gt;brainstorm with Copilot /plan mode&lt;/strong&gt; → &lt;strong&gt;save the plan&lt;/strong&gt; → &lt;strong&gt;iterate&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;With the plan ready, you might tell the agent to “Start Implementation,” and it'll likely do a great job, but I prefer a five-phase workflow that balances speed, structure and my desired  level of involvement in the project &lt;em&gt;(phases may vary by use case)&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngmloio049d9jo1s6w74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngmloio049d9jo1s6w74.png" alt="Five-phase workflow withing with AI coding tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is how I think about the stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Brainstorm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal here is to ensure the idea is crystal clear, not just to the builder (me), but to the agent(s), and more importantly - that you are on the same page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Research&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This phase is important to surface the latest docs, announcements, and decision factors so in as much as most of the implementation is delegated to the agent(s), builders (I) have a clear understanding of reasons why database/ framework/ provider X was chosen over Y.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Project Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where the agent focuses on installs, project scaffolding, configuration, and defining how components in the architecture design communicate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Core Functionality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main goal here is to implement the core logic behind the system’s essential behavior, followed by a thorough validation that APIs and DB schemas map to the target features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Language models rarely struggle with UI design work. The trick to get the &lt;em&gt;perfect&lt;/em&gt; frontend with a single prompt in my experience, is to save this task for last and the agent will not only factor in the features already implemented, but will also build a design that anticipates and accommodates future enhancements that you thought about and noted in the brainstorm notes (plan docs). &lt;/p&gt;

&lt;p&gt;With these phases documented, plus the plan docs stored in my project directory, I'm confident that when I switch to different agents working on my project, they'll all have a clear, common and referenceable north star and can work on whatever component or feature I delegate to them with the right context.&lt;/p&gt;

&lt;p&gt;After the first iteration of this workflow, in a matter of minutes, I had a full stack application, with a beautiful UI and I could browse through the courses, with the ability to upload notes (pdf and text files) which were stored in the database. &lt;/p&gt;

&lt;p&gt;Hooray! Happy that it worked, but - is there anything extraordinary about that? Not really, since most current LMS can already do this.&lt;/p&gt;

&lt;p&gt;But, here is where we step up the game.&lt;/p&gt;

&lt;p&gt;Instead of uploading school docs and have them sit there, a file upload kicks off an &lt;strong&gt;ingestion pipeline&lt;/strong&gt; to build a knowledge base that language models can reason over.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptsby3aq5bae3cnuckem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptsby3aq5bae3cnuckem.png" alt="School Agent RAG pipeline"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So the backend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extracts the file content. &lt;em&gt;Output: large and long text block&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;applies a chunking strategy to break the long text block into smaller text groups. &lt;em&gt;Output: chunks of roughly 512 tokens each with a 100 token overlap for context continuation&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;vector embeddings generation. &lt;em&gt;Output: Embeddings stored in a single db (along with my existing data) using the pgvector extension&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now with my data in a format that language models can understand, the next part involves adding an intelligent layer and we achieve this in 2 steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Expose API endpoints in a format that language models can use (tools),&lt;/li&gt;
&lt;li&gt;Create an autonomous AI workflow that will handle the tool orchestration and determine when to use what.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Enter Model Context Protocol (MCP)
&lt;/h2&gt;

&lt;p&gt;APIs are designed for humans as the primary users with a discovery path optimized for going through API docs to find endpoints and creating custom integrations to consume them. This doesn't work for language models which instead need a more dynamic, self-discoverable, runtime approach encapsulated in a standardized interface for AI. &lt;/p&gt;

&lt;p&gt;This is what the Model Context Protocol provides, a standard that connects AI native apps/ agents to data and tools dynamically.&lt;/p&gt;

&lt;p&gt;In the steps above, Copilot CLI uses this very same protocol to pull data from external sources, accessing documentation on how the MCP architecture works and how to build and connect to MCP servers, and in a single prompt, is able to extend my existing backend (API Layer) into an MCP server with tools that will allow the agent to perform actions dynamically. That is either reading course material, generating question-answer pairs from the course content for quizzes, extracting coding exercises and updating my completion progress among other functions.&lt;/p&gt;

&lt;p&gt;The quickest way to test this MCP setup is with GitHub Copilot as the MCP client, since I'm yet to build any agentic workflows. I'm already on VS Code, so I simply (1) add the mcp server configuration to my &lt;code&gt;.vscode/mcp.json&lt;/code&gt; and now the tools are (2) accessible within the Copilot chat window. I start testing with my (3) custom School Agent, comparing different prompts and (4) tool use accuracy to get a feel of how the agent experience would look like in the app. &lt;em&gt;And of course you can use this through the Copilot CLI if you prefer working from the terminal.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zndx662lzsjy1ym8bsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zndx662lzsjy1ym8bsf.png" alt="School Agent config and testing in VS Code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's step 1. Step 2 is building the agent itself. &lt;/p&gt;

&lt;h2&gt;
  
  
  Enter GitHub Copilot SDK
&lt;/h2&gt;

&lt;p&gt;When it comes to building agents, there are so many Agent Development Kits and Frameworks that make it easier to create and manage agent execution loops, but a recent (and exciting) announcement from GitHub is the new &lt;strong&gt;GitHub Copilot SDK&lt;/strong&gt;. I'll link to the repo in the resources section, but basically what this means is that you can let the existing infrastructure that powers today's GitHub Copilot, handle all the building blocks of an agent - tool discovery and orchestration, session management, real time streaming, multi-turn loops,etc. and just programmatically call that agent workflow in your application.&lt;/p&gt;

&lt;p&gt;There wasn't much to go on terms of documentation as this is still  very new, but from what I read in the announcement blog &amp;amp; SDK repo - this was mind-blowing. I had to try it!&lt;br&gt;
I'll admit that when I started off with this project, I had a different idea of how to approach the agentic part of it, but luckily the SDK was announced before I got to it and decided that it was worth giving it a try. I am proud to say that I wasn't disappointed.&lt;/p&gt;

&lt;p&gt;I jumped into a brainstorming session with my buddy Copilot CLI, who had context from the SDK repo and settled on an approach that needed an aspect of specialization capabilities. Instead of having one agent handle all tasks, let's have smaller specialized agents for each. i.e.,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I like to frequently quiz myself on topics - let's have an agent that does that one task PERFECTLY!&lt;/li&gt;
&lt;li&gt;I'm struggling to track the completion of exercises provided in a course text pdf document - let's have an agent specialized on extracting coding exercises from the eBook, tracking my progress and helping out when I'm stuck or if I need a quick review on my code attempts. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The beauty of using the Copilot SDK is that if you have such an idea, you won't have to worry about building it from scratch because chances are, someone already thoughout it out and there is likely a feature or a copilot-native pattern ready for you to use. This case is no exception - because the idea of providing Copilot specialized capabilities for specific tasks is already implemented through &lt;strong&gt;Agent Skills&lt;/strong&gt;.&lt;br&gt;
So all I needed was to define a &lt;code&gt;SKILL.md&lt;/code&gt; document for the specialized tasks I needed - flashcard generator &lt;code&gt;.github/skills/flashcard-generator/SKILL.md&lt;/code&gt; &amp;amp; Java practice tracker &lt;code&gt;.github/skills/java-practice-tracker/SKILL.md&lt;/code&gt; and pass a &lt;code&gt;skill&lt;/code&gt; property to the agent in code, which again the Copilot CLI implemented in minutes.&lt;/p&gt;

&lt;p&gt;In just a couple of hours, &lt;em&gt;(with so many breaks in between)&lt;/em&gt;, I ended up with &lt;strong&gt;School Agent&lt;/strong&gt; that takes learning management systems to the next level, and this is just the beginning. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqguaxj13v0jp1h3l55b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqguaxj13v0jp1h3l55b.png" alt="School agent architecture diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With tools like the Copilot CLI, SDK, and other AI dev tools, experimentation has never been easier and I have so many ideas (I'm sure you do too), of how to make this system even more useful but I'm confident that in a short while, I'll be back with the next set of features built out and working to perfection. &lt;/p&gt;

&lt;p&gt;I'm evolving School Agent into an architecture that is program-agnostic and I hope to share it with you soon to try it out and make it your own.&lt;br&gt;
Yes things are moving fast in the AI space, but at least this way I have AI working &lt;strong&gt;with me&lt;/strong&gt; and &lt;strong&gt;for me&lt;/strong&gt; to improve an actual real world experience (and so can you). I encourage you to not just take other people's word for it, - you saw a cool demo on YouTube/ X recently, or you enjoyed this post &lt;em&gt;(I hope you did)&lt;/em&gt;, but don't settle for that. Find an immediate problem you are having today and tinker around. Build something. Anything. Everything!&lt;/p&gt;

&lt;p&gt;To students: Would you use School Agent? What does it need to do to be even more useful to you?&lt;br&gt;
For educators: How can your students benefit from such a tool? What would you also like to see implemented to support you?&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Check out this video walk-through of School Agent


  &lt;iframe src="https://www.youtube.com/embed/M2AqsalF14I"&gt;
  &lt;/iframe&gt;


&lt;/li&gt;
&lt;li&gt;Get started with &lt;a href="https://github.com/github/copilot-cli" rel="noopener noreferrer"&gt;Copilot CLI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Get started with the &lt;a href="https://github.com/github/copilot-sdk" rel="noopener noreferrer"&gt;Copilot SDK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/concepts/agents/about-agent-skills" rel="noopener noreferrer"&gt;Agent Skills&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you enjoyed this post, let's connect on &lt;a href="https://www.linkedin.com/in/juliamuiruri/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;, &lt;a href="https://x.com/juliamuiruri4" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://bsky.app/profile/juliamuiruri.bsky.social" rel="noopener noreferrer"&gt;Bsky&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubcopilotcli</category>
      <category>githubcopilotsdk</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>🚀 JS AI Build‑a‑thon: One Week In &amp; Join Us Now!</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Mon, 16 Jun 2025 09:40:00 +0000</pubDate>
      <link>https://dev.to/azure/js-ai-build-a-thon-one-week-in-join-us-now-5g86</link>
      <guid>https://dev.to/azure/js-ai-build-a-thon-one-week-in-join-us-now-5g86</guid>
      <description>&lt;p&gt;We launched the JS AI Build‑a‑thon last week — an epic learning journey crafted for JavaScript and TypeScript developers who want to step confidently into the world of AI.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/MiigDco0x_U"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you haven’t jumped in yet, now’s the perfect moment—the journey is just getting started!&lt;/p&gt;

&lt;p&gt;Visit 👉🏽 &lt;a href="https://aka.ms/JSAIBuildathon" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathon&lt;/a&gt; to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 Why Join the Build-a-thon?
&lt;/h2&gt;

&lt;p&gt;We’re entering a future where &lt;strong&gt;AI-first&lt;/strong&gt; and &lt;strong&gt;agentic developer experiences&lt;/strong&gt; will shape how we build — and you don’t want to be left behind.&lt;/p&gt;

&lt;p&gt;This isn’t your average hackathon. It’s a hands-on, quest-driven learning experience designed for developers, packed with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive quests that guide you step by step — from your first prototype to production-ready apps &lt;/li&gt;
&lt;li&gt;Community-powered support via our dedicated Discord and local, community-led study jams &lt;/li&gt;
&lt;li&gt;Showcase moments to share your journey, get inspired, and celebrate what you build &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're just starting your AI journey or looking to sharpen your skills with frameworks like &lt;strong&gt;LangChain.js&lt;/strong&gt;, tools like &lt;strong&gt;GitHub Models&lt;/strong&gt;, the &lt;strong&gt;Azure AI Foundry and AI Toolkit Extensions&lt;/strong&gt;, or diving deeper into &lt;strong&gt;agentic app design with MCP&lt;/strong&gt; — this is your moment to start building.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗺️ Your Build-a-thon Roadmap
&lt;/h2&gt;

&lt;p&gt;The journey is broken into milestones — each building on the last — helping you go from zero to AI engineer at your own pace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jpy704a62rgw19m5e8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jpy704a62rgw19m5e8o.png" alt="Build-a-thon Roadmap" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 What We've Tackled So Far
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;You can easily catch up!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quest 1 – Local Gen AI Prototype
&lt;/h3&gt;

&lt;p&gt;Built a GenAI prototype using GitHub Models and the AI Toolkit—running completely locally with no cloud required. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit90bviuxnt2ade2l5gx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit90bviuxnt2ade2l5gx.png" alt="HTML Preview" width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quest 2 – Deploy prototype to Azure AI Foundry
&lt;/h3&gt;

&lt;p&gt;Deployed the same local model to Azure AI Foundry using the VS Code extension. One-click cloud magic. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qvoyfpbxu23fd3pr5o9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qvoyfpbxu23fd3pr5o9.png" alt="Welcome to Azure AI Foundry" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quest 3 – Chat UI with Vite, Lit &amp;amp; Azure Developer CLI (azd)
&lt;/h3&gt;

&lt;p&gt;Brought your prototype to life with a responsive chat interface using Vite + Lit, plus infra managed via Bicep and azd (Azure Developer CLI). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4539xfchxyli2yvnipsm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4539xfchxyli2yvnipsm.png" alt="Chat UI with placeholder" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Today’s Quest (4): Integrate External Data with RAG
&lt;/h3&gt;

&lt;p&gt;In this quest, you’ll connect your AI app to external documents (like PDFs) and allow your app to “read” and respond using your real-world content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopqpwaxykxgl2fqct3bw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopqpwaxykxgl2fqct3bw.png" alt="Chat with employee handbook" width="408" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏭️ What's Next in the Roadmap
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3y2uee61vxmixgoq65e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3y2uee61vxmixgoq65e.png" alt="Roadmap" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips &amp;amp; Tricks to Get the Most Out of the Build-a-thon
&lt;/h2&gt;

&lt;p&gt;To make the most of your experience in the JS AI Build-a-thon, here are a few pro tips to keep in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Follow the Quests in Order:&lt;/strong&gt; Each quest builds on the previous one. Completing them sequentially ensures a smooth learning curve and helps you gradually level up your AI development skills. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dive into the Resources Section:&lt;/strong&gt; Every quest comes with a curated list of resources — links to docs, videos, tutorials, and related tools. Take time to explore these materials to deepen your understanding of the concepts introduced. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experiment Beyond the Instructions:&lt;/strong&gt; Don’t be afraid to tinker! Modify code, try different tools, and explore edge cases. This is your sandbox to learn, build, and get creative. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lean on the Community:&lt;/strong&gt; Join discussions on our Discord and connect with other developers through study jams and community channels. It’s easier (and more fun!) when you’re not building alone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ready to Start Building?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start the build-a-thon: &lt;a href="https://aka.ms/JSAIBuild-a-thon" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuild-a-thon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Join us on Discord: &lt;a href="https://aka.ms/JSAIonDiscord" rel="noopener noreferrer"&gt;https://aka.ms/JSAIonDiscord&lt;/a&gt; &lt;em&gt;(#js-ai-build-a-thon channel)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Complete study guide with timeline and weekly resources: &lt;a href="https://aka.ms/JSAIStudyGuide" rel="noopener noreferrer"&gt;https://aka.ms/JSAIStudyGuide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Set up guide: &lt;a href="https://aka.ms/JSAIBuildathonSetup" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathonSetup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Quest 1: &lt;a href="https://aka.ms/JSAIBuildathonQuest1" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathonQuest1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Quest 2: &lt;a href="https://aka.ms/JSAIBuildathonQuest2" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathonQuest2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Quest 3: &lt;a href="https://aka.ms/JSAIBuildathonQuest3" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathonQuest3&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Quest 4: &lt;a href="https://aka.ms/JSAIBuildathonQuest4" rel="noopener noreferrer"&gt;https://aka.ms/JSAIBuildathonQuest4&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Enhancing AI Integrations with MCP and Azure API Management</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Thu, 24 Apr 2025 08:29:14 +0000</pubDate>
      <link>https://dev.to/azure/enhancing-ai-integrations-with-mcp-and-azure-api-management-bpe</link>
      <guid>https://dev.to/azure/enhancing-ai-integrations-with-mcp-and-azure-api-management-bpe</guid>
      <description>&lt;p&gt;As AI Agents and assistants become increasingly central to modern applications and experiences, the need for seamless, secure integration with external tools and data sources is more critical than ever. The &lt;a href="https://modelcontextprotocol.io/introduction" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; (MCP) is emerging as a key open standard enabling these integrations - allowing AI models to interact with APIs, Databases, and other services in a consistent, scalable way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding MCP
&lt;/h2&gt;

&lt;p&gt;MCP utilizes a client-host-server architecture built upon &lt;a href="https://modelcontextprotocol.io/docs/concepts/architecture" rel="noopener noreferrer"&gt;JSON-RPC 2.0 for messaging&lt;/a&gt;.Communication between clients and servers occurs over defined transport layers, primarily:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;stdio:&lt;/strong&gt; Standard input/output, suitable for efficient communication when the client and server run on the same machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTTP with Server-Sent Events (SSE):&lt;/strong&gt; Uses HTTP POST for client-to-server messages and SSE for server-to-client messages, enabling communication over networks, including remote servers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faflf4wvljnpspjrevsd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faflf4wvljnpspjrevsd0.png" alt="MCP Architecture" width="800" height="951"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP Matters
&lt;/h2&gt;

&lt;p&gt;While Large Language Models (LLMs) are powerful, their utility is often limited by their inability to access real-time or proprietary data. Traditionally, integrating new data sources or tools required custom connectors/ implementations and significant engineering efforts. MCP addresses this by providing a unified protocol for connecting agents to both local and remote data sources - unifying and streamlining integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leveraging Azure API Management for remote MCP servers
&lt;/h2&gt;

&lt;p&gt;Azure API Management is a fully managed platform for publishing, securing, and monitoring APIs. By treating MCP server endpoints as other backend APIs, organizations can apply familiar governance, security, and operational controls. With MCP adoption, the need for robust management of these backend services will intensify. &lt;strong&gt;API Management retains a vital role in governing these underlying assets by:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applying security controls to protect the backend resources.&lt;/li&gt;
&lt;li&gt;Ensuring reliability.&lt;/li&gt;
&lt;li&gt;Effective monitoring and troubleshooting with tracing requests and context flow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this blog post, I will walk you through a practical example: hosting an MCP server behind Azure API Management, configuring credential management, and connecting with GitHub Copilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Example: Automating Issue Triage
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;To follow along with this scenario, please check out our Model Context Protocol (MCP) lab available at &lt;a href="https://github.com/Azure-Samples/AI-Gateway/blob/main/labs/model-context-protocol/model-context-protocol.ipynb" rel="noopener noreferrer"&gt;AI-Gateway/labs/model-context-protocol&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's move from theory to practice by exploring how MCP, Azure API Management (APIM) and GitHub Copilot can transform a common engineering workflow. Imagine you're an engineering manager aiming to streamline your team's issue triage process - reducing manual steps and improving efficiency.&lt;/p&gt;

&lt;p&gt;Example workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Engineers log bugs/ feature requests as GitHub issues&lt;/li&gt;
&lt;li&gt;Following a manual review, a corresponding incident ticket is generated in ServiceNow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This manual handoff is inefficient and error prone. Let's see how we can automate this process - securely connecting GitHub and ServiceNow, enabling an AI Agent (GitHub Copilot in VS Code) to handle triage tasks on your behalf.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A significant challenge in this integration involves securely managing delegated access to backend APIs, like GitHub and ServiceNow, from your MCP Server. Azure API Management's &lt;a href="https://learn.microsoft.com/azure/api-management/credentials-overview" rel="noopener noreferrer"&gt;credential manager&lt;/a&gt; solves this by centralizing secure credential storage and facilitating the secure creation of connections to your third-party backend APIs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Build and deploy your MCP server(s)
&lt;/h2&gt;

&lt;p&gt;We'll start by building two MCP servers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GitHub Issues MCP Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Provides tools to authenticate on GitHub &lt;em&gt;(authorize_github)&lt;/em&gt;, retrieve user information &lt;em&gt;(get_user)&lt;/em&gt; and list issues for a specified repository &lt;em&gt;(list_issues)&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ServiceNow Incidents MCP Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Provides tools to authenticate with ServiceNow &lt;em&gt;(authorize_servicenow)&lt;/em&gt;, list existing incidents &lt;em&gt;(list_incidents)&lt;/em&gt; and create new incidents &lt;em&gt;(create_incident&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09ycf73dzb9aisouvx8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09ycf73dzb9aisouvx8u.png" alt="GitHub Issues &amp;amp; ServiceNow Incidents MCP Servers" width="800" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are using Azure API Management to secure and protect both MCP servers, which are built using Azure Container Apps. Azure API Management's credential manager centralizes secure credential storage and facilitates the secure creation of connections to your backend third-party APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0vzg0sjx5l146bndmzk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0vzg0sjx5l146bndmzk.png" alt="MCP Server endpoints as APIs in Azure API Management" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Client Auth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can leverage &lt;a href="https://learn.microsoft.com/azure/api-management/api-management-subscriptions" rel="noopener noreferrer"&gt;API Management subscriptions&lt;/a&gt; to generate subscription keys, enabling client access to these APIs.&lt;/li&gt;
&lt;li&gt;Optionally, to further secure &lt;em&gt;/sse&lt;/em&gt; and &lt;em&gt;/messages&lt;/em&gt; endpoints, we apply the &lt;strong&gt;validate-jwt&lt;/strong&gt; policy to ensure that only clients presenting a valid JWT can access these endpoints, preventing unauthorized access. (see: &lt;a href="https://github.com/Azure-Samples/AI-Gateway/blob/main/labs/model-context-protocol/src/github/apim-api/auth-client-policy.xml" rel="noopener noreferrer"&gt;AI-Gateway/labs/model-context-protocol/src/github/apim-api/auth-client-policy.xml&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;After registering OAuth applications in GitHub and ServiceNow, we update APIM's credential manager with the respective Client IDs and Client Secrets. This enables APIM to perform OAuth flows on behalf of users, securely storing and managing tokens for backend calls to GitHub and ServiceNow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9yfd3qfi39pvzirdsk0d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9yfd3qfi39pvzirdsk0d.png" alt="GitHub credential manager settings" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting your MCP Server in VS Code
&lt;/h2&gt;

&lt;p&gt;With your MCP servers deployed and secured behind Azure API Management, the next step is to connect them to your development workflow. &lt;a href="https://code.visualstudio.com/docs/copilot/chat/mcp-servers" rel="noopener noreferrer"&gt;Visual Studio Code now supports MCP&lt;/a&gt;, enabling GitHub Copilot's agent mode to connect to any MCP-compatible server and extend its capabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Command Pallette and type in MCP: Add Server ...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmn9ia1y4ab4aiwq5btzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmn9ia1y4ab4aiwq5btzw.png" alt="MCP Add server - Visual Studio Code" width="800" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select server type as HTTP (HTTP or Server-Sent Events)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmltzvinq652tzvxrmdj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmltzvinq652tzvxrmdj7.png" alt="MCP Type - Visual Studio Code" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paste in the Server URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cvg78m28i0t8qxlurq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cvg78m28i0t8qxlurq1.png" alt="MCP Server URL - Visual Studio Code" width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provide a Server ID&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52n27abmrwllxi4ln5k1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52n27abmrwllxi4ln5k1.png" alt="MCP ID - Visual Studio Code" width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process automatically updates your &lt;strong&gt;settings.json&lt;/strong&gt; with the MCP server configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbu8ghzn2tf1rftfphpn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbu8ghzn2tf1rftfphpn.png" alt="github-mcp settings.json" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once added, GitHub Copilot can connect to your MCP servers and access the defined tools, enabling agentic workflows such as issue triage and automation. You can repeat these steps to add the ServiceNow MCP Server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkphkmmknaunjg870docu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkphkmmknaunjg870docu.png" alt="GitHub Copilot Agent Mode using github-mcp and servicenow-mcp to access tools" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Authentication and Authorization with Credential Manager
&lt;/h2&gt;

&lt;p&gt;When a user initiates an authentication workflow (e.g, via the authorize_github tool), GitHub Copilot triggers the MCP server to generate an authorization request and a unique login URL. The user is redirected to a consent page, where their registered OAuth application requests permissions to access their GitHub account. Azure API Management acts as a secure intermediary, managing the OAuth flow and token storage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmk4kbfx91chk45je5iwx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmk4kbfx91chk45je5iwx.png" alt="authorize_github workflow illustration" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flow of &lt;em&gt;authorize_github&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg5qywunqw9p7czh92cq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg5qywunqw9p7czh92cq.png" alt="authorize_github" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 - Connection initiation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot Agent invokes a sse connection to API Management via the MCP Client (VS Code)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2 - Tool Discovery:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIM forwards the request to the GitHub MCP Server, which responds with available tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3 - Authorization Request:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot selects and executes &lt;em&gt;authorize_github&lt;/em&gt; tool. The MCP server generates an &lt;em&gt;authorization_id&lt;/em&gt; for the chat session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4 - User Consent:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If it's the first login, APIM requests a login redirect URL from the MCP Server&lt;/li&gt;
&lt;li&gt;The MCP Server sends the Login URL to the client, prompting the user to authenticate with GitHub&lt;/li&gt;
&lt;li&gt;Upon successful login, GitHub redirects the client with an authorization code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 5 - Token Exchange and Storage:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The MCP Client sends the authorization code to API Management&lt;/li&gt;
&lt;li&gt;APIM exchanges the code for access and refresh tokens from GitHub&lt;/li&gt;
&lt;li&gt;APIM securely stores the token and creates an Access Control List (ACL) for the service principal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 6 - Confirmation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIM confirms successful authentication to the MCP Client, and the user can now perform authenticated actions, such as accessing private repositories.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Check out the python logic for how to implement it: &lt;a href="https://github.com/Azure-Samples/AI-Gateway/blob/main/labs/model-context-protocol/src/github/mcp-server/mcp-server.py" rel="noopener noreferrer"&gt;AI-Gateway/labs/model-context-protocol/src/github/mcp-server/mcp-server.py&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Understanding Tool Calling with underlaying APIs in API Management
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdnj2fljpzhv5jslnyn9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdnj2fljpzhv5jslnyn9.png" alt="Tool calling" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the &lt;em&gt;list_issues&lt;/em&gt; tool,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connection confirmed&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIM confirms the connection to the MCP Client
&lt;strong&gt;Issue retrieval:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The MCP Client requests issues from the MCP server&lt;/li&gt;
&lt;li&gt;The MCP Server attaches the authorization_id as a header and forwards the request to APIM&lt;/li&gt;
&lt;li&gt;The list of issues is returned to the agent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgknb539c5xkkyyiekm57.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgknb539c5xkkyyiekm57.png" alt="list issues flow" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can use the same process to add the &lt;strong&gt;ServiceNow MCP Server&lt;/strong&gt;. With both servers connected, GitHub Copilot Agent can extract issues from a private repo in GitHub and create new incidences in ServiceNow, automating your triage workflow. You can define additional tools such as &lt;em&gt;suggest_assignee&lt;/em&gt; tool, &lt;em&gt;assign_engineer&lt;/em&gt; tool, &lt;em&gt;update_incident_status&lt;/em&gt; tool, &lt;em&gt;notify_engineer&lt;/em&gt; tool, &lt;em&gt;request_feedback&lt;/em&gt; tool and other to demonstrate a truly closed-loop, automated engineering workflow - from issue creation to resolution and feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Take a look at this brief demo showcasing the entire end-to-end process:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Xf5xxhT9ySs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Azure API Management (APIM) is an essential tool for enterprise customers looking to integrate AI models with external tools using the Model Context Protocol (MCP). In this blog, we demonstrated how Azure API Management's &lt;a href="https://learn.microsoft.com/azure/api-management/credentials-overview" rel="noopener noreferrer"&gt;credential manager&lt;/a&gt; solves the secure creation of connections to your backend APIs. By integrating MCP servers with VS Code and leveraging APIM for OAuth flows and token management, you can enable secure, agentic automation across your engineering tools. This approach not only streamlines workflows like issues triage and incident creation but also ensures enterprise-grade security and governance for all APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;Using Credential Manager will help with managing &lt;strong&gt;OAuth 2.0 tokens to backend services&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Client Auth for remote MCP servers:&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AZD up: &lt;a href="https://aka.ms/mcp-remote-apim-auth" rel="noopener noreferrer"&gt;https://aka.ms/mcp-remote-apim-auth&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AI lab Client Auth: &lt;a href="https://github.com/Azure-Samples/AI-Gateway/blob/main/labs/mcp-client-authorization/mcp-client-authorization.ipynb" rel="noopener noreferrer"&gt;AI-Gateway/labs/mcp-client-authorization/mcp-client-authorization.ipynb&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have any questions or would like to learn more about how MCP and Azure API Management can benefit your organization, feel free to reach out to us. We are always here to help and provide further insights.&lt;/p&gt;

&lt;p&gt;Connect with us on LinkedIn (&lt;a href="https://www.linkedin.com/in/jukasper/" rel="noopener noreferrer"&gt;Julia Kasper&lt;/a&gt; &amp;amp; &lt;a href="https://www.linkedin.com/in/juliamuiruri/" rel="noopener noreferrer"&gt;Julia Muiruri&lt;/a&gt;) and follow for more updates, insights, and discussions on AI integrations and API management.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>apigateway</category>
      <category>api</category>
    </item>
    <item>
      <title>Announcing: Azure API Center Hands-on Workshop 🚀</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Tue, 25 Mar 2025 16:47:39 +0000</pubDate>
      <link>https://dev.to/azure/announcing-azure-api-center-hands-on-workshop-g7f</link>
      <guid>https://dev.to/azure/announcing-azure-api-center-hands-on-workshop-g7f</guid>
      <description>&lt;h2&gt;
  
  
  What is the Azure API Center Workshop?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://aka.ms/APICenter/Workshop" rel="noopener noreferrer"&gt;Azure API Center flash workshop&lt;/a&gt; is a resource designed to expand your understanding of how organizations can enhance and streamline their API management and governance strategies using &lt;a href="https://learn.microsoft.com/en-us/azure/api-center/overview" rel="noopener noreferrer"&gt;Azure API Center&lt;/a&gt;. With this practical knowledge and insights, you will be able to streamline secure API integration and enforce security and compliance with tools that evolve to meet your growing business needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqebx5aq73bvio24i4o7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqebx5aq73bvio24i4o7.png" alt="Contoso Airlines APIs" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Azure API Center is a centralized inventory designed to track all your APIs, regardless of their type, lifecycle stage, or deployment location. It enhances discoverability, development, and reuse of APIs. While &lt;a href="https://learn.microsoft.com/azure/api-management/api-management-key-concepts" rel="noopener noreferrer"&gt;Azure API Management&lt;/a&gt; focuses on API deployment and runtime governance, Azure API Center complements it by centralizing APIs and streamlining the registration of new APIs and design-time governance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who can go through the workshop?
&lt;/h2&gt;

&lt;p&gt;The Azure API Center workshop benefits anyone who is interested in improving their API development, at-scale governance, discovery, and consumption workflow experience.&lt;/p&gt;

&lt;p&gt;Throughout the workshop, we reference 3 key personas heavily involved in the API ecosystem.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Producers&lt;/strong&gt; - Individual developers or teams who consolidate API specifications and requirements and design API architectures to fit defined goals. They also develop, secure, publish, test APIs to ensure they meet functional and performance requirements and document APIs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Platform Engineers/ API Admins&lt;/strong&gt; - Establish and enforce API best practices and design standards across teams and the entire organization. They also enforce monitoring and analysis of definitions for adherence to organizational style rules, generating both individual and summary reports. This ensures timely correction of common errors and inconsistencies in your API definitions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API consumers&lt;/strong&gt; - Consumers of APIs to build systems/ applications that use services provided by the organization, or direct consumers using APIs to satisfy business needs.&lt;br&gt;
To put these personas into perspective, we use a fictitious company, Contoso Airlines, to demonstrate how API Center integrates with existing API development, deployment, governance, and discovery workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2nhdajwc4ymsax56jpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2nhdajwc4ymsax56jpq.png" alt="Contoso roles" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are passionate about teaching and skilling others on API best practices and concepts, visit the workshop's &lt;a href="https://github.com/Azure-Samples/API-Center-Workshop" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; for session delivery resources you can use for a step-by-step presentation on API Center using this workshop. Don't forget to like and star the repo ⭐&lt;/p&gt;

&lt;h2&gt;
  
  
  What will you learn after going through the workshop?
&lt;/h2&gt;

&lt;p&gt;The workshop is divided into three key pillars as follows:&lt;/p&gt;

&lt;h3&gt;
  
  
  API Inventory
&lt;/h3&gt;

&lt;p&gt;Under the API Inventory pillar, you will go through guided steps to install the Azure API Center extension on VS Code, connect to your Azure account and create an API Center resource with custom API metadata/ properties defined. You will then use GitHub Copilot to register current APIs into your API Center resource, configure environments and deployments for your APIs and set up automatic synchronization as you import more sample APIs from an API Management service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ope3bid05k64cu108cj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ope3bid05k64cu108cj.png" alt="API Inventory" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  API Governance
&lt;/h3&gt;

&lt;p&gt;You will then go through the API Governance experience first from an API producer's perspective, as you define and apply a custom API style ruleset on VS Code, and from an API Admin perspective to deploy the ruleset to Azure, and view API Analysis reports on Azure to determine the health and safety of all APIs across the organization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbodtvlqokjwqzsmrm0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbodtvlqokjwqzsmrm0f.png" alt="API Governance" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  API Discovery &amp;amp; Consumption
&lt;/h2&gt;

&lt;p&gt;Here, you will learn how you can discover all APIs on VS Code and on the Azure portal, a key step before creating any new APIs to ensure no duplication and promote reusable APIs. You will also quickly load API Documentation and test your APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq872wsp5bmrkgvw99745.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq872wsp5bmrkgvw99745.png" alt="API Discovery &amp;amp; Consumption" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where do I go to get started with the workshop?
&lt;/h2&gt;

&lt;p&gt;To get started with the workshop, you can directly go to &lt;a href="https://aka.ms/APICenter/Workshop" rel="noopener noreferrer"&gt;https://aka.ms/APICenter/Workshop&lt;/a&gt; or go through our &lt;a href="https://github.com/Azure-Samples/API-Center-Workshop" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt; where you can open issues, leave feedback and leave a star 😉&lt;/p&gt;

</description>
      <category>api</category>
      <category>apicenter</category>
      <category>apigovernance</category>
      <category>azure</category>
    </item>
    <item>
      <title>Kickstart projects with azd Templates</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Mon, 25 Nov 2024 11:30:04 +0000</pubDate>
      <link>https://dev.to/azure/kickstart-projects-with-azd-templates-3kjn</link>
      <guid>https://dev.to/azure/kickstart-projects-with-azd-templates-3kjn</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In a fast-paced world of software development, finding the right frameworks and services that cater to diverse needs can be challenging. Today’s development landscape demands that developers continuously adapt and evolve their skill sets, often juggling multiple tools and mastery of technologies to stay competitive.&lt;/p&gt;

&lt;p&gt;Current and emerging developer pain-points include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Having to make &lt;strong&gt;too many decision&lt;/strong&gt;s facing an expansive selection of options during the entire development life cycle&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Difficulty in identifying and implementing industry’s best practices&lt;/strong&gt; that could lead to potential inefficiencies and technical debt&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of repeatability&lt;/strong&gt;, making it difficult to deliver consistent results across different environments and development stages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Increased complexity of integrating AI&lt;/strong&gt; technologies into applications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of familiarity with deployment services&lt;/strong&gt; to implement applications that are efficiently designed and configured to be secure and scale to meet the growing needs of users&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Azure Developer CLI (azd)
&lt;/h2&gt;

&lt;p&gt;The Azure Developer CLI (azd) is an open-source, developer-centric command-line (CLI) tool that is part of a wider ecosystem to help you accelerate the provisioning and deployment of applications to Azure. Long gone are the many arguments and flags typically used, Azd uses intuitive, developer-friendly commands that represent key development stages, boosting your overall productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  azd Templates
&lt;/h2&gt;

&lt;p&gt;As part of this ecosystem, and the backbone to the CLI, azd uses blueprint project templates with:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proof-of-concept (PoC) starter code&lt;/strong&gt; to help you kickstart your project without starting from scratch. These templates go beyond ‘hello-world’ examples, demonstrating how to build complex systems, allowing you to customize the code, or completely replace with your own,&lt;/li&gt;
&lt;li&gt;Everything you need to get a &lt;strong&gt;Fully managed end-to-end system/ application&lt;/strong&gt; running on Azure, with &lt;strong&gt;configuration files&lt;/strong&gt; to handle one-click deployments,&lt;/li&gt;
&lt;li&gt;Reusable &lt;strong&gt;Infrastructure as Code (IaC) assets&lt;/strong&gt; to provision and maintain cloud services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ru0ire1oknfuxik58ek.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ru0ire1oknfuxik58ek.jpg" alt="Screenshot of awesome azd Template Library" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Azd empowers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every &lt;strong&gt;developer&lt;/strong&gt; to focus on writing the best code and deployment infrastructure by keeping it all in one context&lt;/li&gt;
&lt;li&gt;Every &lt;strong&gt;startup&lt;/strong&gt; to quickly prototype and deploy applications, accelerating innovation&lt;/li&gt;
&lt;li&gt;Every &lt;strong&gt;non-technical founder&lt;/strong&gt; to understand and manage their projects through intuitive commands, allowing them to focus on business strategy and market growth&lt;/li&gt;
&lt;li&gt;Every &lt;strong&gt;student developer&lt;/strong&gt; to learn industry best practices and apply them in their projects, while gaining hands-on experience with Azure, one of the leading cloud platforms, enhancing their resumes and employability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Finding azd Templates
&lt;/h2&gt;

&lt;p&gt;The key to identifying the azd template that is right for you is first of all knowing what your application needs to do. Once you have an idea of what your application needs to do and the services required, you can search for the right template that most closely matches your needs in one of two places.&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Visit the &lt;a href="https://azure.github.io/awesome-azd/" rel="noopener noreferrer"&gt;azd Template Gallery&lt;/a&gt; to get started with a range of battle-tested templates that offer a range of solutions.&lt;/li&gt;
&lt;li&gt;If you don't find your use case there, then visit the &lt;a href="https://azure.github.io/awesome-azd/" rel="noopener noreferrer"&gt;AI Template Gallery&lt;/a&gt; to get started and search through &lt;strong&gt;AI specific&lt;/strong&gt; application templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;(All deployment instructions are included in the respective templates).&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you have chosen and deployed the template of your choice, the rule of thumb is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use &lt;strong&gt;&lt;code&gt;azd deploy&lt;/code&gt;&lt;/strong&gt; if you change any of the application code&lt;/li&gt;
&lt;li&gt;use &lt;strong&gt;&lt;code&gt;azd provision&lt;/code&gt;&lt;/strong&gt; if you change of the infrastructure Bicep or Terraform code&lt;/li&gt;
&lt;li&gt;use &lt;strong&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/strong&gt; if you change both or want a quick re-deployment
Below you can see some popular example JavaScript templates that the community have been using.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template&lt;/th&gt;
&lt;th&gt;Tech Stack&lt;/th&gt;
&lt;th&gt;Architecture&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/serverless-chat-langchainjs" rel="noopener noreferrer"&gt;Serverless AI Chat with RAG using LangChain.js&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fserverless-chat-langchainjs%2Fraw%2Fmain%2Fdocs%2Fimages%2Fdemo.gif" alt="AI Chat with Enterprise Data" width="952" height="476"&gt;
&lt;/td&gt;
&lt;td&gt;Lit Web components, TypeScript, Node.js, Langchain.js&lt;/td&gt;
&lt;td&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fserverless-chat-langchainjs%2Fraw%2Fmain%2Fdocs%2Fimages%2Farchitecture.drawio.png" alt="AI Chat with Enterprise Data Arch" width="800" height="705"&gt; &lt;em&gt;Example use case: Customer Support Automation&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/azure-search-openai-javascript" rel="noopener noreferrer"&gt;ChatGPT + Enterprise data with Azure OpenAI and Azure AI Search&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fazure-search-openai-javascript%2Fraw%2Fmain%2Fdocs%2Fchat-screenshot.png" alt="ChatGPT like with Enterprise Data" width="800" height="435"&gt;
&lt;/td&gt;
&lt;td&gt;JavaScript, TypeScript, Node.js&lt;/td&gt;
&lt;td&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fazure-search-openai-javascript%2Fraw%2Fmain%2Fdocs%2Frag-architecture.png" alt="ChatGPT like with Enterprise Data Arch" width="800" height="380"&gt; &lt;em&gt;Example use case: Legal Document Analysis&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/todo-csharp-cosmos-sql" rel="noopener noreferrer"&gt;React Web App with C# API and Cosmos DB for NoSQL on Azure&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Ftodo-csharp-cosmos-sql%2Fraw%2Fmain%2Fassets%2Fweb.png" alt="TODO Sample" width="800" height="315"&gt;
&lt;/td&gt;
&lt;td&gt;JavaScript, TypeScript, C#/ .NET, React&lt;/td&gt;
&lt;td&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fazure-search-openai-javascript%2Fraw%2Fmain%2Fdocs%2Frag-architecture.png" alt="TODO Arch" width="800" height="380"&gt; &lt;em&gt;Example use case: HR Management Tool&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/azure-openai-assistant-javascript" rel="noopener noreferrer"&gt;Serverless Azure OpenAI Assistant Quick Start Function Calling&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fazure-openai-assistant-javascript%2Fraw%2Fmain%2Fdocs%2Fazure-openai-assistant-demo.png" alt="Assistants Sample" width="800" height="830"&gt;
&lt;/td&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fazure-openai-assistant-javascript%2Fraw%2Fmain%2Fdocs%2Farchitecture-diagram-assistant-javascript.png" alt="Assistants Arch" width="800" height="484"&gt; &lt;em&gt;Example use case: Customer Support ChatBot&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/openai-secure-ui-js" rel="noopener noreferrer"&gt;Azure OpenAI secure UI starter&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fopenai-secure-ui-js%2Fraw%2Fmain%2Fdocs%2Fimages%2Fdemo.gif" alt="AI Secure Sample" width="800" height="400"&gt;
&lt;/td&gt;
&lt;td&gt;Lit Web components, TypeScript, Node.js&lt;/td&gt;
&lt;td&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fopenai-secure-ui-js%2Fraw%2Fmain%2Fdocs%2Fimages%2Farchitecture-secure.drawio.png" alt="AI Secure Arch" width="800" height="745"&gt; &lt;em&gt;Example use case: E-commerce Platform Personal Shopping Assistant&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/Azure-Samples/llama-index-javascript" rel="noopener noreferrer"&gt;Serverless Azure OpenAI Quick Start with LlamaIndex (JavaScript)&lt;/a&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fllama-index-javascript%2Fraw%2Fmain%2Fdocs%2Fllama-index-javascript.png" alt="Llama Index Sample" width="800" height="589"&gt;
&lt;/td&gt;
&lt;td&gt;JavaScript, Node.js&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fllama-index-javascript%2Fraw%2Fmain%2Fdocs%2Farchitecture-diagram-llama-index-javascript.png" alt="Llama Index Arch" width="800" height="484"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What’s Coming Next?
&lt;/h2&gt;

&lt;p&gt;Stay tuned for an upcoming series that will dive deeper into these templates and more, showing the end-to-end deployment experience with azd.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/awesome-azd/" rel="noopener noreferrer"&gt;azd Template Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/awesome-azd/" rel="noopener noreferrer"&gt;azd AI Template Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/liamchampton/what-is-the-difference-between-the-azure-command-line-interface-and-azure-developer-command-line-interface-5cl3"&gt;What is the difference between the Azure Command Line Interface and Azure Developer Command Line Interface?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/?WT.mc_id=javascript-155021-juliamuiruri" rel="noopener noreferrer"&gt;Azure Developer CLI (azd) Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>azd</category>
      <category>bicep</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>Join us for Hack Together: JavaScript on Azure Global Hack from Aug 16 - 31, 2023</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Mon, 14 Aug 2023 10:18:47 +0000</pubDate>
      <link>https://dev.to/azure/join-us-for-hack-together-javascript-on-azure-global-hack-from-aug-16-31-2023-oc7</link>
      <guid>https://dev.to/azure/join-us-for-hack-together-javascript-on-azure-global-hack-from-aug-16-31-2023-oc7</guid>
      <description>&lt;p&gt;Are you interested in learning new skills and collaborating with other developers? Then you won't want to miss the Hack Together: JavaScript on Azure Global Hack, a unique opportunity for you to contribute to a real-world end-to-end Open-source project alongside Microsoft engineers &amp;amp; global developers! &lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;a href="https://www.youtube.com/shorts/NBRdZNXnjmM?feature=share" rel="noopener noreferrer"&gt;
      youtube.com
    &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;This program is designed to help you improve your coding skills and build your network with other developers. Hack Together opens on August 16, 2023, with our live keynote. &lt;a href="https://aka.ms/JSOnAzureRegistration" rel="noopener noreferrer"&gt;Register here&lt;/a&gt; and start hacking today following the guidelines on our pre-requisite page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join Live Streams
&lt;/h2&gt;

&lt;p&gt;We will host live events throughout hack together to inspire you with ideas and provide access to learning resources to help you on your app building journey.&lt;br&gt;
Add &lt;a href="https://developer.microsoft.com/en-us/reactor/series/s-1173/" rel="noopener noreferrer"&gt;these events&lt;/a&gt; to your calendar using our invite so that you don’t miss out!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aug 16: Hack Together Launch – Opening Keynote&lt;/li&gt;
&lt;li&gt;Aug 17: Introduction to GitHub Copilot&lt;/li&gt;
&lt;li&gt;Aug 21: Build your Frontend with Azure Static Web Apps&lt;/li&gt;
&lt;li&gt;Aug 24: Build a Serverless Backend with Azure Functions&lt;/li&gt;
&lt;li&gt;Aug 28: Build and connect to a Database using Azure Cosmos DB&lt;/li&gt;
&lt;li&gt;Aug 31: Introduction to Azure OpenAI Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34y4hbcqx4725pfkpsz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34y4hbcqx4725pfkpsz6.png" alt="Hack together roadmap"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Where to get started.
&lt;/h2&gt;

&lt;p&gt;After you &lt;a href="https://aka.ms/JSOnAzureRegistration" rel="noopener noreferrer"&gt;register&lt;/a&gt;, introduce yourself in our &lt;a href="https://aka.ms/JS_OnAzureDiscussion" rel="noopener noreferrer"&gt;GitHub Discussion&lt;/a&gt; forum, and start networking with other developers and Microsoft Experts!&lt;/p&gt;

&lt;p&gt;Star &amp;amp; Fork the &lt;a href="https://github.com/Azure-Samples/contoso-real-estate" rel="noopener noreferrer"&gt;Contoso Real Estate repository&lt;/a&gt; to go through the codebase in preparation for your contribution Hack Together.&lt;/p&gt;

&lt;p&gt;Join our &lt;a href="https://aka.ms/JavaScriptonAzure1" rel="noopener noreferrer"&gt;collection of resources&lt;/a&gt; that will help you have hands-on experience and set up developer tools to contribute to the Contoso Real Estate open-source project! Join to learn and develop essential skills to build enterprise-grade modern composable frontends and cloud-native applications.&lt;/p&gt;




&lt;h2&gt;
  
  
  Gear up
&lt;/h2&gt;

&lt;p&gt;Activate &lt;a href="https://education.github.com/pack" rel="noopener noreferrer"&gt;GitHub Student Developer Pack&lt;/a&gt;, to access free Azure credits from Azure for Students, GitHub Copilot and GitHub Codespaces&lt;/p&gt;




&lt;h2&gt;
  
  
  Incentives
&lt;/h2&gt;

&lt;p&gt;All participants whose contributions are accepted into the project will receive an &lt;strong&gt;Open-Source contributor badge&lt;/strong&gt; from Microsoft!&lt;/p&gt;

&lt;p&gt;See you all!&lt;/p&gt;

</description>
      <category>contosorealestate</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>hacktogether</category>
    </item>
    <item>
      <title>How to build Power Apps Custom Controls using TypeScript</title>
      <dc:creator>Julia Muiruri</dc:creator>
      <pubDate>Mon, 28 Nov 2022 07:07:31 +0000</pubDate>
      <link>https://dev.to/juliamuiruri4/how-to-build-power-apps-custom-controls-using-typescript-20m2</link>
      <guid>https://dev.to/juliamuiruri4/how-to-build-power-apps-custom-controls-using-typescript-20m2</guid>
      <description>&lt;p&gt;I recently learned about 2 exciting ways that you can use your coding skills to extend the functionality of the Power Platform. The 2 ways😁:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using your experience of working with APIs to &lt;a href="https://techcommunity.microsoft.com/t5/educator-developer-blog/capstone-project-build-an-independent-publisher-connector/ba-p/3655738?WT.mc_id=academic-82025-juliamuiruri"&gt;build custom connectors&lt;/a&gt; that allow Low Code Applications to connect to external and your favorite data sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tools &amp;amp; Concepts:&lt;/strong&gt; VS Code, Power Platform CLI (pac), Postman, GitHub, APIs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[&lt;em&gt;Focus for this blog&lt;/em&gt;] Bringing in your coding skills to build custom controls that will be deployed to the Dataverse to be accessed by citizen developers as drag-and-drop controls for their applications. Learn why you should build custom controls in this 2-minute video:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tools &amp;amp; Concepts:&lt;/strong&gt; VS Code, Power Platform CLI (pac), PowerApps Component Framework (PCF), TypeScript, Browser-debugging, Power Platform Tools Extension&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/3BPHAOyJnRs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to get you started
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Good News!&lt;/strong&gt; Join our &lt;a href="https://www.linkedin.com/groups/9248828/"&gt;LinkedIn community&lt;/a&gt; for frequent updates on different ways to use your developer experience &amp;amp; skills to improve the Power Platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Get yourself a free M365 Developer Account
&lt;/h3&gt;

&lt;p&gt;To access an environment on Power Platform for you to deploy your control, you would need to sign in using a work account. If you already have one, drop to step 2, but if not, click &lt;code&gt;join now&lt;/code&gt; on the &lt;a href="https://developer.microsoft.com/en-us/microsoft-365/dev-program/?WT.mc_id=academic-82025-juliamuiruri"&gt;M365 Developer Program page&lt;/a&gt; to create a free E5 Developer Subscription, which will allow you to create your own sandbox and you will forever be able to develop solutions for the Power Platform&lt;br&gt;
&lt;a href="https://learn.microsoft.com/en-us/office/developer-program/microsoft-365-developer-program?WT.mc_id=academic-82025-juliamuiruri"&gt;Step-by-step to create a free work account&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Initialize a Custom control
&lt;/h3&gt;

&lt;p&gt;Just like any other developer project, you need to initialize the control-project and you will use the power platform CLI directly on your VS Code terminal, i.e&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pac pcf init --name Control'sName --namespace NameSpace --template TemplateType
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UMVB_t71kCM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Testing will be done on the PowerApps Component Framework Test Environment rendered on your browser, and you can use available browser-debugging tools as well&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gEX_L15o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3em6jnsf3q6hq3utgss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gEX_L15o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3em6jnsf3q6hq3utgss.png" alt="PCF Test Environment" width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Walkthrough sample TypeScript Code to implement a simple control
&lt;/h3&gt;

&lt;p&gt;Implement your control's functionality by adding TypeScript code. Watch this short video as I briefly take you through the code that renders a simple &lt;code&gt;Hi [UserName]&lt;/code&gt; control.&lt;br&gt;
Depending on your skill-level, you can build simple controls such as this one, or more complex ones&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NTq8xxNqUDQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Deploy Control or Submit it as an Open-Source Sample
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Option 1:&lt;/strong&gt; If you would like to use the control in your own Power App, or perhaps you built the control for a specific organization to utilize for their solutions, you would ideally deploy it to the organization's environment. Note that every developer with access to that environment will be able to use your control. Watch this short video as it shows how to deploy your control to a specific Dataverse environment.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xy0dh1VLgJ4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Option 2: You can build custom controls and submit them to the &lt;a href="https://pcf.gallery/"&gt;PCF Gallery&lt;/a&gt;. This way, citizen developers from across the world can find your control and &lt;a href="https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework#how-to-run-the-sample-components"&gt;import it&lt;/a&gt; to use in their solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources you should check out
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Check out the &lt;a href="https://learn.microsoft.com/en-us/training/modules/build-power-app-component/?WT.mc_id=academic-82025-juliamuiruri"&gt;Build a Power Apps Component&lt;/a&gt; module to learn more on these concepts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/power-platform/developer/?WT.mc_id=academic-82025-juliamuiruri"&gt;Microsoft Power Platform Developer Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/power-apps/developer/component-framework/overview?WT.mc_id=academic-82025-juliamuiruri"&gt;Power Apps Component Framework Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/power-apps/#pivot=home&amp;amp;panel=developer/?WT.mc_id=academic-82025-juliamuiruri"&gt;Power Apps for developers documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>typescript</category>
      <category>powerfuldevs</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
