<?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: Ryan Kan</title>
    <description>The latest articles on DEV Community by Ryan Kan (@kansm).</description>
    <link>https://dev.to/kansm</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%2F2480019%2F0164d4e5-0ccb-4b21-af80-0ec7b9d6a6bd.png</url>
      <title>DEV Community: Ryan Kan</title>
      <link>https://dev.to/kansm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kansm"/>
    <language>en</language>
    <item>
      <title>Found an AI that actually DEPLOYS your code (not just writes it)</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Mon, 16 Jun 2025 12:23:42 +0000</pubDate>
      <link>https://dev.to/kansm/found-an-ai-that-actually-deploys-your-code-not-just-writes-it-3ig1</link>
      <guid>https://dev.to/kansm/found-an-ai-that-actually-deploys-your-code-not-just-writes-it-3ig1</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Found an AI that actually DEPLOYS your code (not just writes it)
&lt;/h1&gt;

&lt;p&gt;Just tested Manus AI and I'm genuinely shocked. Unlike ChatGPT/Claude that give you code to copy-paste, this thing actually:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Writes the code&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Sets up the environment&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Installs dependencies&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Tests everything&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;DEPLOYS to a live URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No manual setup, no "it works on my machine" issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes it fundamentally different?
&lt;/h2&gt;

&lt;p&gt;I've been testing Manus AI, and it's fundamentally different from what we're used to.&lt;/p&gt;

&lt;p&gt;Most AI tools today follow the same pattern: you ask for code, they provide snippets, you implement. Manus flips this entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's what happened when I asked it to build a TODO app:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ It created a complete React + TypeScript + Tailwind application&lt;br&gt;&lt;br&gt;
→ Set up the entire development environment&lt;br&gt;&lt;br&gt;
→ Handled all package installations and dependencies&lt;br&gt;&lt;br&gt;
→ Debugged errors autonomously&lt;br&gt;&lt;br&gt;
→ Deployed to a live, accessible URL  &lt;/p&gt;

&lt;p&gt;This isn't just code generation. &lt;strong&gt;It's end-to-end execution.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The technical architecture is fascinating 🔥
&lt;/h2&gt;

&lt;p&gt;Multiple specialized AI agents collaborate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Planning Agent:&lt;/strong&gt; Strategic task breakdown&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development Agent:&lt;/strong&gt; Code implementation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing Agent:&lt;/strong&gt; Quality assurance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment Agent:&lt;/strong&gt; Production release&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What impressed me most was &lt;strong&gt;watching it troubleshoot in real-time&lt;/strong&gt;. When a dependency failed, it automatically explored alternatives until finding a working solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key differentiators I observed:
&lt;/h2&gt;

&lt;p&gt;✓ &lt;strong&gt;VM sandbox execution environment&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✓ &lt;strong&gt;Multi-agent collaborative workflow&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✓ &lt;strong&gt;Autonomous error resolution&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✓ &lt;strong&gt;Complete deployment pipeline&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✓ &lt;strong&gt;86.5% GAIA benchmark performance&lt;/strong&gt; (industry-leading)&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger picture
&lt;/h2&gt;

&lt;p&gt;The implications for development productivity are significant. We're moving from &lt;strong&gt;"AI-assisted coding"&lt;/strong&gt; to &lt;strong&gt;"AI-executed development."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This represents a paradigm shift from advisory AI to executory AI. For teams looking to accelerate development cycles, it's worth evaluation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations worth noting:
&lt;/h2&gt;

&lt;p&gt;⚠️ Credit-based pricing model&lt;br&gt;&lt;br&gt;
⚠️ Developed by Chinese team (consider your compliance requirements)&lt;br&gt;&lt;br&gt;
⚠️ May face challenges with highly complex enterprise architectures&lt;br&gt;&lt;br&gt;
⚠️ Temporary deployment URLs have session limitations&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;The question isn't whether AI will replace developers, but how quickly it will transform our workflows.&lt;/p&gt;

&lt;p&gt;If you're tired of AI giving you code that "should work" but doesn't, this is worth trying. It's like having a junior dev who actually finishes the job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full technical analysis and benchmarks in my detailed review:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://medium.com/@kansm/manus-ai-from-code-to-deployment-in-one-shot-36d757a816c0" rel="noopener noreferrer"&gt;https://medium.com/@kansm/manus-ai-from-code-to-deployment-in-one-shot-36d757a816c0&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's your experience with execution-focused AI tools?&lt;/strong&gt; Anyone else tried this? Curious about experiences with more complex projects.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Not sponsored, just genuinely impressed by the execution-first approach&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nocode</category>
      <category>lowcode</category>
      <category>ai</category>
      <category>mcp</category>
    </item>
    <item>
      <title>My Journey Through Google AI Study Jam 2025: A Two-Month Deep Dive</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Tue, 27 May 2025 03:53:30 +0000</pubDate>
      <link>https://dev.to/kansm/my-journey-through-google-ai-study-jam-2025-a-two-month-deep-dive-34e1</link>
      <guid>https://dev.to/kansm/my-journey-through-google-ai-study-jam-2025-a-two-month-deep-dive-34e1</guid>
      <description>&lt;p&gt;I wanted to share my experience participating in Google AI Study Jam 2025 over the past two months and provide some insights for those considering it.&lt;/p&gt;

&lt;p&gt;To be honest, I'd heard about Study Jams before but always dismissed them as something for job seekers or beginners — nothing too serious. But then I discovered that completing certain missions would earn you Google swag as completion rewards. And well… I'm a sucker for developer swag and open source merchandise 😅&lt;/p&gt;

&lt;p&gt;Plus, I'd been primarily using Google's APIs for AI work, so this seemed like a great opportunity to explore Google Cloud's AI services for free. So here I am, documenting my Google Study Jam journey over these two months.&lt;/p&gt;

&lt;p&gt;Google Study Jams are typically organized by local Google Developer Groups (GDG) communities worldwide throughout the year, so timing and availability may vary by region.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏷 What is Google Study Jam?
&lt;/h2&gt;

&lt;p&gt;Google Study Jam is Google's online learning program designed for developers and IT professionals. It offers courses and hands-on labs covering Google Cloud Platform (GCP), artificial intelligence (AI), machine learning (ML), Kubernetes, and various other tech domains.&lt;/p&gt;

&lt;p&gt;Participants watch online lectures, complete hands-on assignments, and learn cloud technologies through self-paced study. Upon completion, you earn digital badges and can receive completion swag.&lt;/p&gt;

&lt;p&gt;Essentially, you study independently during the designated period through video tutorials and hands-on labs. There's a leaderboard where you can see other participants' progress, but it's fundamentally self-directed learning where you earn badges as you go.&lt;/p&gt;

&lt;p&gt;Sounds simple enough, right? That's what I thought initially. But stick with me — I think you'll find some compelling aspects by the end of this review.&lt;/p&gt;

&lt;p&gt;(It seems like 2025 has significantly expanded AI-related content due to the current AI boom.)&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hands-on Learning Focus&lt;/strong&gt;: The program uses Qwiklabs through the Google Cloud Skills Boost platform, allowing you to work in actual GCP environments. Think of it as comprehensive tutorials. Content includes videos, hands-on labs, quizzes, and documentation. More challenging courses require completing both practical labs and challenge labs.&lt;/p&gt;

&lt;p&gt;Each learning path includes videos, documentation, hands-on labs, and quizzes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free Credits&lt;/strong&gt;: Participants receive free credits for the normally paid Qwiklabs platform, letting you experience various labs without cost concerns. Initial tutorial completion grants around 209 credits to get you started.&lt;/p&gt;

&lt;p&gt;You use these credits to take the courses and labs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diverse Learning Topics&lt;/strong&gt;: You can explore virtually everything available in Google Cloud — AI (Vertex AI, Gemini), machine learning (ML), Kubernetes, Terraform for infrastructure, and more. Each course contains multiple labs, with completion times ranging from 1 hour for shorter courses to 7–9 hours for comprehensive ones. Currently, there are 1,295 courses available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Digital Badges and Swag&lt;/strong&gt;: Complete specific labs within the timeframe to earn digital badges. Meet the completion criteria (missions) to receive Google merchandise like t-shirts, stickers, backpacks, etc.&lt;/p&gt;

&lt;p&gt;The skill badges also integrate with Credly, so you can showcase them for networking or portfolio purposes at platforms like &lt;a href="https://www.credly.com" rel="noopener noreferrer"&gt;https://www.credly.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Credly is a digital badge platform that visualizes qualifications, certifications, and training completions as verifiable online credentials.&lt;/p&gt;

&lt;p&gt;For more details, check the official site: &lt;a href="https://events.withgoogle.com/cloud-studyjam/" rel="noopener noreferrer"&gt;https://events.withgoogle.com/cloud-studyjam/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Study Jams typically run once per year.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏷 Who Should Participate?
&lt;/h2&gt;

&lt;p&gt;There are no participation requirements — just fill out the application form when it opens and wait for the email confirmation. Then participate during the designated period by completing the coursework.&lt;/p&gt;

&lt;p&gt;This year, approximately 3,500 people participated according to the organizers, giving you a sense of the program's scale.&lt;/p&gt;

&lt;p&gt;So who would benefit most from this? (This is my personal assessment, so take it with a grain of salt.)&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Helpful Prerequisites
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Basic Linux Commands&lt;/strong&gt;: Most GCP labs use Cloud Shell or Compute Engine VMs. While most commands are provided, knowing vi or nano editors is helpful. Other Linux knowledge makes things smoother but isn't mandatory — though you might struggle more with troubleshooting without it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;: AI-related learning involves heavy Jupyter notebook usage, so understanding Python basics and Jupyter operations is beneficial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Integration and General Development Knowledge&lt;/strong&gt;: Beginners are welcome, but having some background significantly reduces learning time.&lt;/p&gt;

&lt;p&gt;These aren't requirements — just things that make the experience smoother. You can still dive in without them, though I'd say the difficulty level makes it more suitable for junior developers and above, or IT professionals.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Target Audience Analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;IT Professionals / Junior+ Developers ⭐⭐⭐⭐⭐&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ideal demographic. Basic development knowledge accelerates learning, and you can immediately apply the experience to real work. It gives you the opportunity to work with advanced technologies you wouldn't normally get to touch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Students / Non-IT Personnel ⭐⭐⭐&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Challenging but worthwhile if you're willing to push through the difficulty. Being free, it's worth attempting just for the broadened perspective. You'll get hands-on experience with cutting-edge technologies you've only heard about. (However, Challenge Labs might be particularly tough to complete.)&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Learning Process Characteristics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Basic Learning Process&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All courses provide step-by-step instructions for every command and process. Early stages are quite manageable since everything is laid out clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenge Labs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These test what you've learned so far, and they're genuinely challenging. Challenge Labs provide only scenarios and minimal information — you must solve problems independently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Language Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some courses support multiple languages, but English works better with fewer issues. Several courses don't complete properly in non-English versions, and translations can be confusing enough that reading the original English is clearer. I recommend proceeding in English.&lt;/p&gt;




&lt;p&gt;This post is getting quite long, so I couldn't include everything here. If you're curious about more details like real work applications, specific technologies I explored, tips and tricks, or my final results, please visit my blog for the complete review!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Started skeptical about a "beginner program," ended up spending 4-6 hours daily learning enterprise-grade ML/AI tech I'd never afford otherwise. Earned 53 badges, hit Diamond League #1, and genuinely expanded my technical perspective. Worth it if you're in tech!&lt;/p&gt;




&lt;h3&gt;
  
  
  Complete blog post available at: [&lt;a href="https://medium.com/@kansm/google-ai-study-jam-2025-my-two-month-journey-e1e94a270271" rel="noopener noreferrer"&gt;https://medium.com/@kansm/google-ai-study-jam-2025-my-two-month-journey-e1e94a270271&lt;/a&gt;]
&lt;/h3&gt;

</description>
      <category>google</category>
      <category>googlecloud</category>
      <category>studyjam</category>
      <category>vertexai</category>
    </item>
    <item>
      <title>Experience with Fellou: The World’s First Agentic Browser</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Mon, 12 May 2025 02:49:30 +0000</pubDate>
      <link>https://dev.to/kansm/experience-with-fellou-the-worlds-first-agentic-browser-3lbn</link>
      <guid>https://dev.to/kansm/experience-with-fellou-the-worlds-first-agentic-browser-3lbn</guid>
      <description>&lt;p&gt;Recently, a new concept called "AI browser" has emerged on the tech scene. Intrigued by the somewhat exaggerated claim that "you no longer need a traditional browser," I decided to test this new technology and share my experience.&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%2Fkpberpieiiskhterfvur.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%2Fkpberpieiiskhterfvur.png" alt="Image description" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The official name of this tool is Fellou, and you can find the official website at &lt;a href="https://fellou.ai/" rel="noopener noreferrer"&gt;https://fellou.ai/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On their website, Fellou introduces itself as "The World's First Agentic Browser."&lt;/p&gt;

&lt;p&gt;It appears that they are preparing for a full-scale service launch, and currently, an invitation code is required to access the platform.&lt;/p&gt;

&lt;h1&gt;
  
  
  🏷 Key Features of Fellou AI
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ✅ Website Q&amp;amp;A
&lt;/h1&gt;

&lt;p&gt;Fellou analyzes the content of web pages that users have open and answers questions about them. Examples include webpage summarization, specific information extraction, translation, and more.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Workflow Execution
&lt;/h1&gt;

&lt;p&gt;It automatically performs complex tasks in the browser. Examples include composing emails, creating social media posts, making online purchases, and more.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Deep Search
&lt;/h1&gt;

&lt;p&gt;Fellou searches for and summarizes information on specific topics from across the internet. Examples include researching the latest technology trends, searching for academic papers, and more.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Report Editing
&lt;/h1&gt;

&lt;p&gt;Users can modify existing reports or create new ones. Examples include translating reports into different languages or enhancing content.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Multi-tasking Support
&lt;/h1&gt;

&lt;p&gt;Fellou provides functionality to execute multiple tasks simultaneously.&lt;/p&gt;

&lt;p&gt;When I asked Fellou about its capabilities, it confirmed these features. From my direct experience, the primary functions are workflow execution, deep search, and report creation. Let's examine each of these features in more detail.&lt;/p&gt;

&lt;h1&gt;
  
  
  🏷 In-depth Feature Analysis
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ✅ Website Q&amp;amp;A
&lt;/h1&gt;

&lt;p&gt;With Fellou's Website Q&amp;amp;A feature, you can open a website in a tab and ask questions about it in a side panel. Fellou then analyzes the site to provide summaries and answers to your questions.&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%2Fi0uekue6lwarx05b1273.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%2Fi0uekue6lwarx05b1273.png" alt="Image description" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While this functionality exists in other AI tools, Fellou's advantage lies in allowing users to view the website while simultaneously asking questions or requesting analysis. It's comparable to having an AI assistant embedded in code editors that lets you ask questions while viewing code.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Workflow Execution
&lt;/h1&gt;

&lt;p&gt;This appears to be Fellou's main feature. I tested it by creating a repository on GitHub.&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%2Fmlwmhcg43i97ncqoy3kb.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%2Fmlwmhcg43i97ncqoy3kb.png" alt="Image description" width="800" height="791"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The process involves configuring tasks step by step and then waiting for execution. When you press "run," each task is executed sequentially.&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%2Fkc03yw133tkybvtnxqno.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%2Fkc03yw133tkybvtnxqno.png" alt="Image description" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upon execution, Fellou automatically locates GitHub and navigates to the login page. After entering account information and clicking "completed," it continues with the tasks.&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%2F0lirg4w4mbtugxhydlib.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%2F0lirg4w4mbtugxhydlib.png" alt="Image description" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During this process, Fellou automatically analyzes and identifies selectors. It examines the DOM structure of the loaded webpage to automatically determine appropriate selectors.&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%2Fd5ff8ccsdsl6e9yiwz7p.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%2Fd5ff8ccsdsl6e9yiwz7p.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It then navigates to the creation page and automatically completes the input form. I had requested a repository named "fellou-test-project" set to private status. Since GitHub is a well-known platform, Fellou accurately found the input forms and completed them appropriately.&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%2Fewqyzotw93gcd5k9onwo.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%2Fewqyzotw93gcd5k9onwo.png" alt="Image description" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, it clicks the "create repository" button to generate the repository. I did not intervene at any point in this process.&lt;/p&gt;

&lt;p&gt;The repository was created flawlessly on the first attempt, which was somewhat surprising.&lt;/p&gt;

&lt;p&gt;The process took approximately 2–3 minutes, likely due to the time needed for analysis and task processing.&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Deep Search &amp;amp; Report Creation
&lt;/h1&gt;

&lt;p&gt;When performing a deep search, Fellou simultaneously opens multiple subwindows, extracting or summarizing information from each. It collects and processes information from multiple sources simultaneously, typically compiling this information into a report.&lt;/p&gt;

&lt;p&gt;For report creation, Fellou generates actual code to construct a webpage for browser display.&lt;/p&gt;

&lt;p&gt;The reports produced are remarkably detailed and comprehensive — far more extensive than what typical AI tools could generate given token limits. The content is thorough and high-quality.&lt;/p&gt;

&lt;p&gt;Examples of generated reports include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GUI Agents: A Comprehensive Research Summary&lt;/strong&gt;: &lt;a href="https://chat.fellou.ai/report/d871e5ef-7909-4874-91a2-58a04ec59e18" rel="noopener noreferrer"&gt;https://chat.fellou.ai/report/d871e5ef-7909-4874-91a2-58a04ec59e18&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fellou AI Research&lt;/strong&gt;: &lt;a href="https://chat.fellou.ai/report/27850769-adda-457e-88bd-4101ed6de666" rel="noopener noreferrer"&gt;https://chat.fellou.ai/report/27850769-adda-457e-88bd-4101ed6de666&lt;/a&gt; (Although I only asked for recent trends, the content wasn't entirely satisfactory.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deep search and report creation are the main functions, but for more detailed information, please refer to the link provided. Thank you for your understanding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@kansm/experience-with-fellou-the-worlds-first-agentic-browser-898186945ff5" rel="noopener noreferrer"&gt;https://medium.com/@kansm/experience-with-fellou-the-worlds-first-agentic-browser-898186945ff5&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fellou</category>
      <category>workflow</category>
      <category>playwright</category>
      <category>mcp</category>
    </item>
    <item>
      <title>🧱 Migrating from Monolith to Microservices with GKE: Hands-on practice</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Sun, 27 Apr 2025 04:12:51 +0000</pubDate>
      <link>https://dev.to/kansm/migrating-from-monolith-to-microservices-with-gke-hands-on-practice-2k2l</link>
      <guid>https://dev.to/kansm/migrating-from-monolith-to-microservices-with-gke-hands-on-practice-2k2l</guid>
      <description>&lt;p&gt;In today's rapidly evolving tech landscape, monolithic architectures are increasingly becoming bottlenecks for innovation and scalability. This post explores the practical steps of migrating from a monolithic architecture to microservices using Google Kubernetes Engine (GKE), offering a hands-on approach based on Google Cloud's Study Jam program.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Make the Switch?
&lt;/h2&gt;

&lt;p&gt;Before diving into the how, let's briefly address the why. Monolithic applications become increasingly difficult to maintain as they grow. Updates require complete redeployment, scaling is inefficient, and failures can bring down the entire system. Microservices address these issues by breaking applications into independent, specialized components that can be developed, deployed, and scaled independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Overview
&lt;/h2&gt;

&lt;p&gt;Our journey uses the &lt;a href="https://github.com/googlecodelabs/monolith-to-microservices" rel="noopener noreferrer"&gt;monolith-to-microservices&lt;/a&gt; project, which provides a sample e-commerce application called "FancyStore." The repository is structured with both the original monolith and the already-refactored microservices:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;monolith-to-microservices/
├── monolith/          # Monolithic version
└── microservices/
    └── src/
        ├── orders/    # Orders microservice
        ├── products/  # Products microservice
        └── frontend/  # Frontend microservice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Our goal is to decompose the monolith into these three services, focusing on a gradual, safe transition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up the Environment
&lt;/h2&gt;

&lt;p&gt;We begin by cloning the repository and setting up our environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Set project ID&lt;/span&gt;
gcloud config &lt;span class="nb"&gt;set &lt;/span&gt;project qwiklabs-gcp-00-09f9d6988b61

&lt;span class="c"&gt;# Clone repository&lt;/span&gt;
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
&lt;span class="nb"&gt;cd &lt;/span&gt;monolith-to-microservices

&lt;span class="c"&gt;# Install latest Node.js LTS version&lt;/span&gt;
nvm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--lts&lt;/span&gt;

&lt;span class="c"&gt;# Enable Cloud Build API&lt;/span&gt;
gcloud services &lt;span class="nb"&gt;enable &lt;/span&gt;cloudbuild.googleapis.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Strangler Pattern Approach
&lt;/h2&gt;

&lt;p&gt;Rather than making a risky all-at-once transition, we'll use the Strangler Pattern—gradually replacing the monolith's functionality with microservices while keeping the system operational throughout the process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Containerize the Monolith
&lt;/h3&gt;

&lt;p&gt;The first step is containerizing the existing monolith without code changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Navigate to the monolith directory&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;monolith

&lt;span class="c"&gt;# Build and push container image&lt;/span&gt;
gcloud builds submit &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tag&lt;/span&gt; gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-monolith-203:1.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Create a Kubernetes Cluster
&lt;/h3&gt;

&lt;p&gt;Next, we set up a GKE cluster to host our application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Enable Containers API&lt;/span&gt;
gcloud services &lt;span class="nb"&gt;enable &lt;/span&gt;container.googleapis.com

&lt;span class="c"&gt;# Create GKE cluster with 3 nodes&lt;/span&gt;
gcloud container clusters create fancy-cluster-685 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--zone&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;europe-west1-b &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--num-nodes&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--machine-type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;e2-medium

&lt;span class="c"&gt;# Get authentication credentials&lt;/span&gt;
gcloud container clusters get-credentials fancy-cluster-685 &lt;span class="nt"&gt;--zone&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;europe-west1-b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Deploy the Monolith to Kubernetes
&lt;/h3&gt;

&lt;p&gt;We deploy our containerized monolith to the GKE cluster:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create Kubernetes deployment&lt;/span&gt;
kubectl create deployment fancy-monolith-203 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-monolith-203:1.0.0

&lt;span class="c"&gt;# Expose deployment as LoadBalancer service&lt;/span&gt;
kubectl expose deployment fancy-monolith-203 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;LoadBalancer &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;80 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--target-port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8080

&lt;span class="c"&gt;# Check service status to get external IP&lt;/span&gt;
kubectl get service fancy-monolith-203
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the external IP is available, we verify that our monolith is running correctly in the containerized environment. This is a crucial validation step before proceeding with the migration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking Down into Microservices
&lt;/h2&gt;

&lt;p&gt;Now comes the exciting part—gradually extracting functionality from the monolith into separate microservices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Deploy the Orders Microservice
&lt;/h3&gt;

&lt;p&gt;First, we containerize and deploy the Orders service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Navigate to Orders service directory&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/monolith-to-microservices/microservices/src/orders

&lt;span class="c"&gt;# Build and push container&lt;/span&gt;
gcloud builds submit &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tag&lt;/span&gt; gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-orders-447:1.0.0 &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Deploy to Kubernetes&lt;/span&gt;
kubectl create deployment fancy-orders-447 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-orders-447:1.0.0

&lt;span class="c"&gt;# Expose service&lt;/span&gt;
kubectl expose deployment fancy-orders-447 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;LoadBalancer &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;80 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--target-port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8081

&lt;span class="c"&gt;# Get external IP&lt;/span&gt;
kubectl get service fancy-orders-447
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that the Orders microservice runs on port 8081. When splitting a monolith, each service typically operates on its own port.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Reconfigure the Monolith to Use the Orders Microservice
&lt;/h3&gt;

&lt;p&gt;Now comes a key step—updating the monolith to use our new microservice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Edit configuration file&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/monolith-to-microservices/react-app
nano .env.monolith

&lt;span class="c"&gt;# Change:&lt;/span&gt;
&lt;span class="c"&gt;# REACT_APP_ORDERS_URL=/service/orders&lt;/span&gt;
&lt;span class="c"&gt;# To:&lt;/span&gt;
&lt;span class="c"&gt;# REACT_APP_ORDERS_URL=http://&amp;lt;ORDERS_IP_ADDRESS&amp;gt;/api/orders&lt;/span&gt;

&lt;span class="c"&gt;# Rebuild monolith frontend&lt;/span&gt;
npm run build:monolith

&lt;span class="c"&gt;# Rebuild and redeploy container&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/monolith-to-microservices/monolith
gcloud builds submit &lt;span class="nt"&gt;--tag&lt;/span&gt; gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-monolith-203:2.0.0 &lt;span class="nb"&gt;.&lt;/span&gt;
kubectl &lt;span class="nb"&gt;set &lt;/span&gt;image deployment/fancy-monolith-203 fancy-monolith-203&lt;span class="o"&gt;=&lt;/span&gt;gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-monolith-203:2.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This transformation is the essence of the microservices migration—instead of internal function calls, the application now makes HTTP requests to a separate service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Deploy the Products Microservice
&lt;/h3&gt;

&lt;p&gt;Following the same pattern, we deploy the Products microservice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Navigate to Products service directory&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/monolith-to-microservices/microservices/src/products

&lt;span class="c"&gt;# Build and push container&lt;/span&gt;
gcloud builds submit &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tag&lt;/span&gt; gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-products-894:1.0.0 &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Deploy to Kubernetes&lt;/span&gt;
kubectl create deployment fancy-products-894 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gcr.io/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_CLOUD_PROJECT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fancy-products-894:1.0.0

&lt;span class="c"&gt;# Expose service&lt;/span&gt;
kubectl expose deployment fancy-products-894 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;LoadBalancer &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;80 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--target-port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8082

&lt;span class="c"&gt;# Get external IP&lt;/span&gt;
kubectl get service fancy-products-894
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Products microservice runs on port 8082, maintaining the pattern of distinct ports for different services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to Learn More?
&lt;/h2&gt;

&lt;p&gt;We've successfully extracted the Orders and Products services from our monolith, implementing a gradual, safe transition to microservices. But our journey doesn't end here! In the complete guide on my blog, I cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to update the monolith to integrate with multiple microservices&lt;/li&gt;
&lt;li&gt;The Frontend microservice deployment&lt;/li&gt;
&lt;li&gt;Safe decommissioning of the original monolith&lt;/li&gt;
&lt;li&gt;Critical considerations for real-world migrations&lt;/li&gt;
&lt;li&gt;The substantial benefits gained from the microservices architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the complete walkthrough, including real deployment insights and best practices for production environments, &lt;a href="https://medium.com/@kansm/migrating-from-monolith-to-microservices-with-gke-hands-on-practice-83f32d5aba24" rel="noopener noreferrer"&gt;https://medium.com/@kansm/migrating-from-monolith-to-microservices-with-gke-hands-on-practice-83f32d5aba24&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Are you ready to break free from your monolithic constraints and embrace the flexibility of microservices? The step-by-step approach makes this transition manageable and risk-minimized for organizations of any size.&lt;/p&gt;




</description>
      <category>gke</category>
      <category>kubernetes</category>
      <category>devops</category>
      <category>microservices</category>
    </item>
    <item>
      <title>🧱Migrating from Monolith to Microservices with GKE: Core Concepts</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Sat, 26 Apr 2025 13:12:12 +0000</pubDate>
      <link>https://dev.to/kansm/migrating-from-monolith-to-microservices-with-gke-core-concepts-25a3</link>
      <guid>https://dev.to/kansm/migrating-from-monolith-to-microservices-with-gke-core-concepts-25a3</guid>
      <description>&lt;h3&gt;
  
  
  Break free from monolithic constraints: See how GKE transforms your architecture for better scalability, resilience, and team autonomy.
&lt;/h3&gt;

&lt;p&gt;Like many developers, I started building web applications with a monolithic architecture. It seemed logical at the time—one codebase, one deployment, simple to understand. But as my applications grew in complexity and user base, I began experiencing the limitations firsthand.&lt;/p&gt;

&lt;p&gt;Today, I want to share my journey transitioning from monolithic applications to microservices using Google Kubernetes Engine (GKE), and why this migration changed everything for my development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Monolith: Where We All Begin
&lt;/h2&gt;

&lt;p&gt;When starting a new web app, most of us default to creating a single codebase that handles everything. This monolithic approach puts all functionalities—frontend, backend, database interactions—into one server and one codebase.&lt;/p&gt;

&lt;p&gt;Typically, we build on a single framework:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: Spring Boot, Django, Express.js, or Rails&lt;/li&gt;
&lt;li&gt;Frontend: Bundled within the same project or deployed separately but still as a single application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach works wonderfully at first. Development is fast, deployment is straightforward, and the mental model is simple. But as I discovered, things don't stay simple forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Monoliths Become Monsters
&lt;/h2&gt;

&lt;p&gt;After maintaining several monolithic applications through growth phases, I encountered recurring issues that became increasingly difficult to ignore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scaling inefficiencies&lt;/strong&gt;: When my user authentication service experienced heavy load, I had to scale the entire application—including rarely-used features—wasting significant resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deployment headaches&lt;/strong&gt;: Even minor changes to a single feature required redeploying the entire system, leading to unnecessary downtime and extensive testing cycles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The dreaded single point of failure&lt;/strong&gt;: One memory leak in an obscure feature could bring down the entire application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Growing complexity&lt;/strong&gt;: As our team expanded, onboarding new developers became challenging. No single person could understand the entire codebase, slowing down development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technology stagnation&lt;/strong&gt;: Wanting to use cutting-edge frameworks or languages for new features meant refactoring enormous portions of code, which was rarely feasible.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These problems weren't unique to me—they represent the classic scaling challenges that push development teams toward microservices architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microservices: A New Architectural Paradigm
&lt;/h2&gt;

&lt;p&gt;Microservices offered a solution by decomposing my monolith into smaller, independently deployable services, each handling specific business functionality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Service&lt;/strong&gt; – Dedicated to user interface concerns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order Service&lt;/strong&gt; – Focused solely on order processing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product Service&lt;/strong&gt; – Managing product data and inventory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each service could now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scale independently based on its specific demand&lt;/li&gt;
&lt;li&gt;Be developed, tested, and deployed without affecting other services&lt;/li&gt;
&lt;li&gt;Be built using the ideal technology stack for its particular requirements&lt;/li&gt;
&lt;li&gt;Be owned by a specific team, enabling greater autonomy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Enter Google Kubernetes Engine (GKE)
&lt;/h2&gt;

&lt;p&gt;While microservices solved many problems, they introduced new complexity in deployment and orchestration. This is where Google Kubernetes Engine became invaluable in my journey.&lt;/p&gt;

&lt;p&gt;GKE provided a managed Kubernetes environment that handled the orchestration of my containerized microservices, taking care of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service discovery and load balancing&lt;/li&gt;
&lt;li&gt;Automated scaling based on demand&lt;/li&gt;
&lt;li&gt;Self-healing capabilities&lt;/li&gt;
&lt;li&gt;Secret and configuration management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With GKE, I could focus on building better services rather than managing infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Migration Was Worth It
&lt;/h2&gt;

&lt;p&gt;The benefits I've experienced after migrating to microservices with GKE have transformed how my team works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Targeted scaling&lt;/strong&gt;: During sales events, we scale only our product and checkout services, keeping costs reasonable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster feature delivery&lt;/strong&gt;: Teams deploy new features independently multiple times per day without coordinating company-wide releases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved resilience&lt;/strong&gt;: Last month, an issue in our recommendation service had zero impact on critical shopping functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team specialization&lt;/strong&gt;: Frontend specialists work exclusively on the UI service, while data engineers optimize our analytics services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technology flexibility&lt;/strong&gt;: We've implemented real-time features with Node.js while maintaining our data processing in Python—choosing the right tool for each job.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Is Microservice Migration Right for You?
&lt;/h2&gt;

&lt;p&gt;While my experience has been overwhelmingly positive, microservices aren't a silver bullet. Consider this approach if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your application has clear functional boundaries&lt;/li&gt;
&lt;li&gt;Different components have different scaling needs&lt;/li&gt;
&lt;li&gt;You need to accelerate development across multiple teams&lt;/li&gt;
&lt;li&gt;You're experiencing growing pains with your monolith&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, be prepared for the added complexity of distributed systems. Monitoring, tracing, and maintaining data consistency become more challenging.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to Learn More?
&lt;/h2&gt;

&lt;p&gt;I've documented my complete migration journey, including step-by-step implementation guidelines, containerization strategies, and GKE deployment workflows in a comprehensive guide on my blog.&lt;/p&gt;

&lt;p&gt;For more detailed information, please refer to my blog&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@kansm/migrating-from-monolith-to-microservices-with-gke-core-concepts-ec84e4300338" rel="noopener noreferrer"&gt;https://medium.com/@kansm/migrating-from-monolith-to-microservices-with-gke-core-concepts-ec84e4300338&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you made a similar transition? I'd love to hear about your experiences in the comments!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>microservices</category>
      <category>devops</category>
      <category>gke</category>
    </item>
    <item>
      <title>Logitech Mouse Comparison: 5 Models</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Tue, 22 Apr 2025 07:08:09 +0000</pubDate>
      <link>https://dev.to/kansm/logitech-mouse-comparison-5-models-222j</link>
      <guid>https://dev.to/kansm/logitech-mouse-comparison-5-models-222j</guid>
      <description>&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%2Fis6va1qmfy2vook7xaeh.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%2Fis6va1qmfy2vook7xaeh.png" alt="Image description" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From left to right in the image: MX Anywhere 3, MX Master 3 for Mac, MX Master 2S, G502X Plus, MX Vertical&lt;/p&gt;

&lt;p&gt;My progression through different mice looks like this: G502 (left-click malfunction) → G502 SE (left-click malfunction) → MX Vertical (unnatural movement feel) → MX Master 3 (stickiness) → MX Master 2S (stickiness) → G502X Plus (too light) → MX Master 3 (current)&lt;/p&gt;

&lt;p&gt;I should mention that I don’t use these mice for gaming (I only game on PlayStation).&lt;/p&gt;

&lt;p&gt;There’s virtually no difference between the MX Master 3 for Mac and the MX Master 3. The user experience is essentially identical.&lt;/p&gt;

&lt;p&gt;Currently, I’ve settled back on the MX Master 3. I’m most satisfied with its overall performance and wrist comfort.&lt;/p&gt;

&lt;p&gt;If you’re looking for a new mouse, I hope this provides some helpful insights!&lt;/p&gt;

&lt;p&gt;After going through numerous mice, I’ve ultimately returned to the MX Master 3. I hope you too find your ‘destined mouse’ and enjoy coding without wrist pain. Remember, a good mouse and keyboard contributes to good code!&lt;/p&gt;

&lt;p&gt;For more details, please refer to the blog..&lt;br&gt;
&lt;a href="https://medium.com/@kansm/logitech-mouse-comparison-5-models-82299748b954" rel="noopener noreferrer"&gt;https://medium.com/@kansm/logitech-mouse-comparison-5-models-82299748b954&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mouse</category>
      <category>logitech</category>
      <category>mxmaster3</category>
      <category>g502x</category>
    </item>
    <item>
      <title>MCP + Claude : Real-Time Search &amp; DB Queries in Action</title>
      <dc:creator>Ryan Kan</dc:creator>
      <pubDate>Sat, 05 Apr 2025 14:26:48 +0000</pubDate>
      <link>https://dev.to/kansm/mcp-claude-real-time-search-db-queries-in-action-4o78</link>
      <guid>https://dev.to/kansm/mcp-claude-real-time-search-db-queries-in-action-4o78</guid>
      <description>&lt;h2&gt;
  
  
  Understanding MCP in Simple Terms
&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol (MCP) has been generating significant buzz in the AI development community lately. While many explanations tend to overcomplicate it, based on my hands-on experience, the concept is relatively straightforward.  &lt;/p&gt;

&lt;p&gt;At its core, MCP leverages Node's NPX to locally install a "server" package. This package executes specified tools passed as arguments. The magic happens when these tools establish bidirectional communication with various AI clients (including Claude), enabling seamless information exchange. Docker-based deployment is also supported for those preferring containerized environments.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Application: Real-time Search Capabilities
&lt;/h2&gt;

&lt;p&gt;I recently tested MCP using Claude Desktop as the client interface and integrated the Brave Search API. The results were impressively effective.  &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%2Faqlfk0o1krvfc9whfytq.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%2Faqlfk0o1krvfc9whfytq.png" alt="Image description" width="800" height="429"&gt;&lt;/a&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%2Fflywkl0a0tcwfsdocfwd.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%2Fflywkl0a0tcwfsdocfwd.png" alt="Image description" width="800" height="825"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;When comparing standard cloud AI interactions (which typically rely on pre-trained knowledge) with an MCP-equipped AI, the difference becomes immediately apparent. The latter enables real-time search capabilities—a feature not natively available in standard Claude implementations.  &lt;/p&gt;

&lt;p&gt;Implementation requirements are minimal: just an API key and a few lines of JSON configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"brave-search"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@modelcontextprotocol/server-brave-search"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"BRAVE_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_API_KEY_HERE"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Direct Database Integration
&lt;/h2&gt;

&lt;p&gt;MCP's capabilities extend beyond search functionality. By incorporating a PostgreSQL MCP server, you can establish direct database connections and execute queries in real-time.  &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%2Fstyt3h5jer9t17yuke3o.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%2Fstyt3h5jer9t17yuke3o.png" alt="Image description" width="800" height="699"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;I tested this with a complex database schema containing Order and OrderItem tables, each with approximately 250 fields. Even when crafting queries requiring three table joins, the results and corresponding code generation were remarkably satisfactory.  &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%2Fhyxwrjwi7r38yiwj9pm0.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%2Fhyxwrjwi7r38yiwj9pm0.png" alt="Image description" width="800" height="864"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Transforming the Development Workflow
&lt;/h2&gt;

&lt;p&gt;Perhaps the most significant advantage is the elimination of tedious schema explanations. There's no longer any need to describe table structures, column details, or data relationships to your AI assistant. Since MCP enables direct database access, the AI can infer necessary information and retrieve relevant data autonomously.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These are just a few examples from my MCP testing experiences. I've covered the key aspects, but for more detailed insights or specific questions, please refer to my blog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@kansm/continuing-from-our-previous-post-we-will-now-explore-using-mcp-model-context-protocol-with-44395eb4b9b9" rel="noopener noreferrer"&gt;https://medium.com/@kansm/continuing-from-our-previous-post-we-will-now-explore-using-mcp-model-context-protocol-with-44395eb4b9b9&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>mcp</category>
      <category>claudedesktop</category>
    </item>
  </channel>
</rss>
