<?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: Longden</title>
    <description>The latest articles on Forem by Longden (@longden).</description>
    <link>https://forem.com/longden</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%2F3746002%2Fb897cda8-2002-4a43-8085-a29b3a1aa10f.png</url>
      <title>Forem: Longden</title>
      <link>https://forem.com/longden</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/longden"/>
    <language>en</language>
    <item>
      <title>RussReader - A lightweight RSS reader for mac</title>
      <dc:creator>Longden</dc:creator>
      <pubDate>Mon, 16 Feb 2026 07:58:22 +0000</pubDate>
      <link>https://forem.com/longden/russreader-a-lightweight-rss-reader-for-mac-5bmj</link>
      <guid>https://forem.com/longden/russreader-a-lightweight-rss-reader-for-mac-5bmj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Keeping track of updates in the AI space is getting too much, so I wanted to build something that helped me stay on top of everything. The easiest place to do this (apart from here) is RSS. I checked out a few websites/Mac app RSS readers, and they are quite heavy (and complex). I wanted to build something to quickly check while coding agents are working, but easy enough to access that it doesn't distract you too much, while keeping you in a flow state. Born from this is a lightweight (yet full-featured) macOS menu bar app for RSS feeds.&lt;/p&gt;

&lt;p&gt;I wanted to make sure I had basic RSS features, and then started slowly adding more complex ones. The design was also a challenge, as I wanted to keep it in line with Liquid Glass (ish), but also keep it appealing to most people. There’s so much more that can be added, but it’s feature-complete for most people as it is. Here is the current selection of its features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Supports Multiple Feeds&lt;/strong&gt; - Subscribe to as many RSS/Atom feeds as you want&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Filters&lt;/strong&gt; - Rule-based filters to highlight, hide, auto-star, or send notifications for matching articles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization&lt;/strong&gt; - Customise almost everything from the feeds UI to the behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Article Preview&lt;/strong&gt; - Inline preview with proper HTML rendering including headings, blockquotes, and images&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feed Discovery&lt;/strong&gt; - Paste any website URL and RussReader finds the feed automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authenticated Feeds&lt;/strong&gt; - Basic Auth and Bearer Token support, credentials stored securely in Keychain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OPML &amp;amp; CSV Support&lt;/strong&gt; - Import and export your subscriptions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suggested Feeds&lt;/strong&gt; - Curated packs across news, tech, AI, iOS dev, security, and more to get started fast&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localization&lt;/strong&gt; - Available in English, Spanish (Español), French (Français), German (Deutsch), and Simplified Chinese (简体中文), with per-language content preference&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  My Swift Experience
&lt;/h3&gt;

&lt;p&gt;I haven’t written more that a few lines of Swift before and I leaned on (and trusted) Copilot heavily. This meant I had to use larger, more plan based prompting to keep things on track after starting.&lt;/p&gt;

&lt;p&gt;This was also the first time I have used xcode for a long period of time, setting this up and getting an application working took much longer than expected&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/longden/RussReader" rel="noopener noreferrer"&gt;https://github.com/longden/RussReader&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to build:&lt;/strong&gt; Either open in xcode or download the artifact &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%2F60x4mn8qhucfpgm48sxh.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%2F60x4mn8qhucfpgm48sxh.png" alt="Light Mode Home" width="800" height="976"&gt;&lt;/a&gt;&lt;br&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%2Fpy7y654o80kq8guyad7z.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%2Fpy7y654o80kq8guyad7z.png" alt="Dark Mode Starred" width="800" height="972"&gt;&lt;/a&gt;&lt;br&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%2Fz0veqgricfdzkuns1m16.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%2Fz0veqgricfdzkuns1m16.png" alt="Dark Mode Rules" width="800" height="930"&gt;&lt;/a&gt;&lt;br&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%2F7r3b96ze8x672g9bnbo9.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%2F7r3b96ze8x672g9bnbo9.png" alt="Dark Mode Reader" width="800" height="989"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;I’ve used some of the other coding CLIs, but I was blown away with how fast features have been added to Copilot CLI, even some being released as I was creating this app for the challenge. The gap has absolutely been closed.&lt;/p&gt;

&lt;p&gt;I started the project with a one shot of a working(ish) app. I used Opus for this. Being able to switch (using /models) between most of the frontier models is one of my favorite features. I often switched between 5.2-codex, GPT-5 mini, Sonnet 4.5, and Opus 4.5 (4.6 by the end) throughout building this. There aren’t many other CLIs that have this ability.&lt;/p&gt;

&lt;p&gt;Working with subAgents kept the context window down. I often told Copilot to do its work in a subAgent which meant I could send many more messages before having to start a new chat, plus a shoutout to the /context command. This made it easy to know when to clear and start a new chat.&lt;/p&gt;

&lt;p&gt;Plan mode (and the ask_user tool) were invaluable when developing. At the start I was firing in commands left and right until I realized there was a plan mode. From then most of the features I added started from a slow planning phase, iterating (ctrl+y) to view the plan is quick and easy then I would tell Copilot to start. As Copilot CLI has an ask_user tool I also used it heavily to ask it to use that tool and ask me everything about a feature I had an idea for, e.g. when implementing feed discovery I asked it to quiz me about what feeds I wanted, what edge cases etc and this worked really well. It made me think much deeper about edge cases and come up with something really detailed.&lt;/p&gt;

&lt;p&gt;Being a CLI in general was also the most important part. I created/developed the app while working on my Mac in between other tasks, most of the time I would fire off a prompt in Ghostty, then go back to what I was doing. I did sometimes open VS Code to check structure and see code etc but all the prompts happened from the CLI. Although VS Code isn't heavy, working from the CLI&lt;/p&gt;

&lt;p&gt;There were so many more things I used such as adding agents for codereview and swiftreview keeping the code healthy. Overall I loved using Copilot CLI&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
      <category>githubchallenge</category>
    </item>
  </channel>
</rss>
