DEV Community

Cover image for RussReader - A lightweight RSS reader for mac
Longden
Longden

Posted on

RussReader - A lightweight RSS reader for mac

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

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.

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.

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

My Swift Experience

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.

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

Demo

Repo: https://github.com/longden/RussReader

How to build: Either open in xcode or download the artifact

Light Mode Home
Dark Mode Starred
Dark Mode Rules
Dark Mode Reader

My Experience with GitHub Copilot CLI

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.

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.

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.

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.

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

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

Top comments (0)