<?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: Tisone Kironget</title>
    <description>The latest articles on DEV Community by Tisone Kironget (@tisonek).</description>
    <link>https://dev.to/tisonek</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%2F3824502%2F0f5774ba-064d-4564-93ef-716c42968091.jpg</url>
      <title>DEV Community: Tisone Kironget</title>
      <link>https://dev.to/tisonek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tisonek"/>
    <language>en</language>
    <item>
      <title>How to Get All IDE Configs When Installing BMAD Method</title>
      <dc:creator>Tisone Kironget</dc:creator>
      <pubDate>Fri, 20 Mar 2026 04:28:41 +0000</pubDate>
      <link>https://dev.to/tisonek/how-to-get-all-ide-configs-when-installing-bmad-method-317m</link>
      <guid>https://dev.to/tisonek/how-to-get-all-ide-configs-when-installing-bmad-method-317m</guid>
      <description>&lt;p&gt;If you have tried installing the latest version of BMAD Method recently, you may have noticed&lt;br&gt;
that the installer no longer includes Kilo Code and other popular IDEs during setup. Older&lt;br&gt;
versions supported a full list — the newer versions have trimmed this down significantly.&lt;/p&gt;

&lt;p&gt;This matters because BMAD generates IDE-specific configuration files during installation. If&lt;br&gt;
your IDE is not in the installer's list, those files do not get created, and you have to set&lt;br&gt;
them up manually.&lt;/p&gt;

&lt;p&gt;Here is a simple workaround that takes less than two minutes.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;The latest BMAD installer no longer includes Kilo Code and other popular IDEs in the&lt;br&gt;
selection step. If you rely on any of these, you will not get the configuration files&lt;br&gt;
generated automatically.&lt;/p&gt;

&lt;p&gt;Version &lt;code&gt;6.0.1&lt;/code&gt; still includes the full list:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;│  Selected tools:
│    • Kilo Code
│    • Windsurf
│    • GitHub Copilot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Workaround
&lt;/h2&gt;

&lt;p&gt;Install the older version first to generate all the IDE config files, then upgrade BMAD to&lt;br&gt;
the latest version. The IDE files created during the initial install stay in your project&lt;br&gt;
even after the upgrade.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1 — Install the older version
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bmad-method&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;6.0.1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 2 — Run the installer
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bmad-method&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Work through the setup prompts. When you reach the IDE selection step, select all the IDEs&lt;br&gt;
you need. BMAD will generate the corresponding configuration files in your project.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3 — Upgrade BMAD
&lt;/h3&gt;

&lt;p&gt;Once the install is complete, upgrade to the latest version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bmad-method&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your IDE configuration files from step 2 remain in the project untouched. BMAD core gets&lt;br&gt;
updated. You get the best of both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Works
&lt;/h2&gt;

&lt;p&gt;BMAD generates IDE config files during installation and writes them to your project directory.&lt;br&gt;
The upgrade process updates the BMAD core package but does not overwrite or delete existing&lt;br&gt;
project files. So the IDE configs persist across upgrades.&lt;/p&gt;




&lt;p&gt;Found this useful? The BMAD community is active on&lt;br&gt;
&lt;a href="https://github.com/bmad-code-org/BMAD-METHOD" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and&lt;br&gt;
&lt;a href="https://discord.gg/gk8jAdXWmj" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>bmad</category>
      <category>devtools</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Scrapamoja: A Python Web Scraping Framework</title>
      <dc:creator>Tisone Kironget</dc:creator>
      <pubDate>Sat, 14 Mar 2026 20:21:57 +0000</pubDate>
      <link>https://dev.to/tisonek/scrapamoja-a-production-grade-python-web-scraping-framework-3d7j</link>
      <guid>https://dev.to/tisonek/scrapamoja-a-production-grade-python-web-scraping-framework-3d7j</guid>
      <description>&lt;p&gt;I've been building Scrapamoja — a Python scraping framework built on one idea: you shouldn't need a different tool for every site you scrape.&lt;/p&gt;

&lt;p&gt;🔗 GitHub: &lt;a href="https://github.com/TisoneK/scrapamoja" rel="noopener noreferrer"&gt;https://github.com/TisoneK/scrapamoja&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Scrapamoja?
&lt;/h2&gt;

&lt;p&gt;Scrapamoja blends the English word &lt;em&gt;Scrape&lt;/em&gt; with the Swahili word &lt;em&gt;Pamoja&lt;/em&gt; — meaning &lt;em&gt;together&lt;/em&gt;. Scrape together. One scraper, many sites. One framework, many contributors.&lt;/p&gt;

&lt;p&gt;It's also a quiet nod to &lt;em&gt;Moja&lt;/em&gt;, Swahili for &lt;em&gt;one&lt;/em&gt; — the idea that you shouldn't need a different tool for every site you want to scrape. One framework should be enough, and it should be good enough that anyone can extend it.&lt;/p&gt;

&lt;p&gt;That philosophy shapes everything about how Scrapamoja is built. It's not a scraper — it's the infrastructure that makes scrapers reliable: handling anti-bot measures, selector drift, network failures, and browser resource leaks so you don't have to. New sites can be added by anyone, existing ones improved by the community, and the whole thing grows stronger the more people contribute to it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Scrape together. Build together.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Core Framework Capabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🎯 Intelligent Selector Engine
&lt;/h3&gt;

&lt;p&gt;The selector engine is the heart of Scrapamoja. Instead of brittle single-selector lookups, it uses a multi-strategy approach — CSS, XPath, and text-based selectors can all be defined for the same element. Each strategy is weighted, and the engine picks the best match with a confidence score. When a selector fails, it falls back gracefully rather than crashing. Selectors are defined in YAML, not hardcoded, making them easy to maintain without touching Python.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Site → Sport → Status → Context → Element
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🛡️ Resilience System
&lt;/h3&gt;

&lt;p&gt;Built around the assumption that things will go wrong. Automatic retries with exponential backoff, failure classification (network vs. selector vs. parse errors), checkpoint-based recovery so long scrapes can resume, and a coordinator that ensures graceful shutdown even mid-scrape.&lt;/p&gt;

&lt;h3&gt;
  
  
  🕵️ Stealth &amp;amp; Anti-Detection
&lt;/h3&gt;

&lt;p&gt;A dedicated stealth module handles fingerprint randomization, human-like behavior simulation, consent popup handling, and proxy rotation. Sites that actively fight scrapers are manageable targets.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 Snapshot Debugging
&lt;/h3&gt;

&lt;p&gt;When a scrape fails, Scrapamoja captures a full snapshot: the page HTML, a screenshot, structured logs, and selector resolution traces — all correlated by session ID. Debugging a failure means looking at exactly what the browser saw, not guessing.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Telemetry &amp;amp; Observability
&lt;/h3&gt;

&lt;p&gt;Structured JSON logging with correlation IDs, built-in metrics collection (execution time, success rates, selector confidence distributions), and alerting hooks. Production scrapers need production-grade monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Browser Lifecycle Management
&lt;/h3&gt;

&lt;p&gt;Browser and page pooling, session state persistence, tab management, resource monitoring (memory, CPU), and corruption detection. Long-running scrapers won't leak memory or leave orphaned browser processes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔀 Hybrid Extraction Modes
&lt;/h3&gt;

&lt;p&gt;Scrapamoja chooses the optimal extraction method based on each target site's architecture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;DOM Mode&lt;/strong&gt; (default)&lt;/td&gt;
&lt;td&gt;Navigate with browser, extract from HTML&lt;/td&gt;
&lt;td&gt;Sites requiring full rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Direct API Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Skip browser, call APIs directly&lt;/td&gt;
&lt;td&gt;Open APIs, millisecond latency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Network Interception&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Capture API responses during browser session&lt;/td&gt;
&lt;td&gt;Sites requiring browser initialization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hybrid Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Browser once to harvest session, then direct HTTP&lt;/td&gt;
&lt;td&gt;Sites requiring authenticated sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you're building on top of the web, I'd love to hear what you're scraping.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/TisoneK/scrapamoja" rel="noopener noreferrer"&gt;https://github.com/TisoneK/scrapamoja&lt;/a&gt;&lt;/p&gt;

</description>
      <category>scraping</category>
      <category>python</category>
      <category>flashscore</category>
      <category>playwright</category>
    </item>
  </channel>
</rss>
