<?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>Forem: Md. Rafi</title>
    <description>The latest articles on Forem by Md. Rafi (@mdraf1).</description>
    <link>https://forem.com/mdraf1</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%2F3501278%2Fe313473d-3fbb-430e-873d-ef01e9e4e469.png</url>
      <title>Forem: Md. Rafi</title>
      <link>https://forem.com/mdraf1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mdraf1"/>
    <language>en</language>
    <item>
      <title>I Resurrected 1980s Teletext to Cure My Doomscrolling (Built with Kiro)</title>
      <dc:creator>Md. Rafi</dc:creator>
      <pubDate>Fri, 05 Dec 2025 19:57:22 +0000</pubDate>
      <link>https://forem.com/kirodotdev/i-resurrected-1980s-teletext-to-cure-my-doomscrolling-built-with-kiro-37kb</link>
      <guid>https://forem.com/kirodotdev/i-resurrected-1980s-teletext-to-cure-my-doomscrolling-built-with-kiro-37kb</guid>
      <description>&lt;p&gt;The modern web is exhausted. It’s infinite, noisy, and designed to keep us scrolling forever. I missed the "finish line"—that feeling when you’ve read the news, checked the weather, and you are &lt;em&gt;done&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So, for the &lt;strong&gt;Kiroween Hackathon&lt;/strong&gt;, I decided to build &lt;strong&gt;Teletext Zero&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s a "Slow Web" browser that forces the chaotic internet into a strict 1980s TV format: 40 columns, 24 rows, 8 colors, and absolutely no scrolling.&lt;/p&gt;

&lt;p&gt;Building a retro-constraint engine like this usually takes weeks of tedious CSS math and state management. I built it in a weekend using &lt;strong&gt;Kiro&lt;/strong&gt;, an AI-native IDE.&lt;/p&gt;

&lt;p&gt;Here is how I used Kiro’s &lt;strong&gt;"Hybrid Workflow"&lt;/strong&gt; to switch between being a rigorous Architect and a creative Artist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Logic vs. Vibes
&lt;/h2&gt;

&lt;p&gt;Every developer knows the struggle.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Architect Brain&lt;/strong&gt; wants strict rules, type safety, and robust architecture.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Artist Brain&lt;/strong&gt; wants to mess around with shaders, animations, and "feel."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Usually, you have to compromise. With Kiro, I didn't have to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: The Architect (Spec-to-Code)
&lt;/h3&gt;

&lt;p&gt;To make Teletext Zero feel real, I couldn't fake the constraints. If the text wrapped wrong or the grid broke on a mobile screen, the illusion would die.&lt;/p&gt;

&lt;p&gt;Instead of writing React components manually, I used Kiro's &lt;strong&gt;Spec&lt;/strong&gt; mode. I wrote a &lt;code&gt;requirements.md&lt;/code&gt; file that defined the laws of my universe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Grid:&lt;/strong&gt; Must be exactly 40x24 characters.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Input:&lt;/strong&gt; Keyboard only (3-digit page dialing).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Palette:&lt;/strong&gt; Only the standard 8 Teletext colors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro took this spec and generated the entire engine. But here is the kicker: it didn't just write the code; it wrote &lt;strong&gt;Property-Based Tests&lt;/strong&gt; (using &lt;code&gt;fast-check&lt;/code&gt;). It mathematically proved that no matter what text I threw at the engine, the layout would &lt;em&gt;never&lt;/em&gt; break or scroll.&lt;/p&gt;

&lt;p&gt;I had a bulletproof foundation in minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: The Artist (Vibe Coding)
&lt;/h3&gt;

&lt;p&gt;Once the logic was solid, I needed it to &lt;em&gt;look&lt;/em&gt; like a haunted TV found in an attic.&lt;/p&gt;

&lt;p&gt;I switched Kiro to &lt;strong&gt;Vibe&lt;/strong&gt; mode (conversational coding). This is where the magic happened. I didn't write CSS classes; I just described the aesthetic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Make it look like a 1980s Trinitron. Add scanlines, a phosphor bloom on the text, chromatic aberration on the edges, and a subtle screen curvature vignette."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kiro generated complex CSS shaders and keyframe animations instantly. It tweaked the text shadows to simulate that fuzzy, glowing look of old cathode ray tubes. It was like pair-programming with a retro-graphics expert.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: The "Kiroween" Twist
&lt;/h3&gt;

&lt;p&gt;Since this was for a Halloween hackathon, I added a ghost in the machine.&lt;/p&gt;

&lt;p&gt;Using Vibe mode, I instructed Kiro to build &lt;strong&gt;Page 666&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The Logic:&lt;/strong&gt; If the user dials 666, the system degrades.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Visuals:&lt;/strong&gt; Random character corruption and background red flashing.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The Audio:&lt;/strong&gt; Kiro helped me wire up the Web Audio API to play static hiss that syncs with the visual glitches.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;p&gt;Teletext Zero isn't just a toy; it works.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Page 200&lt;/strong&gt; pulls live BBC News via RSS.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Page 300&lt;/strong&gt; pulls tech news from The Verge.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Page 400&lt;/strong&gt; uses the browser's Geolocation to fetch live weather from Open-Meteo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And because of the Spec-driven foundation, the Kiro-generated "Word Wrap" logic takes those long web articles and perfectly truncates them into 40-character summaries. It respects the grid.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Kiro changed my mental model of development. I used &lt;strong&gt;Spec&lt;/strong&gt; to enforce rigor where it mattered (the engine) and &lt;strong&gt;Vibe&lt;/strong&gt; to embrace chaos where it was fun (the aesthetics).&lt;/p&gt;

&lt;p&gt;I didn't just write code; I directed a vision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Try Teletext Zero here:&lt;/strong&gt; &lt;a href="https://rafi.is-a.dev/Teletext-Zero/" rel="noopener noreferrer"&gt;https://rafi.is-a.dev/Teletext-Zero/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;💻 Check the Repo:&lt;/strong&gt; &lt;a href="https://github.com/MdRaf1/Teletext-Zero" rel="noopener noreferrer"&gt;https://github.com/MdRaf1/Teletext-Zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have you tried AI-native IDEs yet? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with #kiro&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>webdev</category>
      <category>react</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Taught an AI to Use Git So I Wouldn't Have to Fear It Anymore</title>
      <dc:creator>Md. Rafi</dc:creator>
      <pubDate>Sun, 14 Sep 2025 11:35:53 +0000</pubDate>
      <link>https://forem.com/kirodotdev/i-taught-an-ai-to-use-git-so-i-wouldnt-have-to-fear-it-anymore-16l7</link>
      <guid>https://forem.com/kirodotdev/i-taught-an-ai-to-use-git-so-i-wouldnt-have-to-fear-it-anymore-16l7</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%2Fhz4x1iu494769mc7buu0.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%2Fhz4x1iu494769mc7buu0.png" alt="Cover Image" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
We've all felt that spark of fear before running a &lt;code&gt;git reset --hard&lt;/code&gt;. For the Kiro AI hackathon, I decided to build a tool to extinguish that fear for good.&lt;/p&gt;

&lt;p&gt;I call it &lt;strong&gt;Git Sensei&lt;/strong&gt;, an AI-powered guardian for your command line. It's a tool designed to make Git &lt;strong&gt;safe&lt;/strong&gt;, &lt;strong&gt;simple&lt;/strong&gt;, and &lt;strong&gt;smart&lt;/strong&gt;. It acts as a safety net for dangerous commands, translates plain English into Git, and most importantly, it understands the &lt;em&gt;context&lt;/em&gt; of your repository to give you the right command at the right time.&lt;/p&gt;

&lt;p&gt;But building it presented a classic developer dilemma.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Challenge: Building for Safety &lt;em&gt;and&lt;/em&gt; Innovation
&lt;/h3&gt;

&lt;p&gt;How do you build a tool that is both rock-solid reliable &lt;em&gt;and&lt;/em&gt; creatively intelligent?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The &lt;strong&gt;safety features&lt;/strong&gt; needed to be perfect. They required upfront planning, a clear architecture, and a rigorous, spec-driven approach.&lt;/li&gt;
&lt;li&gt;  The &lt;strong&gt;AI features&lt;/strong&gt; needed to be experimental. They required rapid iteration, conversational prompting, and the freedom to innovate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trying to do both at once usually ends in a messy compromise. This is where using Kiro, the AI IDE, changed my entire workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: A Hybrid Development Model
&lt;/h3&gt;

&lt;p&gt;I didn't have to compromise. I got to be both an architect and an innovator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. For the Foundation: Spec-to-Code&lt;/strong&gt;&lt;br&gt;
I started by writing a complete blueprint for the application's core: the requirements, the design, and a full task list. I handed this spec to Kiro, and it generated the entire robust, testable foundation of the app. The safety net was built on a rock.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. For the AI: Vibe Coding&lt;/strong&gt;&lt;br&gt;
With the foundation secure, I switched to a conversational flow. I used Vibe to explore AI models and used prompt engineering to teach the AI how to be context-aware. Kiro handled all the complex integration, allowing me to focus purely on the AI's logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Wow" Moment
&lt;/h3&gt;

&lt;p&gt;The payoff was undeniable. In my demo, I created a new, untracked file and gave Git Sensei a simple command: &lt;code&gt;"save my work"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A normal translator would fail. But the context-aware AI knew better.&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%2Ffhn6k3hsorwbc22880yz.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%2Ffhn6k3hsorwbc22880yz.gif" alt="Demo GIF" width="1772" height="1019"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It saw the untracked file and correctly suggested &lt;code&gt;git add feature.txt&lt;/code&gt;. It didn't just translate my words; it understood my intent.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Takeaway
&lt;/h3&gt;

&lt;p&gt;My biggest lesson is that we no longer have to choose between rigid planning and chaotic innovation. With modern AI tools, we can apply the right methodology to the right part of the problem. It's a more strategic, flexible, and ultimately more powerful way to build.&lt;/p&gt;

&lt;p&gt;If you want to see how it all works, check out the project below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MdRaf1/Git-Gud/" rel="noopener noreferrer"&gt;&lt;strong&gt;🔗 GitHub Repo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://youtu.be/_C5g8aZpxXA" rel="noopener noreferrer"&gt;&lt;strong&gt;🎬 Video Demo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading&lt;/p&gt;

</description>
      <category>ai</category>
      <category>git</category>
      <category>productivity</category>
      <category>kiro</category>
    </item>
  </channel>
</rss>
