<?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: KabosuTravel</title>
    <description>The latest articles on Forem by KabosuTravel (@kabosutravel).</description>
    <link>https://forem.com/kabosutravel</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%2F3666486%2Fe1fc7e75-1c74-41d8-af6e-a18d549f3947.jpg</url>
      <title>Forem: KabosuTravel</title>
      <link>https://forem.com/kabosutravel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kabosutravel"/>
    <language>en</language>
    <item>
      <title>EqPad: A Calculator-Style Equation Editor for LaTeX, Markdown, and PNG</title>
      <dc:creator>KabosuTravel</dc:creator>
      <pubDate>Sat, 07 Feb 2026 14:29:05 +0000</pubDate>
      <link>https://forem.com/kabosutravel/eqpad-a-calculator-style-equation-editor-for-latex-markdown-and-png-292k</link>
      <guid>https://forem.com/kabosutravel/eqpad-a-calculator-style-equation-editor-for-latex-markdown-and-png-292k</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;EqPad&lt;/strong&gt;, a minimal equation editor for people who don’t want to “learn LaTeX first, write math later.”&lt;/p&gt;

&lt;p&gt;The idea is simple: most of the time, I’m not trying to typeset a paper—I’m trying to quickly assemble a correct expression and paste it into wherever I’m working (Markdown, a doc, a worksheet, a chat, etc.). So EqPad focuses on a calculator-like workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Button-first input for common structures (fractions, powers, roots, brackets, matrices)&lt;/li&gt;
&lt;li&gt;Fast navigation with &lt;strong&gt;Tab to jump between placeholders&lt;/strong&gt; (so you can fill the “holes” in order)&lt;/li&gt;
&lt;li&gt;Practical exports only: &lt;strong&gt;LaTeX&lt;/strong&gt;, &lt;strong&gt;expanded LaTeX&lt;/strong&gt;, &lt;strong&gt;block/inline Markdown&lt;/strong&gt;, and &lt;strong&gt;PNG&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A lightweight “template” area for common high school / university patterns (derivatives, sequences, probability, trig identities, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No accounts. No documents. No “math notes app.” Just an equation builder that stays out of your way.&lt;/p&gt;

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

&lt;p&gt;Live app: &lt;code&gt;https://eqpad.kttin.net&lt;/code&gt;&lt;br&gt;
Repo: &lt;code&gt;https://github.com/kotatsu-dog/EqPad&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://eqpad.kttin.net" rel="noopener noreferrer"&gt;https://eqpad.kttin.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quick walkthrough:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click a structure button like fraction / power / root.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Tab&lt;/strong&gt; to jump to the next input slot and type.&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Output&lt;/strong&gt;, click what you need: LaTeX / LaTeX (expanded) / Markdown / Inline / PNG.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Screenshots:&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%2F2o4anefn771z3wga6hqs.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%2F2o4anefn771z3wga6hqs.png" alt="EqPad editor" width="800" height="410"&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%2Fr5shohnbq0es3mcs7hnr.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%2Fr5shohnbq0es3mcs7hnr.png" alt="Export options" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;This challenge is explicitly about building &lt;em&gt;with Copilot CLI&lt;/em&gt; and showing how it helped along the way. I leaned into that by keeping Copilot open in my terminal as my “build buddy” while I iterated on the UI and export pipeline.&lt;/p&gt;
&lt;h3&gt;
  
  
  How I used it day-to-day
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1) Planning and scoping before I coded&lt;/strong&gt;&lt;br&gt;
Instead of starting with a blank editor and guessing the shape of the app, I used Copilot CLI’s planning flow to outline the MVP screens, state model, and edge cases. The CLI supports structured planning commands (for example, &lt;code&gt;/plan&lt;/code&gt;) which are great when you want a concrete checklist before touching code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Fast iteration without context switching&lt;/strong&gt;&lt;br&gt;
I stayed inside the terminal: run, inspect, tweak, repeat. Copilot CLI’s interactive mode (&lt;code&gt;copilot&lt;/code&gt;) plus the built-in help (&lt;code&gt;/help&lt;/code&gt;) made it easy to discover commands and shortcuts as I went.&lt;br&gt;
My typical loop looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;copilot
&lt;span class="c"&gt;# /help&lt;/span&gt;
&lt;span class="c"&gt;# /cwd&lt;/span&gt;
&lt;span class="c"&gt;# /clear&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That “/clear + /cwd” habit sounds small, but it prevents the agent from drifting when you’re jumping between tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Safer “agentic” changes with explicit permissions&lt;/strong&gt;&lt;br&gt;
When Copilot CLI wants to read/modify files or run tools, it asks you to confirm trust boundaries and approve commands. That made me more comfortable letting it do bigger refactors—because it wasn’t a silent black box touching my repo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Repo-specific instructions&lt;/strong&gt;&lt;br&gt;
I also like the fact that Copilot CLI can initialize repo instructions (&lt;code&gt;copilot init&lt;/code&gt;) so the agent consistently follows project rules (naming, folder structure, etc.).&lt;/p&gt;

&lt;h3&gt;
  
  
  Where it helped most on EqPad
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Turning “I want a calculator-like equation editor” into concrete UI primitives (buttons, placeholders, tab order).&lt;/li&gt;
&lt;li&gt;Speeding up repetitive implementation work (button packs, template lists, export wiring).&lt;/li&gt;
&lt;li&gt;Catching edge cases I would have missed (export sizing, placeholder navigation, keyboard shortcuts).&lt;/li&gt;
&lt;li&gt;Keeping momentum: I didn’t have to constantly jump between browser docs, editor, and terminal—Copilot CLI stayed in the same loop as my build/test cycle.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>I Built "GitJin" - A Web App to Escape GitHub's Unusable Home Screen</title>
      <dc:creator>KabosuTravel</dc:creator>
      <pubDate>Wed, 17 Dec 2025 08:38:20 +0000</pubDate>
      <link>https://forem.com/kabosutravel/i-built-gitjin-a-web-app-to-escape-githubs-unusable-home-screen-one</link>
      <guid>https://forem.com/kabosutravel/i-built-gitjin-a-web-app-to-escape-githubs-unusable-home-screen-one</guid>
      <description>&lt;p&gt;Winter days continue to be cold in Japan. With poor circulation, my fingertips get so cold that typing on a keyboard becomes painful.&lt;/p&gt;

&lt;p&gt;By the way, everyone, &lt;strong&gt;don't you find GitHub's home screen difficult to use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I use GitHub every day, but honestly, I'm dissatisfied with the UX of the home screen.&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%2F00t9bq6xx4xpoywhiier.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%2F00t9bq6xx4xpoywhiier.png" alt="github homepage" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Copilot promotional area is intrusive and makes scrolling annoying&lt;/li&gt;
&lt;li&gt;Too many clicks required to reach my own profile&lt;/li&gt;
&lt;li&gt;Checking PRs and Issues isn't intuitive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Isn't it strange that a platform for developers isn't user-friendly for developers?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Born from this frustration is &lt;strong&gt;GitJin&lt;/strong&gt;, which I'm introducing today.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What is GitJin? The "Fastest" GitHub Dashboard for Accessing Information
&lt;/h2&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%2F50jxsoj99mum4p5fzt0o.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%2F50jxsoj99mum4p5fzt0o.png" alt="GitJin Overview" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitJin is a web app that &lt;strong&gt;displays repositories, PRs, and Issues in an easy-to-read single screen just by logging in with your GitHub account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://gitjin.com/" rel="noopener noreferrer"&gt;https://gitjin.com/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Three Problems GitJin Solves
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scattered Information&lt;/strong&gt;&lt;br&gt;
On GitHub, repositories, PRs, and Issues are on separate pages.&lt;br&gt;
GitJin consolidates them into one screen for speedy access without page transitions!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Slow Display Speed&lt;/strong&gt;&lt;br&gt;
Initial display is faster than GitHub, with parallel API requests for a comfortable experience!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fygbupxvzovt6s993msy0.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%2Fygbupxvzovt6s993msy0.png" alt=" " width="800" height="60"&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%2Fo6xckcjtbktt1cvhaeu4.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%2Fo6xckcjtbktt1cvhaeu4.png" alt=" " width="800" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt;
Data is fetched from GitHub API on-demand. Only minimal necessary information is stored.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔧 Tech Stack Overview
&lt;/h2&gt;

&lt;p&gt;For personal projects, being able to "build quickly" is crucial. This time I built around &lt;strong&gt;Next.js&lt;/strong&gt;, which I've been obsessed with recently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Chose It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Intuitive file-based routing for fast implementation&lt;/li&gt;
&lt;li&gt;Robust development with TypeScript&lt;/li&gt;
&lt;li&gt;Complete frontend and backend in one framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For personal development and quickly shaping products, I think Next.js is the only choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Authentication
&lt;/h3&gt;

&lt;p&gt;I used &lt;strong&gt;better-auth&lt;/strong&gt; for user authentication.&lt;br&gt;
Previously I used Auth.JS (formerly NextAuth), but better-auth is more intuitive with simpler implementation. Switching was the right decision.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Other Key Libraries
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;octokit&lt;/strong&gt;: Communication with GitHub API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;drizzle&lt;/strong&gt;: Lightweight and comfortable as database ORM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/primer"&gt;@primer&lt;/a&gt;/octicons-react&lt;/strong&gt;: Using official GitHub icons&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 Key Features I'm Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⚡ Improved Perceived Speed with Skeleton Display
&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%2F6f3wle7c5kexnejo5xa1.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%2F6f3wle7c5kexnejo5xa1.png" alt=" " width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitJin's biggest feature is its fast initial display.&lt;/strong&gt;&lt;br&gt;
The screen appears faster than GitHub, and skeleton states visualize loading while data is being fetched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation Points&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start API requests after initial rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel execution&lt;/strong&gt; of repository, Issue, and PR requests&lt;/li&gt;
&lt;li&gt;Sequential display as data arrives, dramatically improving perceived speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I focused on UI design that doesn't make users feel "loading."&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Calculated Menu Close Tolerance
&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%2Fbbrf39inbywco0uqsx1n.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%2Fbbrf39inbywco0uqsx1n.png" alt=" " width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The floating menu in the bottom right &lt;strong&gt;intentionally has a wide tolerance area&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In typical implementations, the menu closes immediately when the mouse leaves the menu area, but GitJin allows a margin so it won't close from slight mouse movements.&lt;/p&gt;

&lt;p&gt;It's a small detail, but it contributes to a stress-free user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔤 Web Font Flickering Prevention
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;geistMono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Noto_Sans_JP&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;400&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;subsets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;latin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;variable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;--font-geist-mono&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;swap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 👈 Display text even while loading&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'm using Noto Sans JP, but by specifying &lt;code&gt;display: "swap"&lt;/code&gt;, text displays with a fallback font even while the font is loading.&lt;/p&gt;

&lt;p&gt;This prevents flickering on initial display without compromising UX.&lt;/p&gt;

&lt;p&gt;(Side note: I didn't notice the class name is &lt;code&gt;geistMono&lt;/code&gt;... I'll fix that later 😅)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitjin.com/" rel="noopener noreferrer"&gt;https://gitjin.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Future Development
&lt;/h2&gt;

&lt;p&gt;GitJin still has plenty of room for improvement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enhanced notification features&lt;/li&gt;
&lt;li&gt;Customizable dashboard layout&lt;/li&gt;
&lt;li&gt;PR/Issue filtering functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have feedback or suggestions, please let me know!&lt;/p&gt;

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

&lt;p&gt;"Build what you want" - that's the appeal of personal development.&lt;/p&gt;

&lt;p&gt;GitJin is my &lt;strong&gt;ideal GitHub home screen&lt;/strong&gt;.&lt;br&gt;
If you feel the same frustrations, please give it a try!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitjin.com/" rel="noopener noreferrer"&gt;https://gitjin.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>product</category>
    </item>
  </channel>
</rss>
