<?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: Edwar Diaz</title>
    <description>The latest articles on DEV Community by Edwar Diaz (@botoom).</description>
    <link>https://dev.to/botoom</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%2F739122%2F7a4fce73-f218-44cf-938f-eb0b03ac9b90.png</url>
      <title>DEV Community: Edwar Diaz</title>
      <link>https://dev.to/botoom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/botoom"/>
    <language>en</language>
    <item>
      <title>From Windsurf to Devin Desktop: my first impressions after migrating</title>
      <dc:creator>Edwar Diaz</dc:creator>
      <pubDate>Thu, 04 Jun 2026 01:31:02 +0000</pubDate>
      <link>https://dev.to/botoom/from-windsurf-to-devin-desktop-my-first-impressions-after-migrating-1hdb</link>
      <guid>https://dev.to/botoom/from-windsurf-to-devin-desktop-my-first-impressions-after-migrating-1hdb</guid>
      <description>&lt;p&gt;I did not expect this change to happen so suddenly.&lt;/p&gt;

&lt;p&gt;After using Windsurf for more than a year, I migrated to &lt;strong&gt;Devin Desktop&lt;/strong&gt; today. For me, this feels like a meaningful change because it is not just another version update: it is another rename in the history of the product. It started as &lt;strong&gt;Codeium&lt;/strong&gt;, then became &lt;strong&gt;Windsurf&lt;/strong&gt;, and now everything is being unified under the &lt;strong&gt;Devin&lt;/strong&gt; brand.&lt;/p&gt;

&lt;p&gt;At first, the change can feel a bit unexpected. But the more I look at it, the more it makes sense. Since earlier versions, especially around Windsurf &lt;code&gt;2.3.15&lt;/code&gt;, the direction was already visible: Devin Local and Devin Cloud were becoming more integrated into the editor experience, and the official Devin website already had several signs that the product was moving toward a more unified platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  The migration experience
&lt;/h2&gt;

&lt;p&gt;One thing I really liked is that after installing and opening Devin Desktop for the first time, it showed an option to migrate from Windsurf. That migration takes care of moving the previous experience without forcing you to start from scratch.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://docs.devin.ai/desktop/devin-desktop-faq" rel="noopener noreferrer"&gt;official Devin Desktop FAQ&lt;/a&gt;, the migration preserves settings, extensions, workflows, skills, rules, and inherited Windsurf data. It also explains that Devin Desktop reads legacy paths like &lt;code&gt;~/.config/Windsurf/&lt;/code&gt; and &lt;code&gt;~/.windsurf/extensions/&lt;/code&gt;, while writing new data to &lt;code&gt;~/.config/Devin/&lt;/code&gt; and &lt;code&gt;~/.devin/extensions/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Another important detail: the &lt;code&gt;~/.codeium/&lt;/code&gt; structure does not change in this release. That matters because it contains user settings, MCP configuration, global workflows, skills, and CLI binaries related to Windsurf.&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%2Fot5j51rm7jty2j8byab0.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%2Fot5j51rm7jty2j8byab0.png" alt="Migrate from Windsurf" width="600" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Not everyone had a perfect migration
&lt;/h2&gt;

&lt;p&gt;From what I saw on X, some early users did not have a perfect migration. A few people reported missing extensions or other small issues after moving to Devin Desktop.&lt;/p&gt;

&lt;p&gt;In my case, the experience was good: I installed Devin Desktop, opened the application, selected the migration option from Windsurf, and everything worked. I did not lose my extensions or important configuration.&lt;/p&gt;

&lt;p&gt;My recommendation before migrating is simple: make a backup of your previous folders. Even if the official migration is designed to preserve everything, it is always better to keep a backup of paths like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.config/Windsurf/
~/.windsurf/
~/.codeium/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Devin Desktop is no longer just "another editor"
&lt;/h2&gt;

&lt;p&gt;The most interesting part for me is not the rename itself, but the direction of the product.&lt;/p&gt;

&lt;p&gt;In the official announcement, Devin Desktop is presented as an &lt;strong&gt;Agent Command Center&lt;/strong&gt;: a central place to manage local agents, cloud agents, sessions, spaces, and AI-assisted development work. The editor is still there, with the VS Code/Windsurf-like experience many of us already know, but the center of gravity now seems to be moving toward agent management.&lt;/p&gt;

&lt;p&gt;I like this because it reflects what is already happening in day-to-day development: we are using more AI tools, more models, more CLIs, and more coding assistants. The problem is that we often end up with multiple terminals, sessions, editors, and subscriptions open at the same time.&lt;/p&gt;

&lt;p&gt;Devin Desktop seems to be trying to solve that from a single place.&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%2Fg025rhhaq6uo6ivgehit.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%2Fg025rhhaq6uo6ivgehit.png" alt="Devin Kanban" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ACP and external coding assistants
&lt;/h2&gt;

&lt;p&gt;Another point I found very interesting is the support for &lt;strong&gt;ACP (Agent Client Protocol)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://devin.ai/blog/windsurf-is-now-devin-desktop" rel="noopener noreferrer"&gt;official Devin Desktop announcement&lt;/a&gt;, Devin Desktop can integrate with compatible agents through ACP. That opens the door to managing external assistants inside the same interface.&lt;/p&gt;

&lt;p&gt;What makes this especially interesting is that the list of assistants you can connect is starting to cover many of the names we already use every day: Claude Code, Codex, Copilot CLI, GitHub Copilot, OpenCode, Kilo Code, Cursor, Qwen Code, and other compatible agents. Not all of them will behave exactly the same, but the direction is clear: Devin Desktop wants to become a coordination layer for assistants, not just another editor.&lt;/p&gt;

&lt;p&gt;In my case, I tested it with Copilot CLI, and it was surprising to see Devin Desktop pick up sessions I already had and resume them from there. That feels powerful because I do not need to constantly jump between VS Code, Cursor, separate terminals, or different applications to manage each assistant.&lt;/p&gt;

&lt;p&gt;The idea of having one place to coordinate agents and access the models available through different subscriptions feels like a natural evolution of AI-assisted development.&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%2F1x9k1egp3so0nz3s105b.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%2F1x9k1egp3so0nz3s105b.png" alt="ACP integrations" width="800" height="711"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Devin CLI is also good news
&lt;/h2&gt;

&lt;p&gt;Another thing that excites me is that there is now a CLI experience around Devin.&lt;/p&gt;

&lt;p&gt;This puts it in the same direction as other tools that are becoming common in developer workflows, such as Gemini CLI, Antigravity CLI, Copilot CLI, and other terminal-based assistants.&lt;/p&gt;

&lt;p&gt;Having a CLI matters because you do not always want to open a full editor. Sometimes you want something lighter that you can use from a terminal, inside a server, or even on a VPS to work remotely without depending on a full graphical interface.&lt;/p&gt;

&lt;p&gt;It does not necessarily replace Devin Cloud, but it opens more possibilities for people who prefer a more controlled or terminal-first workflow.&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%2F29nqf7snigynbt96znym.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%2F29nqf7snigynbt96znym.png" alt="Devin CLI" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My first impression
&lt;/h2&gt;

&lt;p&gt;My first impression is positive.&lt;/p&gt;

&lt;p&gt;Yes, the rename can feel unexpected, especially because we already went from Codeium to Windsurf and now from Windsurf to Devin. But this time the change seems to have a clear reason: unify the ecosystem under one brand and turn the editor into a broader platform for managing agents.&lt;/p&gt;

&lt;p&gt;What I liked the most:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The migration from Windsurf appeared directly when opening Devin Desktop.&lt;/li&gt;
&lt;li&gt;I did not lose my extensions or important settings.&lt;/li&gt;
&lt;li&gt;The product keeps the editor experience I already knew.&lt;/li&gt;
&lt;li&gt;Devin Local, Devin Cloud, and Devin CLI are starting to feel like parts of the same platform.&lt;/li&gt;
&lt;li&gt;ACP support could turn Devin Desktop into a real hub for managing different assistants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I still want to keep testing it more deeply, but at first glance I like how the product is evolving.&lt;/p&gt;

&lt;p&gt;To me, Devin Desktop no longer feels like just the new name for Windsurf. It feels like the beginning of a stage where the editor becomes the place where we coordinate multiple agents, models, and workflows.&lt;/p&gt;

&lt;p&gt;And honestly, I find that pretty exciting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Official Devin Desktop FAQ: &lt;a href="https://docs.devin.ai/desktop/devin-desktop-faq" rel="noopener noreferrer"&gt;https://docs.devin.ai/desktop/devin-desktop-faq&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Devin Desktop changelog: &lt;a href="https://docs.devin.ai/desktop/changelog" rel="noopener noreferrer"&gt;https://docs.devin.ai/desktop/changelog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Official announcement: &lt;a href="https://devin.ai/blog/windsurf-is-now-devin-desktop" rel="noopener noreferrer"&gt;https://devin.ai/blog/windsurf-is-now-devin-desktop&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devin</category>
      <category>windsurf</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>From an Abandoned Angular Traceroute App to an Interactive Internet Route Lab</title>
      <dc:creator>Edwar Diaz</dc:creator>
      <pubDate>Tue, 02 Jun 2026 19:15:35 +0000</pubDate>
      <link>https://dev.to/botoom/from-an-abandoned-angular-traceroute-app-to-an-interactive-internet-route-lab-1503</link>
      <guid>https://dev.to/botoom/from-an-abandoned-angular-traceroute-app-to-an-interactive-internet-route-lab-1503</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Uni Route is an educational web app for learning how messages travel through the internet.&lt;/p&gt;

&lt;p&gt;The idea started in 2021, while I was at university taking a computer networks class. I wanted a way to make &lt;code&gt;traceroute&lt;/code&gt; easier to understand: instead of reading a long terminal output line by line, students could see the hops, latency, approximate geographic locations, and the path that a packet might take when reaching a domain or IP address.&lt;/p&gt;

&lt;p&gt;The first version was built with Angular, based on the knowledge I had from my first work experience at the time. It supported two learning modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local tracing:&lt;/strong&gt; users could run &lt;code&gt;tracert&lt;/code&gt; or &lt;code&gt;traceroute&lt;/code&gt; on their own machine and paste the result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global tracing:&lt;/strong&gt; users could use public looking glass providers to run traceroute from servers in different continents and compare how internet traffic changes depending on the origin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After a few years, the project became abandoned. Some public traceroute providers stopped working, the IP information API no longer responded as expected, dependencies aged, and the UI felt more like a student prototype than a tool I could confidently share with other learners.&lt;/p&gt;

&lt;p&gt;For this challenge, I revived it as a modern static web app and turned it into a more complete learning experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rebuilt the active app with &lt;strong&gt;React, TypeScript, and Vite&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Preserved the legacy Angular version in the repository for historical reference.&lt;/li&gt;
&lt;li&gt;Added a responsive and modern interface with &lt;strong&gt;shadcn/ui&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Replaced the old Google Maps / Angular Google Maps approach with &lt;strong&gt;mapcn + MapLibre&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Added latency charts with &lt;strong&gt;Recharts&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Added map playback, where the route is revealed hop by hop and the animation speed is scaled from latency so students can feel the difference between faster and slower hops.&lt;/li&gt;
&lt;li&gt;Added parser support for Windows and Unix-like traceroute output.&lt;/li&gt;
&lt;li&gt;Added IP classification before geolocation, so private, reserved, loopback, documentation, multicast, and other non-public ranges do not waste API calls.&lt;/li&gt;
&lt;li&gt;Added modern geolocation fallback support with IPinfo, ipgeolocation.io, and ipapi.co.&lt;/li&gt;
&lt;li&gt;Added English and Spanish i18n directly in the static app.&lt;/li&gt;
&lt;li&gt;Added documentation, unit tests, GitHub Actions, and GitHub Pages deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to create a network diagnostic tool for experts. The goal is to help students and self-learners understand the journey: "When I send a message through the internet, what are some of the networks it may cross before it reaches the destination?"&lt;/p&gt;

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

&lt;p&gt;Live app: &lt;a href="https://botoom.github.io/route/" rel="noopener noreferrer"&gt;https://botoom.github.io/route/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/BOTOOM/route" rel="noopener noreferrer"&gt;https://github.com/BOTOOM/route&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Before: legacy Angular version
&lt;/h3&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%2F07m8050jz36m4857zzhs.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%2F07m8050jz36m4857zzhs.gif" alt="Before: legacy Angular version of Uni Route from 2021" width="199" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the animation does not play in the DEV preview, open the GIF directly: &lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/07m8050jz36m4857zzhs.gif" rel="noopener noreferrer"&gt;legacy Angular demo&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  After: modern Uni Route landing page
&lt;/h3&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%2Fblc7uvm80mzqvo7edym8.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%2Fblc7uvm80mzqvo7edym8.gif" alt="After: modern Uni Route React version from 2026" width="7" height="4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the animation does not play in the DEV preview, open the GIF directly: &lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/blc7uvm80mzqvo7edym8.gif" rel="noopener noreferrer"&gt;modern React demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;The original version solved a real learning problem, but it was frozen in time.&lt;/p&gt;

&lt;p&gt;In 2021, using Angular made sense for me because it matched the tools I was learning professionally. But trying to upgrade that stack all the way from the old dependency versions to a 2026-ready application would have meant fighting years of breaking changes before even improving the product.&lt;/p&gt;

&lt;p&gt;I had already tried to upgrade it once and hit the expected problem: old packages, deprecated services, broken APIs, and a lot of effort spent only to keep the same experience alive.&lt;/p&gt;

&lt;p&gt;So this time I made a different decision: keep the educational purpose, keep the legacy code as history, but rebuild the active app from the ground up.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Angular app from 2021&lt;/td&gt;
&lt;td&gt;React + TypeScript + Vite static app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Old dependency tree&lt;/td&gt;
&lt;td&gt;Modern pnpm-based project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Maps / Angular Google Maps&lt;/td&gt;
&lt;td&gt;mapcn + MapLibre&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Harder to maintain UI&lt;/td&gt;
&lt;td&gt;Responsive shadcn/ui interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spanish-only user flow&lt;/td&gt;
&lt;td&gt;English and Spanish language switcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deprecated or unreliable external services&lt;/td&gt;
&lt;td&gt;Curated looking glass tools and geolocation fallback providers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mostly text-based output interpretation&lt;/td&gt;
&lt;td&gt;Tables, map, chart, and latency-based playback&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual/old deployment style&lt;/td&gt;
&lt;td&gt;GitHub Actions deployment to GitHub Pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Abandoned university project&lt;/td&gt;
&lt;td&gt;Shareable learning tool for students and self-learners&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One of the biggest product decisions was not to execute traceroute directly from the browser. That would be amazing, but browsers intentionally do not allow web pages to run native network diagnostic commands on a user's operating system. Instead, Uni Route teaches the safe and realistic flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy the suggested command for Windows, Linux, or macOS.&lt;/li&gt;
&lt;li&gt;Run it in your own terminal.&lt;/li&gt;
&lt;li&gt;Paste the complete result into the app.&lt;/li&gt;
&lt;li&gt;Explore the route visually.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For global routes, the app also avoids unreliable iframe embedding. Many public looking glass sites block embedding with security headers, and that is reasonable. Uni Route opens those tools externally, explains how to use them, and then normalizes the pasted result locally.&lt;/p&gt;

&lt;p&gt;The most satisfying improvement is the map playback. A static line on a map is useful, but watching the path appear hop by hop makes the concept easier to teach. Latency becomes visible instead of just numeric: slower hops take longer in the animation, making the relationship between network delay and route progression more intuitive.&lt;/p&gt;

&lt;p&gt;I also wanted the app to be responsible with geolocation APIs. Not every hop has a public IP, and not every IP should be sent to an external provider. The new version classifies private and reserved ranges first, then only calls a provider when a public IP can reasonably be geolocated. This makes the app more respectful of free-tier limits and more accurate about what it can and cannot know.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot helped me treat the revival like a real migration instead of a quick redesign.&lt;/p&gt;

&lt;p&gt;I used Copilot CLI as a coding partner to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit the old project and decide whether an Angular upgrade or a full React rebuild made more sense.&lt;/li&gt;
&lt;li&gt;Plan the migration around GitHub Pages constraints.&lt;/li&gt;
&lt;li&gt;Move the legacy Angular app into a reference folder while creating a new active application.&lt;/li&gt;
&lt;li&gt;Build a shared traceroute parsing domain for Windows and Unix-like outputs.&lt;/li&gt;
&lt;li&gt;Add tests for parser behavior, private IP classification, geolocation states, and route playback timing.&lt;/li&gt;
&lt;li&gt;Refactor repeated page logic into shared hooks and components.&lt;/li&gt;
&lt;li&gt;Review the UI with Chrome DevTools across desktop and mobile sizes.&lt;/li&gt;
&lt;li&gt;Improve contrast, copy, navigation, and user-facing explanations.&lt;/li&gt;
&lt;li&gt;Add bilingual English/Spanish i18n without changing the GitHub Pages route structure.&lt;/li&gt;
&lt;li&gt;Write documentation for setup, environment variables, local/global usage, and deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copilot was especially useful for the parts that required both memory and consistency. For example, when adding i18n, it helped identify hardcoded text across pages, shared components, domain helpers, map popups, chart labels, and error states. Instead of translating only the obvious UI, I refactored domain messages into structured codes so the parser does not return Spanish strings directly.&lt;/p&gt;

&lt;p&gt;It also helped me avoid modernizing only the surface. The final project is not just "the same app with newer colors." It now has a clearer architecture, tests, deployment automation, better provider handling, safer API usage, and a more educational experience.&lt;/p&gt;

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

&lt;p&gt;Finishing an old project is different from starting a new one.&lt;/p&gt;

&lt;p&gt;When a project has personal history, it is tempting to preserve everything exactly as it was. But finishing it sometimes means protecting the original intention while letting go of the old implementation.&lt;/p&gt;

&lt;p&gt;In this case, the intention was always the same: help people understand how internet communication travels across networks.&lt;/p&gt;

&lt;p&gt;The implementation changed completely.&lt;/p&gt;

&lt;p&gt;That made the project easier to maintain, easier to deploy, and more useful for the students and self-learners I originally wanted to help.&lt;/p&gt;

&lt;h2&gt;
  
  
  Transparency
&lt;/h2&gt;

&lt;p&gt;The modern version keeps the legacy app in the repository for reference, but the active application is a full refactor built with React, TypeScript, Vite, shadcn/ui, mapcn, MapLibre, Recharts, Zod, Vitest, and GitHub Actions.&lt;/p&gt;

&lt;p&gt;Map visualization uses MapLibre and map tiles with their required attributions. External looking glass services remain external resources, and Uni Route guides users to use them respectfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  👤 Author
&lt;/h2&gt;

&lt;p&gt;Edwar Diaz&lt;br&gt;
DEV: &lt;a class="mentioned-user" href="https://dev.to/botoom"&gt;@botoom&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/BOTOOM" rel="noopener noreferrer"&gt;https://github.com/BOTOOM&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Ignoring Token Costs Can Kill Your AI Product (and How to Fix It)</title>
      <dc:creator>Edwar Diaz</dc:creator>
      <pubDate>Wed, 25 Mar 2026 23:21:31 +0000</pubDate>
      <link>https://dev.to/botoom/why-ignoring-token-costs-can-kill-your-ai-product-and-how-to-fix-it-2c64</link>
      <guid>https://dev.to/botoom/why-ignoring-token-costs-can-kill-your-ai-product-and-how-to-fix-it-2c64</guid>
      <description>&lt;p&gt;When building applications powered by LLMs from providers like OpenAI, Google, or Mistral AI, there’s a detail that often gets overlooked:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;token cost.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At small scale, it’s barely noticeable. But once your application starts getting real usage, token consumption grows quickly—and if you’re not measuring it, you can easily end up with a feature that costs more than the value it delivers.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real problem with token usage
&lt;/h2&gt;

&lt;p&gt;Every interaction with an LLM typically involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;input tokens (your prompt)&lt;/li&gt;
&lt;li&gt;output tokens (the model’s response)&lt;/li&gt;
&lt;li&gt;sometimes cache tokens, depending on the provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Individually, these costs are small. But combined with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;longer prompts&lt;/li&gt;
&lt;li&gt;verbose outputs&lt;/li&gt;
&lt;li&gt;high request volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;they scale faster than most people expect.&lt;/p&gt;

&lt;p&gt;And there’s an important nuance here:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not all models cost the same, and not all tasks require the same type of model.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Model selection is a cost decision
&lt;/h2&gt;

&lt;p&gt;It’s common to default to the most capable model available, but that’s rarely the most efficient choice.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you don’t need a reasoning-heavy model for simple transformations&lt;/li&gt;
&lt;li&gt;you don’t need multimodal capabilities if you're only processing text&lt;/li&gt;
&lt;li&gt;many providers offer smaller or optimized variants (mini, nano, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choosing the right model affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cost&lt;/li&gt;
&lt;li&gt;latency&lt;/li&gt;
&lt;li&gt;throughput&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where cost awareness becomes part of system design, not just an afterthought.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why you should estimate costs early
&lt;/h2&gt;

&lt;p&gt;If you’re building anything beyond a prototype, you should be able to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how much does each request cost?&lt;/li&gt;
&lt;li&gt;what is the expected daily usage?&lt;/li&gt;
&lt;li&gt;what does that translate to monthly or yearly?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frameworks like LangChain, Azure AI Foundry, or AWS Bedrock usually provide token usage metrics (input/output/cache). That’s helpful, but incomplete.&lt;/p&gt;

&lt;p&gt;In many cases, you still need to map those numbers to actual pricing yourself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Calculating token costs
&lt;/h2&gt;

&lt;p&gt;If you already have token counts, the calculation is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cost = (input_tokens / 1000 * input_price) + (output_tokens / 1000 * output_price)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The challenge is when you don’t have those token counts directly.&lt;/p&gt;

&lt;p&gt;In that case, you can approximate them by tokenizing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the input text you send&lt;/li&gt;
&lt;li&gt;the expected output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives you a reasonable baseline for estimation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tools that make this easier
&lt;/h2&gt;

&lt;p&gt;There are a couple of tools that simplify this process.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM Prices
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.llm-prices.com/" rel="noopener noreferrer"&gt;https://www.llm-prices.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tool lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;input token counts&lt;/li&gt;
&lt;li&gt;select specific models&lt;/li&gt;
&lt;li&gt;estimate cost per request&lt;/li&gt;
&lt;li&gt;define custom pricing if needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Token Budget Calculator
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://tokenbudget.edwardiaz.dev/" rel="noopener noreferrer"&gt;https://tokenbudget.edwardiaz.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A more complete approach is to use a tool that combines token estimation with cost projection.&lt;/p&gt;

&lt;p&gt;With this kind of platform, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;paste input and output text&lt;/li&gt;
&lt;li&gt;automatically estimate token usage&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;calculate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cost per request&lt;/li&gt;
&lt;li&gt;daily cost&lt;/li&gt;
&lt;li&gt;monthly cost&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;define request frequency (per day / per month)&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;It also allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compare across a large set of models (100+)&lt;/li&gt;
&lt;li&gt;filter by provider or capabilities&lt;/li&gt;
&lt;li&gt;sort by cost efficiency&lt;/li&gt;
&lt;li&gt;get a recommendation for the most cost-effective model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, there is API support, which makes it possible to integrate cost estimation directly into your own systems. This is especially useful if you want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;track cost per request internally&lt;/li&gt;
&lt;li&gt;build usage dashboards&lt;/li&gt;
&lt;li&gt;enforce budgets or limits at the application level&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Planning for scale
&lt;/h2&gt;

&lt;p&gt;Once you start tracking token usage and costs, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;forecast infrastructure expenses&lt;/li&gt;
&lt;li&gt;define budgets&lt;/li&gt;
&lt;li&gt;prevent unexpected spikes&lt;/li&gt;
&lt;li&gt;choose models more intentionally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what turns an experimental feature into something sustainable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tokens also impact rate limits
&lt;/h2&gt;

&lt;p&gt;Cost is only one side of the problem.&lt;/p&gt;

&lt;p&gt;Many providers enforce limits based on tokens, such as tokens per minute. If your prompts or outputs are too large, you may run into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;throttling&lt;/li&gt;
&lt;li&gt;increased latency&lt;/li&gt;
&lt;li&gt;failed requests under load&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reducing token usage helps both with cost and system stability.&lt;/p&gt;




&lt;h2&gt;
  
  
  What comes next
&lt;/h2&gt;

&lt;p&gt;Understanding cost is the first step. The next one is optimization.&lt;/p&gt;

&lt;p&gt;In a follow-up post, I’ll go deeper into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompt optimization techniques&lt;/li&gt;
&lt;li&gt;reducing token usage without losing quality&lt;/li&gt;
&lt;li&gt;practical ways to make LLM integrations more efficient&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re not measuring token usage, you’re making decisions without visibility.&lt;/p&gt;

&lt;p&gt;Tracking tokens, estimating costs, and choosing the right model are not optional if you care about building scalable AI systems.&lt;/p&gt;

&lt;p&gt;It’s a small investment early on that can save you a lot later.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tokenization</category>
      <category>aicost</category>
      <category>performance</category>
    </item>
    <item>
      <title>I Built a Context-Aware AI Browser Mentor Powered by GitHub Copilot CLI</title>
      <dc:creator>Edwar Diaz</dc:creator>
      <pubDate>Fri, 13 Feb 2026 20:58:37 +0000</pubDate>
      <link>https://dev.to/botoom/i-built-a-context-aware-ai-browser-mentor-powered-by-github-copilot-cli-4p5j</link>
      <guid>https://dev.to/botoom/i-built-a-context-aware-ai-browser-mentor-powered-by-github-copilot-cli-4p5j</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built a Context-Aware AI Browser Mentor Powered by GitHub Copilot CLI
&lt;/h1&gt;

&lt;p&gt;What if GitHub Copilot CLI could see what you see, understand your context, and help you without breaking your workflow?&lt;/p&gt;

&lt;p&gt;That question led me to build &lt;strong&gt;DevMentorAI&lt;/strong&gt; — a browser extension that transforms Copilot CLI into a real-time AI mentor inside your browser.&lt;/p&gt;

&lt;p&gt;Built entirely with GitHub Copilot CLI — from extension to backend to landing page to release workflows.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;DevMentorAI&lt;/strong&gt; is a context-aware AI assistant that lives inside your browser and understands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What page you're on&lt;/li&gt;
&lt;li&gt;What text you've selected&lt;/li&gt;
&lt;li&gt;What you're trying to write&lt;/li&gt;
&lt;li&gt;What you're troubleshooting&lt;/li&gt;
&lt;li&gt;What you want to improve&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of copying context into prompts, DevMentorAI sends context automatically to Copilot CLI.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Core capabilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📄 Context capture from the current page&lt;/li&gt;
&lt;li&gt;📸 Screenshot understanding&lt;/li&gt;
&lt;li&gt;✍️ Grammar correction &amp;amp; rewriting&lt;/li&gt;
&lt;li&gt;🔄 Replace text directly inside inputs (emails, chats, forms)&lt;/li&gt;
&lt;li&gt;🛠 Works for development, DevOps, writing, learning, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No framework lock-in. No domain restriction. Just AI assistance anywhere.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  🌐 Project Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Landing page&lt;br&gt;
&lt;a href="https://devmentorai.edwardiaz.dev/" rel="noopener noreferrer"&gt;https://devmentorai.edwardiaz.dev/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Installation Guide&lt;br&gt;
&lt;a href="https://devmentorai.edwardiaz.dev/installation" rel="noopener noreferrer"&gt;https://devmentorai.edwardiaz.dev/installation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Repository&lt;br&gt;
&lt;a href="https://github.com/BOTOOM/devmentorai" rel="noopener noreferrer"&gt;https://github.com/BOTOOM/devmentorai&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backend NPX Package&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/devmentorai-server" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/devmentorai-server&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extension Downloads&lt;br&gt;
&lt;a href="https://github.com/BOTOOM/devmentorai/releases" rel="noopener noreferrer"&gt;https://github.com/BOTOOM/devmentorai/releases&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ▶️ Full Walkthrough
&lt;/h3&gt;

&lt;p&gt;📺 Video:&lt;br&gt;


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


.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚡ Feature Highlights
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Context-aware assistance
&lt;/h4&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%2Fv89lcr6gfzms39dmrqmb.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%2Fv89lcr6gfzms39dmrqmb.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Grammar correction replacing text directly in inputs
&lt;/h4&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%2Fvxh70tdybvvkfudmdhqa.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%2Fvxh70tdybvvkfudmdhqa.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Installation from zero using NPX backend
&lt;/h4&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%2F8rt9xt32m4ovtmgkynje.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%2F8rt9xt32m4ovtmgkynje.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗 How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Extension captures page context + optional screenshot&lt;/li&gt;
&lt;li&gt;Sends to local backend&lt;/li&gt;
&lt;li&gt;Backend communicates with Copilot CLI&lt;/li&gt;
&lt;li&gt;AI response returned&lt;/li&gt;
&lt;li&gt;Optional direct replacement into page inputs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This creates a seamless AI workflow without leaving the browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Privacy &amp;amp; Security
&lt;/h2&gt;

&lt;p&gt;DevMentorAI runs locally and respects user control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No credentials required&lt;/li&gt;
&lt;li&gt;Uses your Copilot CLI session&lt;/li&gt;
&lt;li&gt;Backend runs locally via NPX&lt;/li&gt;
&lt;li&gt;Users control what context is shared&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;Using GitHub Copilot CLI was both enriching and fun. I discovered capabilities far beyond what I previously experienced using Copilot inside editors.&lt;/p&gt;

&lt;p&gt;I started with little experience using Copilot CLI, but by following the official documentation and experimenting with slash commands, I learned how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create custom agents&lt;/li&gt;
&lt;li&gt;Implement skills (including WXT extension knowledge)&lt;/li&gt;
&lt;li&gt;Use advanced TypeScript skills&lt;/li&gt;
&lt;li&gt;Plan and execute complex builds through the CLI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the most impressive features was agent-based planning mode. Copilot could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Plan the entire feature&lt;/li&gt;
&lt;li&gt;Execute it&lt;/li&gt;
&lt;li&gt;Iterate quickly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All from the terminal — lightweight and extremely fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 What surprised me most
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Copilot CLI enabled building an entire full-stack project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser extension&lt;/li&gt;
&lt;li&gt;Backend server&lt;/li&gt;
&lt;li&gt;Landing page&lt;/li&gt;
&lt;li&gt;Release workflows&lt;/li&gt;
&lt;li&gt;NPX package&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The planning file memory system was incredibly powerful.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧪 Workflow I Discovered
&lt;/h3&gt;

&lt;p&gt;As sessions grew large, context sometimes became less effective. I learned to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start a new session per major feature&lt;/li&gt;
&lt;li&gt;Refine functionality within that session&lt;/li&gt;
&lt;li&gt;Commit once complete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This dramatically improved results.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠 Problem Solving with Copilot
&lt;/h3&gt;

&lt;p&gt;Occasionally, Copilot would get stuck in a loop trying the same solution. When that happened, guiding it to consider alternative perspectives helped it resolve issues successfully.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Why This Matters
&lt;/h2&gt;

&lt;p&gt;DevMentorAI demonstrates a new paradigm:&lt;/p&gt;

&lt;p&gt;AI assistance that adapts to your context instead of forcing you to adapt to it.&lt;/p&gt;

&lt;p&gt;GitHub Copilot CLI made this possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 Author
&lt;/h2&gt;

&lt;p&gt;Edwar Diaz&lt;br&gt;
DEV: &lt;a class="mentioned-user" href="https://dev.to/botoom"&gt;@botoom&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/BOTOOM" rel="noopener noreferrer"&gt;https://github.com/BOTOOM&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
