<?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: Taniya Saxena</title>
    <description>The latest articles on DEV Community by Taniya Saxena (@taniy8).</description>
    <link>https://dev.to/taniy8</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%2F3983937%2Fe7015a90-f87b-472d-b0ee-948d29683f03.jpeg</url>
      <title>DEV Community: Taniya Saxena</title>
      <link>https://dev.to/taniy8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/taniy8"/>
    <language>en</language>
    <item>
      <title>I built a tool that formats messy developer notes into clean GitHub Markdown</title>
      <dc:creator>Taniya Saxena</dc:creator>
      <pubDate>Sun, 14 Jun 2026 13:22:27 +0000</pubDate>
      <link>https://dev.to/taniy8/i-built-a-tool-that-formats-messy-developer-notes-into-clean-github-markdown-4kbc</link>
      <guid>https://dev.to/taniy8/i-built-a-tool-that-formats-messy-developer-notes-into-clean-github-markdown-4kbc</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every time I write a PR description, I start with raw notes like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fixed bug with authService

added JWT validation to middleware

refactored userController to use async await

fixes 287

closes 301
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then I have to manually clean it up to capitalize everything, wrap code identifiers in backticks, format bullets, add &lt;code&gt;#&lt;/code&gt; to issue numbers. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;So I built a tool that does it automatically.&lt;/p&gt;

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

&lt;p&gt;Paste your raw notes. Get back clean GitHub-flavored Markdown instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input&lt;/strong&gt;&lt;br&gt;
fixed bug with authService&lt;/p&gt;

&lt;p&gt;added JWT validation to middleware&lt;/p&gt;

&lt;p&gt;refactored userController to use async await&lt;/p&gt;

&lt;p&gt;fixes 287&lt;/p&gt;

&lt;p&gt;closes 301&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; Fixed bug in &lt;span class="sb"&gt;`authService`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Added JWT validation to &lt;span class="sb"&gt;`middleware`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Refactored &lt;span class="sb"&gt;`userController`&lt;/span&gt; to use async/await

Fixes #287

Closes #301
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Formatting Pipeline
&lt;/h2&gt;

&lt;p&gt;The tool runs a deterministic rule-based pipeline on every line:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Issue reference detection&lt;/strong&gt; &lt;code&gt;fixes 123&lt;/code&gt; → &lt;code&gt;Fixes #123&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code identifier detection&lt;/strong&gt; wraps &lt;code&gt;snake_case&lt;/code&gt;, &lt;code&gt;CamelCase&lt;/code&gt;, &lt;code&gt;functions()&lt;/code&gt;, and &lt;code&gt;file.ts&lt;/code&gt; in backticks automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bullet generation&lt;/strong&gt; detects action verbs like &lt;code&gt;added&lt;/code&gt;, &lt;code&gt;fixed&lt;/code&gt;, &lt;code&gt;refactored&lt;/code&gt; and converts them to bullet points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentence capitalization&lt;/strong&gt; capitalizes the first letter of every line&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No AI required for any of this. It's fast, deterministic, and works offline.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Mode
&lt;/h2&gt;

&lt;p&gt;There's also an optional AI enhancement mode powered by Groq's Llama 3.3 70B. Toggle it on and the rule-based output gets passed to the AI for grammar correction and clarity improvements without adding or inventing content.&lt;/p&gt;

&lt;p&gt;The rule-based formatter runs first. AI just polishes the result.&lt;/p&gt;

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

&lt;p&gt;I'm a Java developer learning the JavaScript ecosystem. This was my first real Next.js project. A few things I picked up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The difference between server-side and client-side rendering in Next.js (and why hydration errors happen)&lt;/li&gt;
&lt;li&gt;How to build a custom React hook for localStorage persistence&lt;/li&gt;
&lt;li&gt;How to proxy API calls through a Next.js API route to keep secrets off the client&lt;/li&gt;
&lt;li&gt;How Tailwind CSS compares to writing raw CSS&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Live → &lt;a href="https://github-markdown-formatter.vercel.app" rel="noopener noreferrer"&gt;https://github-markdown-formatter.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub → &lt;a href="https://github.com/taniy8/github-markdown-formatter" rel="noopener noreferrer"&gt;https://github.com/taniy8/github-markdown-formatter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback - especially from developers who write a lot of PRs. What formatting rules would you add?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>github</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
