<?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: Aksa Fatima</title>
    <description>The latest articles on DEV Community by Aksa Fatima (@aksa_fatima_7d71f290fcd3f).</description>
    <link>https://dev.to/aksa_fatima_7d71f290fcd3f</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4078461%2Fb2eb4077-1b9b-4fe9-ac96-f28fa8fe18d5.png</url>
      <title>DEV Community: Aksa Fatima</title>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aksa_fatima_7d71f290fcd3f"/>
    <language>en</language>
    <item>
      <title>The Art of Doing Less, Learning More</title>
      <dc:creator>Aksa Fatima</dc:creator>
      <pubDate>Sun, 25 Oct 2026 06:45:50 +0000</pubDate>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f/the-art-of-doing-less-learning-more-4cd1</link>
      <guid>https://dev.to/aksa_fatima_7d71f290fcd3f/the-art-of-doing-less-learning-more-4cd1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;As a student and developer, I know how time-consuming studying can be. Sometimes, understanding the material isn't even the hardest part. Going through long notes, making summaries, preparing questions, and planning revision can take up a lot of time before you actually get to learning.&lt;/p&gt;

&lt;p&gt;That got me thinking: &lt;strong&gt;what if I could bring some of these tasks together in one simple tool?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's how I started building &lt;strong&gt;StudySloth&lt;/strong&gt;, an AI-powered study assistant built with Python and Streamlit.&lt;/p&gt;

&lt;p&gt;The idea behind the name is simple: studying takes effort, but organizing your study material shouldn't have to take so much of it!&lt;/p&gt;

&lt;p&gt;StudySloth is designed to help turn study material into useful learning resources, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summaries&lt;/strong&gt; to make lengthy notes easier to review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flashcards&lt;/strong&gt; to support active recall and revision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quizzes&lt;/strong&gt; to help students test their understanding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revision plans&lt;/strong&gt; to help organize what to study next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF support&lt;/strong&gt; so students can work with their existing study material.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of switching between different tools for each task, the goal is to make the process more convenient from one place.&lt;/p&gt;

&lt;p&gt;This project is still a work in progress, but building it has given me an opportunity to explore how AI can be used to solve everyday problems in a practical way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;I'm sharing a walkthrough of StudySloth to show how the application works, from providing study material to generating learning resources.&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Video demo:&lt;/strong&gt;   &lt;iframe src="https://www.youtube.com/embed/PnyH7_E7Cbo" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you'd like to try the project yourself, check out the code below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AKSA119" rel="noopener noreferrer"&gt;
        AKSA119
      &lt;/a&gt; / &lt;a href="https://github.com/AKSA119/StudySloth" rel="noopener noreferrer"&gt;
        StudySloth
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI-powered study assistant built with Streamlit
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;StudySloth 🦥&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Less Stress. More Learning.&lt;/strong&gt; A cloud-ready study assistant powered by open-weight AI.&lt;/p&gt;
&lt;p&gt;StudySloth turns study material into a chapter summary, flashcards, multiple-choice quizzes, and a short revision plan.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Upload a text-based PDF or paste notes.&lt;/li&gt;
&lt;li&gt;Generate a summary, flashcards, quiz questions, and revision tasks.&lt;/li&gt;
&lt;li&gt;Try a fully working demo mode without an API key.&lt;/li&gt;
&lt;li&gt;Connect a hosted OpenAI-compatible inference endpoint and an open-weight model.&lt;/li&gt;
&lt;li&gt;Download the summary as Markdown or the full pack as JSON.&lt;/li&gt;
&lt;li&gt;Quiz scoring and answer explanations.&lt;/li&gt;
&lt;li&gt;Streamlit interface with notes, flashcards, quizzes, revision plan, and settings.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.10 or newer&lt;/li&gt;
&lt;li&gt;Internet access for installing dependencies and for live hosted inference&lt;/li&gt;
&lt;li&gt;An API key from a compatible hosted inference provider for live AI (demo mode does not require one)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run locally&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Windows&lt;/span&gt;
py -m venv .venv
.venv&lt;span class="pl-cce"&gt;\S&lt;/span&gt;cripts&lt;span class="pl-cce"&gt;\a&lt;/span&gt;ctivate
pip install -r requirements.txt
streamlit run app.py&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; macOS / Linux&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AKSA119/StudySloth" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The project is built primarily with Python and Streamlit, with PDF text extraction and an AI API integration powering its main workflow.&lt;/p&gt;

&lt;p&gt;Feel free to explore the code, share feedback, or suggest improvements. I'm always looking for ways to make the project more useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built StudySloth using &lt;strong&gt;Python&lt;/strong&gt; for the application logic and &lt;strong&gt;Streamlit&lt;/strong&gt; for the user interface.&lt;/p&gt;

&lt;p&gt;I wanted to keep the interface straightforward so that users could focus on their study material rather than spend time figuring out how the application works.&lt;/p&gt;

&lt;p&gt;Some of the main parts of the project include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit:&lt;/strong&gt; For building the interactive web interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; For handling the application's logic and processing study material.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF text extraction:&lt;/strong&gt; Using &lt;code&gt;pypdf&lt;/code&gt; to extract text from uploaded documents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI integration:&lt;/strong&gt; Using an OpenAI-compatible API to send study material to an AI model and generate structured learning content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON processing:&lt;/strong&gt; To parse and organize the generated summaries, flashcards, quizzes, and revision plans for use in the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One challenge was working with the limitations of AI APIs, particularly request-size and token limits. Long study materials can require more tokens than a model's available rate limits allow, so managing the amount of input and output became an important part of making the application more reliable.&lt;/p&gt;

&lt;p&gt;It reminded me that building an AI application isn't just about sending a prompt to a model. You also have to think about how the data is handled, how responses are structured, and what happens when something goes wrong.&lt;/p&gt;

&lt;p&gt;For the AI component, I'm using an open-weight model through an API-compatible service. This lets me experiment with models and build around their capabilities without having to train a model from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For me, open innovation matters because it makes experimenting and learning much more accessible.&lt;/p&gt;

&lt;p&gt;As someone building projects and improving my development skills, having access to open-source tools such as Python, Streamlit, and PDF-processing libraries makes a real difference. I can inspect how things work, combine different technologies, and build something useful without needing to create every component myself.&lt;/p&gt;

&lt;p&gt;Open-weight AI models also make it possible to explore different approaches to AI-powered applications. Developers can compare models, experiment with prompts, and choose an approach that fits their needs and constraints.&lt;/p&gt;

&lt;p&gt;There are still practical considerations, of course. Using a model through an API can involve rate limits, service restrictions, and costs. Open-weight models don't automatically mean that every part of an application is free or open source.&lt;/p&gt;

&lt;p&gt;But the wider ecosystem gives developers more options and more opportunities to learn.&lt;/p&gt;

&lt;p&gt;That's one of the things I appreciate most about this space: you can start with a simple idea, use tools built by the community, and gradually turn that idea into a working project.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I don't have a public agent session to share yet.&lt;/p&gt;

&lt;p&gt;If I publish a session using DevRelay for this project, I'll add the link here.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The goal of StudySloth is to reduce the repetitive work that comes with preparing for a study session.&lt;/p&gt;

&lt;p&gt;Think about the usual process: read a chapter, write a summary, create flashcards, prepare practice questions, and decide what to revise next. StudySloth aims to bring those steps together and automate part of that preparation.&lt;/p&gt;

&lt;p&gt;I haven't measured the exact amount of time saved yet, so I won't claim a specific number. For now, the focus is on building a workflow that makes study preparation simpler and more organized.&lt;/p&gt;

&lt;p&gt;After all, being a little lazy about repetitive tasks can sometimes leave you with more time for the work that actually matters. 😄&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;[Add the Hacktoberfest partner prize categories that apply to your submission, after checking the challenge rules.]&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;StudySloth started with a simple idea: make studying a little easier with the help of AI.&lt;/p&gt;

&lt;p&gt;Building it has taught me that even a relatively small project involves much more than writing code. There are design decisions, API limitations, data handling, debugging, and plenty of small improvements along the way.&lt;/p&gt;

&lt;p&gt;It isn't a finished product, and there's still a lot I'd like to improve. But I think that's part of the fun of building things: you learn by making something, testing it, finding problems, and trying again.&lt;/p&gt;

&lt;p&gt;I'm glad to share StudySloth as part of the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 3: Slow and Steady&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What feature would you add to an AI-powered study assistant?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Ledgerly: A Private, Local-First Receipt and Invoice Assistant</title>
      <dc:creator>Aksa Fatima</dc:creator>
      <pubDate>Sun, 18 Oct 2026 14:33:08 +0000</pubDate>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f/ledgerly-a-private-local-first-receipt-and-invoice-assistant-19gl</link>
      <guid>https://dev.to/aksa_fatima_7d71f290fcd3f/ledgerly-a-private-local-first-receipt-and-invoice-assistant-19gl</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
Ledgerly is a local-first receipt and invoice assistant for freelancers, small businesses, and anyone who wants a clearer view of their spending without sending financial documents to a cloud AI service.&lt;/p&gt;

&lt;p&gt;Users can upload a receipt or invoice as a JPG, PNG, or PDF. Ledgerly extracts the document text in the browser, sends only that extracted text to a locally running open-weight Phi-3.5 Mini model, and converts the result into structured financial fields such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Vendor or company name&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Invoice and transaction dates&lt;br&gt;
Customer and billing details&lt;br&gt;
Line items&lt;br&gt;
Quantities and prices&lt;br&gt;
Subtotal&lt;br&gt;
Tax&lt;br&gt;
Total amount&lt;br&gt;
Payment method and notes&lt;br&gt;
The extracted information is then presented in a modern finance dashboard for quick review and organization.&lt;/p&gt;

&lt;p&gt;The people most likely to pay for Ledgerly are freelancers, independent contractors, small-business owners, and bookkeepers who need lightweight expense tracking but do not want to manually enter every receipt or upload sensitive documents to a third-party AI API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Live demo:&lt;/em&gt; &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://vercel.com/login?next=%2Fsso-api%3Furl%3Dhttps%253A%252F%252Fledgerly-nimr7jbj6-aksas-projects-7d02a49e.vercel.app%252F%26nonce%3Dcc697ef3fb7389e7704b6fd53aa4cbad131403fc12127ff4e9bbaf08088e3ffc" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;vercel.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;A useful demo flow is:&lt;/p&gt;

&lt;p&gt;Open Ledgerly.&lt;br&gt;
Choose the built-in sample invoice or upload a receipt image.&lt;br&gt;
Let the browser perform OCR or PDF text extraction.&lt;br&gt;
Run local inference with Phi-3.5 Mini.&lt;br&gt;
Review the structured invoice fields in the dashboard.&lt;br&gt;
Code&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Source code:&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AKSA119" rel="noopener noreferrer"&gt;
        AKSA119
      &lt;/a&gt; / &lt;a href="https://github.com/AKSA119/ledgerly" rel="noopener noreferrer"&gt;
        ledgerly
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;br&gt;
Ledgerly is built with Next.js and React. The interface uses a dashboard-style design inspired by modern consumer finance and social applications, with strong visual hierarchy, cards, activity views, and responsive layouts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The AI pipeline is intentionally client-side:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The user selects a JPG, PNG, or PDF.&lt;br&gt;
The file is processed in the browser.&lt;br&gt;
OCR or PDF text extraction produces plain text.&lt;br&gt;
The extracted text is passed to Phi-3.5 Mini through WebLLM.&lt;br&gt;
The model returns structured invoice data.&lt;br&gt;
Ledgerly validates and displays the extracted fields for review.&lt;br&gt;
The original document is not uploaded to a remote AI endpoint. This keeps the prototype privacy-focused and demonstrates that useful document intelligence can run directly on a user's device.&lt;/p&gt;

&lt;p&gt;The app also includes a built-in sample invoice so the complete workflow can be demonstrated without requiring users to find a test document online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Does Open Innovation Matter?&lt;/strong&gt;&lt;br&gt;
Open innovation made it possible to build Ledgerly around a model that users can inspect, run, and control instead of depending entirely on a closed AI API.&lt;/p&gt;

&lt;p&gt;A closed API would make the initial implementation easier, but it would require sending financial documents or their contents to an external provider. It could also introduce usage costs, vendor lock-in, rate limits, and uncertainty about how sensitive data is handled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Using an open-weight model with WebLLM provides several important advantages:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Private, browser-based inference&lt;br&gt;
No per-document AI API fee&lt;br&gt;
Reduced dependence on a single provider&lt;br&gt;
A transparent and reproducible technical stack&lt;br&gt;
The ability to improve prompts and parsing logic independently&lt;br&gt;
A practical demonstration of local AI for everyday business workflows&lt;br&gt;
There are trade-offs. Browser inference requires a compatible device, model download, memory, and processing time. However, for a lightweight receipt assistant, the privacy and ownership benefits make local inference a compelling option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prize Categories&lt;/strong&gt;&lt;br&gt;
Ledgerly is being submitted for categories related to:&lt;/p&gt;

&lt;p&gt;Open-source AI&lt;br&gt;
Open-weight models&lt;br&gt;
Local inference&lt;br&gt;
AI-powered productivity tools&lt;br&gt;
Privacy-focused applications&lt;br&gt;
What I Would Build Next&lt;br&gt;
The next version could add correction feedback, CSV and accounting exports, recurring vendor detection, receipt search, tax-category suggestions, and optional encrypted synchronization between devices.&lt;/p&gt;

&lt;p&gt;The long-term goal is to make Ledgerly a practical personal finance tool where AI is helpful without requiring users to give up control of their financial documents.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why Vector Search Fails at Cloud Security: Building BreachPath with FalkorDB and Autonomous Agents</title>
      <dc:creator>Aksa Fatima</dc:creator>
      <pubDate>Sun, 18 Oct 2026 07:55:03 +0000</pubDate>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f/why-vector-search-fails-at-cloud-security-building-breachpath-with-falkordb-and-autonomous-agents-392b</link>
      <guid>https://dev.to/aksa_fatima_7d71f290fcd3f/why-vector-search-fails-at-cloud-security-building-breachpath-with-falkordb-and-autonomous-agents-392b</guid>
      <description>&lt;p&gt;Imagine this scenario: It’s 2:00 AM, and your SOC detects that an external contractor’s laptop was compromised. His username is &lt;strong&gt;Dave&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;You check Dave’s permissions in AWS IAM: he only has access to a couple of staging deployment scripts. He has &lt;strong&gt;zero direct permissions&lt;/strong&gt; on the production Postgres database containing 500,000 customer credit card records.&lt;/p&gt;

&lt;p&gt;According to traditional rule engines and vector-based AI assistants, you are safe. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Except you aren't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Three hours later, your production data is dumped on the dark web. How did an unprivileged contractor bypass your security perimeter without triggering a single alarm?&lt;/p&gt;

&lt;p&gt;This is the exact problem we set out to solve with &lt;strong&gt;BreachPath&lt;/strong&gt;, an autonomous cloud security agent built for the &lt;strong&gt;FalkorDB Hackathon (Track 1: Agents That Act on Connected Data)&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Blind Spot: The Multi-Hop Trap
&lt;/h2&gt;

&lt;p&gt;In modern cloud environments, security breaches rarely happen in a straight line. Attackers don't break through steel doors; they crawl through the vents using &lt;strong&gt;transitive privilege escalation&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Dave (Contractor)]
       │ (MEMBER_OF)
       ▼
[Contractors-Dev-Group]
       │ (CAN_ASSUME)
       ▼
[StagingDeployerRole]
       │ (ATTACHED_TO)
       ▼
[CI-Runner EC2 Instance]
       │ (HAS_ACCESS_TO)
       ▼
[CI_KMS_KEY (Env Var)]
       │ (DECRYPTS)
       ▼
[ProdAdminSecret]
       │ (GRANTS_ACCESS_TO)
       ▼
[CustomerData-Postgres-Prod] 🚨 CROWN JEWEL COMPROMISED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Why Vector RAG Completely Fails Here
&lt;/h3&gt;

&lt;p&gt;Many modern AI security tools rely on &lt;strong&gt;Vector RAG&lt;/strong&gt; (embeddings stored in vector databases). &lt;/p&gt;

&lt;p&gt;If you ask a Vector RAG agent: &lt;em&gt;"Can Dave reach the customer database?"&lt;/em&gt;, the embedding of "Dave" and "Customer Database" have near-zero semantic similarity. Vector search computes vector proximity in high-dimensional space—it &lt;strong&gt;cannot traverse relationships, compute graph reachability, or find shortest paths&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To solve connected problems, &lt;strong&gt;the agent needs a graph as its context layer&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Enter BreachPath: An Agent Driven by FalkorDB
&lt;/h2&gt;

&lt;p&gt;Instead of bolting a database onto the side of an LLM as a passive archive, &lt;strong&gt;BreachPath makes FalkorDB the active cognitive layer&lt;/strong&gt; for the agent.&lt;/p&gt;

&lt;p&gt;We modeled our cloud infrastructure as a dynamic graph:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nodes:&lt;/strong&gt; IAM Users, Groups, Roles, EC2 Compute, KMS Keys, and S3/RDS Databases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edges:&lt;/strong&gt; Relationships like &lt;code&gt;MEMBER_OF&lt;/code&gt;, &lt;code&gt;CAN_ASSUME&lt;/code&gt;, &lt;code&gt;ATTACHED_TO&lt;/code&gt;, and &lt;code&gt;DECRYPTS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Multi-Hop Reasoning via Cypher Queries
&lt;/h3&gt;

&lt;p&gt;When an alert triggers on Dave’s account, the agent queries FalkorDB using Cypher’s &lt;code&gt;shortestPath()&lt;/code&gt; algorithm:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cypher"&gt;&lt;code&gt;&lt;span class="k"&gt;MATCH&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;shortestPath&lt;/span&gt;&lt;span class="ss"&gt;((&lt;/span&gt;&lt;span class="py"&gt;u:&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;name:&lt;/span&gt; &lt;span class="s1"&gt;'dave-contractor'&lt;/span&gt;&lt;span class="ss"&gt;})&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;t:&lt;/span&gt;&lt;span class="n"&gt;Storage&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;classification:&lt;/span&gt; &lt;span class="s1"&gt;'CrownJewel'&lt;/span&gt;&lt;span class="ss"&gt;}))&lt;/span&gt;
&lt;span class="k"&gt;RETURN&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;In &lt;strong&gt;under 4 milliseconds&lt;/strong&gt;, FalkorDB uncovers the hidden 6-hop lateral movement chain that would have taken a human security team days of manual log-digging to find.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Graph Algorithms as MCP Tools
&lt;/h3&gt;

&lt;p&gt;We wrapped FalkorDB’s graph algorithms into &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;find_attack_paths&lt;/code&gt;&lt;/strong&gt;: Discovers all transitive routes to sensitive assets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;calculate_blast_radius&lt;/code&gt;&lt;/strong&gt;: Uses neighborhood degree centrality to compute a numerical risk score (0 to 100) quantifying total exposure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;find_chokepoints&lt;/code&gt;&lt;/strong&gt;: Performs cut-point analysis to identify the single relationship whose removal breaks the attack chain with minimum operational disruption.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Autonomous Remediation (Not Just Chat)
&lt;/h3&gt;

&lt;p&gt;Judges and security teams don’t just want advice—they want closed-loop remediation. &lt;/p&gt;

&lt;p&gt;Based on the graph topology, BreachPath identifies that severing the &lt;code&gt;CAN_ASSUME&lt;/code&gt; relationship between &lt;code&gt;Contractors-Dev-Group&lt;/code&gt; and &lt;code&gt;StagingDeployerRole&lt;/code&gt; neutralizes the threat. The agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deletes the edge directly in the live FalkorDB Cloud graph.&lt;/li&gt;
&lt;li&gt;Auto-generates a least-privilege &lt;strong&gt;Terraform HCL policy&lt;/strong&gt; to permanently enforce the fix in production.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  What We Learned Building with FalkorDB
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Graphs Must Shape Agent Decisions, Not Sit on the Side
&lt;/h3&gt;

&lt;p&gt;Most AI agent projects fail because they use databases as dumb scratchpads. Putting FalkorDB at the center meant the graph’s topology dictated &lt;em&gt;what&lt;/em&gt; the agent investigated next, &lt;em&gt;which&lt;/em&gt; MCP tool it invoked, and &lt;em&gt;when&lt;/em&gt; it was confident enough to take action.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Sub-Millisecond Latency is a Superpower
&lt;/h3&gt;

&lt;p&gt;Because FalkorDB is built on top of Redis technologies, graph queries execute in single-digit milliseconds. When an agent is running iterative multi-hop traversals inside a tight reasoning loop, this low latency is the difference between an instantaneous real-time response and a frustrating timeout.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Deterministic Explainability Beats Black-Box Guesses
&lt;/h3&gt;

&lt;p&gt;You can never tell a Chief Information Security Officer (CISO): &lt;em&gt;"The LLM felt this account was suspicious."&lt;/em&gt;&lt;br&gt;&lt;br&gt;
With BreachPath and FalkorDB, every remediation decision is accompanied by the &lt;strong&gt;exact node-by-node audit trail&lt;/strong&gt;. The agent can prove mathematically why a link was cut and show the visual before-and-after graph.&lt;/p&gt;


&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;BreachPath is fully open-source with an interactive cyber-ops dashboard, live graph animations, and Web Audio effects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AKSA119" rel="noopener noreferrer"&gt;
        AKSA119
      &lt;/a&gt; / &lt;a href="https://github.com/AKSA119/breachpath" rel="noopener noreferrer"&gt;
        breachpath
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🛡️ BreachPath — Autonomous Cloud Attack Path &amp;amp; Blast-Radius Remediator&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;FalkorDB Hackathon Submission&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Track 1: Agents That Act on Connected Data&lt;br&gt;
&lt;strong&gt;Theme:&lt;/strong&gt; Multi-hop reasoning, graph algorithms as tools, tool selection through MCP, autonomous remediation, and explainable results.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Problem&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;In modern cloud architectures (AWS/GCP/K8s), security risks are rarely a single direct vulnerability. Instead, attackers use &lt;strong&gt;multi-hop privilege escalation&lt;/strong&gt;: an external contractor account with minimal permissions can assume a role, connect to a CI runner, read an unencrypted KMS key, and unlock the &lt;strong&gt;Crown Jewel&lt;/strong&gt; production database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vector search and traditional LLMs completely fail here&lt;/strong&gt; because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They cannot compute graph reachability or transitive permissions.&lt;/li&gt;
&lt;li&gt;They cannot run graph path algorithms (Shortest Path, Chokepoint analysis, Min-Cut).&lt;/li&gt;
&lt;li&gt;They cannot guarantee an explainable, deterministic audit trail.&lt;/li&gt;
&lt;/ol&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 The Solution: BreachPath&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;BreachPath&lt;/strong&gt; places &lt;strong&gt;FalkorDB&lt;/strong&gt; at the center of the agent's context layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge Graph:&lt;/strong&gt; Maps Users, IAM Groups, Roles, EC2 Instances, KMS…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AKSA119/breachpath" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;🛠️ &lt;strong&gt;Built With:&lt;/strong&gt; FalkorDB Cloud, Python, Vis.js, and Model Context Protocol (MCP).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;If you're building AI agents, stop asking them to guess relationships—give them a graph.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>opensource</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>AI help me to escape the one thing AI lives in — my screen.</title>
      <dc:creator>Aksa Fatima</dc:creator>
      <pubDate>Sun, 11 Oct 2026 16:32:00 +0000</pubDate>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f/ai-help-me-to-escape-the-one-thing-ai-lives-in-my-screen-3o93</link>
      <guid>https://dev.to/aksa_fatima_7d71f290fcd3f/ai-help-me-to-escape-the-one-thing-ai-lives-in-my-screen-3o93</guid>
      <description>&lt;p&gt;This is my submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;We spend so much time looking at screens that sometimes we forget to look at what's around us.&lt;/p&gt;

&lt;p&gt;A plant growing beside a road, a leaf with an unusual shape, or a tiny flower in a park can easily go unnoticed when we're busy scrolling. I wanted to build something that could make people a little more curious about the world outside.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;Jadi-Booti Solo&lt;/strong&gt; came to life. 🌱&lt;/p&gt;

&lt;p&gt;It's a nature exploration app designed to encourage people to step outside, notice plants around them, and record what they discover. You can take or upload a plant photo to try identifying it, explore plant information, keep a nature journal, and save little memories from your outdoor time. It also includes features such as voice notes and optional location-based memories.&lt;/p&gt;

&lt;p&gt;The idea isn't to make people spend more time on another app. It's to give them a reason to put their phones down, go outside, and use technology to learn something about the real world.&lt;/p&gt;

&lt;p&gt;It's for anyone who wants to reconnect with nature, whether that's a student taking a walk around campus, someone exploring a local park, or simply a person who wants to make their daily walk a little more interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt;   &lt;iframe src="https://www.youtube.com/embed/l4yvOnPqsmI" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The best way to experience the idea is to take a walk, find an interesting plant, and try exploring it with the app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AKSA119" rel="noopener noreferrer"&gt;
        AKSA119
      &lt;/a&gt; / &lt;a href="https://github.com/AKSA119/jadi-booti-solo" rel="noopener noreferrer"&gt;
        jadi-booti-solo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Jadi-Booti Solo 🌿&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An AI-powered nature exploration app and botanical memory journal built for the &lt;strong&gt;Touch Grass Hackathon Challenge&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Touch Grass Philosophy:&lt;/strong&gt; The screen is the shortest part of the experience. Use open AI to help people step away from devices, discover living flora in parks and neighborhoods, complete physical outdoor missions, and record place-linked memories.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 The 3 Core Pillars&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. AI Plant Identification (Open-Weight Vision)&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Users take a photo with their phone camera outdoors or upload a leaf/bark/flower specimen.&lt;/li&gt;
&lt;li&gt;Analyzed via &lt;strong&gt;Meta Llama 3.2 Vision (&lt;code&gt;llama-3.2-11b-vision-preview&lt;/code&gt;)&lt;/strong&gt; hosted on high-speed &lt;strong&gt;Groq LPU&lt;/strong&gt; inference.&lt;/li&gt;
&lt;li&gt;Provides common name, botanical binomial, confidence score, leaf/bark visual characteristics, traditional ecological uses, and a clear safety uncertainty notice.&lt;/li&gt;
&lt;li&gt;Audio narration reads out plant stories and observation notes in natural Hindi/English speech.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Nature Quests (Outdoor Missions)&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Physical field missions that motivate users to explore the real world
&lt;ul&gt;
&lt;li&gt;🍃 &lt;strong&gt;The Tri-Leaf Hunter:&lt;/strong&gt; Find…&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AKSA119/jadi-booti-solo" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The project includes a web-based frontend, an Express backend, plant data, and features for plant exploration and saving nature journal entries.&lt;/p&gt;

&lt;p&gt;I'd love for others to explore the code, try the project, and contribute ideas that could make it more useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built Jadi-Booti Solo as a web app with a focus on keeping the experience simple and accessible.&lt;/p&gt;

&lt;p&gt;Here's the basic setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML, CSS, and JavaScript for the interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js and Express for API routes and app functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plant data:&lt;/strong&gt; A curated collection of plant information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI features:&lt;/strong&gt; The app is designed to support plant identification from images and speech-to-text for voice notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nature journal:&lt;/strong&gt; Users can save observations and memories from their explorations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive web app features:&lt;/strong&gt; A web app structure that can make the experience feel more app-like on supported devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the challenges was getting the different parts to work together, especially when moving from local development to deployment. A feature can work on your own computer and still fail online if the frontend and backend aren't connected correctly. That taught me that building a project isn't just about making the interface look good; the underlying pieces have to work together too.&lt;/p&gt;

&lt;p&gt;I'm still working on making the deployed experience reliable, particularly the AI-powered features. I want to be honest about that rather than pretend every part is already perfect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For a project like this, open innovation matters because nature is something everyone should be able to explore, learn about, and contribute to.&lt;/p&gt;

&lt;p&gt;Open-source tools give developers a chance to experiment, learn from existing work, and build useful things without having to create every component from scratch. Open-weight AI models also offer more flexibility to developers who want to understand how their AI features work and explore different ways to run them.&lt;/p&gt;

&lt;p&gt;That flexibility is important for a project like Jadi-Booti Solo. AI can help people learn about plants, but the experience should remain accessible and should encourage people to observe the real plant instead of treating an AI answer as unquestionable truth.&lt;/p&gt;

&lt;p&gt;I'd also like the project to grow through community contributions: better plant information, more regional plants, improvements to accessibility, and new nature challenges. Someone who knows more about local plants than I do could help make the project better for everyone.&lt;/p&gt;

&lt;p&gt;That's one of the things I appreciate about open source: you don't have to build everything alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Jadi-Booti Solo is a small project, but the idea behind it means a lot to me.&lt;/p&gt;

&lt;p&gt;Technology doesn't always have to keep us indoors or glued to a screen. It can also help us become more curious about the places we live in.&lt;/p&gt;

&lt;p&gt;If this app encourages even one person to take a walk, notice a plant they would normally ignore, or learn something new about their surroundings, then I think it's doing something worthwhile.&lt;/p&gt;

&lt;p&gt;For now, my challenge to you is simple: &lt;strong&gt;put your phone away for a few minutes, step outside, and see what you notice.&lt;/strong&gt; 🌿&lt;/p&gt;

&lt;p&gt;You might be surprised by how much you've been walking past.&lt;/p&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #OpenSource #AI #Javascript
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>webdev</category>
    </item>
    <item>
      <title>DriftGuard — AI Code Sanitizer &amp; Refactor Agent Powered by Sanity Context</title>
      <dc:creator>Aksa Fatima</dc:creator>
      <pubDate>Sun, 04 Oct 2026 15:44:05 +0000</pubDate>
      <link>https://dev.to/aksa_fatima_7d71f290fcd3f/driftguard-ai-code-sanitizer-refactor-agentpowered-by-sanity-context-3feh</link>
      <guid>https://dev.to/aksa_fatima_7d71f290fcd3f/driftguard-ai-code-sanitizer-refactor-agentpowered-by-sanity-context-3feh</guid>
      <description>&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What I Built&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AI can generate code really fast.&lt;/p&gt;

&lt;p&gt;But one problem I kept running into is that the code can look completely correct while still using an old API or outdated documentation.&lt;/p&gt;

&lt;p&gt;That is why I built &lt;strong&gt;DriftGuard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;DriftGuard is an AI code auditing and refactoring agent. You give it code, and it checks that code against a structured knowledge base containing information about deprecated APIs, current versions, and their recommended replacements.&lt;/p&gt;

&lt;p&gt;For example, if the code uses an outdated Next.js API, DriftGuard can identify the issue, explain what changed, and suggest the newer approach.&lt;/p&gt;

&lt;p&gt;The main idea behind the project is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't just ask an AI whether code is correct. Give it a source of truth to check against.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here’s a short walkthrough of DriftGuard, showing how it checks code against the Sanity-powered knowledge base and identifies outdated APIs.&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Demo:&lt;/strong&gt; &lt;em&gt;[&lt;a href="https://youtu.be/3RvNo10mnC8?si=kXwCE2mkY0PN7O3m" rel="noopener noreferrer"&gt;https://youtu.be/3RvNo10mnC8?si=kXwCE2mkY0PN7O3m&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The demo shows the basic flow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code → Sanity Context → Code Rules → AI Audit → Identify outdated code → Refactor&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;em&gt;[&lt;a href="https://github.com/AKSA119/driftguard" rel="noopener noreferrer"&gt;https://github.com/AKSA119/driftguard&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;This is where Sanity became an important part of the project.&lt;/p&gt;

&lt;p&gt;Instead of keeping all the rules inside prompts or hardcoding them into the application, I created a Sanity project and modeled the coding rules as structured content.&lt;/p&gt;

&lt;p&gt;I created a &lt;strong&gt;Code Rule&lt;/strong&gt; document type with fields such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technology&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Old API / Code&lt;/li&gt;
&lt;li&gt;Replacement&lt;/li&gt;
&lt;li&gt;Explanation&lt;/li&gt;
&lt;li&gt;Official Source URL&lt;/li&gt;
&lt;li&gt;Last Verified&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I added rules for things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 15 async request APIs&lt;/li&gt;
&lt;li&gt;Vercel AI SDK 5 &lt;code&gt;addToolResult&lt;/code&gt; → &lt;code&gt;addToolOutput&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Vercel AI SDK 6 &lt;code&gt;generateObject&lt;/code&gt; deprecation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DriftGuard connects to the &lt;strong&gt;Sanity Context MCP endpoint&lt;/strong&gt; from the backend and retrieves these rules from Sanity.&lt;/p&gt;

&lt;p&gt;The retrieved content is then used alongside the user's code during the AI audit.&lt;/p&gt;

&lt;p&gt;So instead of the model simply saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I think this API is outdated."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;it has structured information from Sanity that tells it &lt;strong&gt;what changed, which version it applies to, what the replacement is, and where the information came from.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was the part of the project I found most interesting — Sanity isn't just storing content here. It is acting as the knowledge layer that the agent can actually query.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Project ID:&lt;/strong&gt; &lt;code&gt;wam7t4lk&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;code&gt;production&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The project contains the structured &lt;strong&gt;Code Rule&lt;/strong&gt; documents used by DriftGuard.&lt;/p&gt;

&lt;p&gt;This is also the project the Sanity team can inspect to see how I modeled the content behind the agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Agent Works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Code
    ↓
DriftGuard
    ↓
Sanity Context MCP
    ↓
Code Rules from Sanity
    ↓
Relevant rules retrieved
    ↓
AI Code Audit
    ↓
Outdated / deprecated APIs identified
    ↓
Sanity-grounded refactoring
    ↓
Updated Code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;The biggest thing I learned while building DriftGuard is that connecting an AI model to real, structured information changes how useful the system can be.&lt;/p&gt;

&lt;p&gt;Getting the first demo working was actually the easy part.&lt;/p&gt;

&lt;p&gt;The harder part was dealing with things like MCP connections, authentication, outdated model versions, API changes, and making sure the AI output followed the format the application expected.&lt;/p&gt;

&lt;p&gt;There were definitely a few moments where something that looked like a small change turned into a debugging session. 😅&lt;/p&gt;

&lt;p&gt;But that was also the most useful part of the build.&lt;/p&gt;

&lt;p&gt;DriftGuard started as an idea about detecting outdated code, but it ended up teaching me a lot about how &lt;strong&gt;AI agents, structured content, MCP, and real-world debugging fit together.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  sanitychallenge #sanity #dev #webdev
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>sanitychallenge</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
