In early June 2024, I was on the train to work, checking the news like I did every morning. And like every morning, I saw the same story again and again. One thing happened, and every outlet I followed wrote about it. Ten headlines, one piece of news. I’d read a title, realize I already knew it, scroll, and repeat.
I didn’t want an app that picked the news for me or replaced it with a daily digest. I still wanted to read the original articles and decide for myself. I just wanted to see each story once.
None of the readers I tried did that, so I built one. That was NewsNinja.
Version 1: an RSS reader that grouped headlines
The first commit is dated June 6, 2024. Grouping and AI summaries were working the next day, and version 1.0 was ready about ten days later, after roughly 24 hours of actual work. It reached the App Store on June 21.
It shipped on iPhone, iPad, and Vision Pro. visionOS was a brand-new platform at the time, and I wanted to try it, so it came before the Mac. The native Mac app only arrived seven months later, in January 2025. I wrote about the first version at the time in NewsNinja: a smart RSS reader to optimize reading time.
It did three things:
Grouped articles about the same story, so ten headlines about the same news became one. It launched the week after WWDC, which turned out to be the perfect test.
Opened articles in reader mode by default, without the clutter of the original page.
Summarized long articles with AI. This was the only paid feature, because it was the only one that cost me money to run.
No account, no server of my own: your feed list was a single array of URLs synced through iCloud. I wrote about how that grew in How NewsNinja syncs all your data in less than 1 MB of iCloud.
Grouping without AI
Grouping was what set NewsNinja apart from other RSS readers, and it took the longest to get right.
My first plan was to let AI decide which articles belonged together, and I tried two ways.
One big prompt. I sent all the headlines to OpenAI and asked it to group them. It was very, very slow. It often returned only some of the headlines, and the groups changed from one run to the next. I tried different prompts and asked for JSON, but the output still wasn’t reliable enough to build on.
Embeddings. Next I turned each headline into an embedding and compared them. That was faster, but it still took several API calls, and the JSON I got back still wasn’t dependable.
Maybe I didn’t have enough experience with AI yet, or maybe the models of 2024 just weren’t there. Either way, I couldn’t ship something slow and unpredictable, so I looked for another way.
I went back to basics. NewsNinja compared headlines with string similarity algorithms. You could even pick one of three algorithms and set your own threshold, because sports headlines and tech headlines don’t look alike. It was fast, it ran on your phone, and it cost nothing. It wasn’t perfect, but it was good enough to make the idea work.
Ship small, ship often
From the start, I wanted to get something real in front of people quickly and let their feedback decide what came next, instead of spending months on a big first release.
So the updates came small and fast. In the four months after launch, NewsNinja had nine releases:
Days after launch: Italian, Japanese, Korean, and Chinese, with summaries in your language.
July: feed discovery, a blocklist for words you don’t want to see, sharing, and OPML import to bring your feeds from another reader.
August: read and unread articles, better RSS parsing, and font and reader themes.
Each release added only a few things. That kept the app moving, and it kept me from burning out on a side project: there was always something new in the hands of real users, and real feedback telling me whether it was worth it.
“Can it also do…?”
The first version ended with a list of plans: a blocklist for words you never want to see, card layouts, categories, a Mac app, translations, themes, and support for YouTube and Reddit. Over the next two years, almost all of it shipped, and much more.
Most of it came from users. People liked that NewsNinja was simple, private, and fast, and they kept asking for more:
Import my feeds from the reader I already use.
Reddit and YouTube: Reddit came with version 2.0 in summer 2025, and YouTube a few weeks later.
X, and later Mastodon, Bluesky, and Hacker News, all without signing in.
Podcasts, with transcripts and summaries.
Translation, read-aloud, fact-checking, and email newsletters.
Every one of those requests made sense, and each one made people stay longer. Reddit and YouTube support, a better interface, and a steady stream of new features did more for retention than anything else.
How it found users, without marketing
I never really did marketing. I posted on Product Hunt, on Reddit, and on my own X and LinkedIn profiles, and that’s about it. Most users came from Reddit.
Timing helped. In 2024, AI hadn’t yet flooded the App Store with apps built in a weekend, and people on Reddit were genuinely interested in a new RSS reader.
A few things made a clear difference after that:
Localization. NewsNinja supports multiple languages, with a dedicated App Store description and screenshots for each one. That opened up countries I would never have reached otherwise.
The Mac app. Shortly after it launched in January 2025, NewsNinja went #1 in the News category of the Japanese Mac App Store.
Black Friday. A discount brought a noticeable wave of new users.
Letting people choose how to pay. NewsNinja+ is available as a subscription or as a one-time purchase. Most people pick the one-time purchase. Offering it clearly helped, especially with the kind of people who use RSS readers.
Is feature creep bad?
At some point, NewsNinja stopped being an RSS reader in any meaningful sense. Today it follows websites, Reddit, YouTube, podcasts, X, Mastodon, Bluesky, Hacker News, and email. It has a dashboard called Today, a full list called Home, Stories built from your own feeds, and Top News from outlets around the world.
That’s hard to describe in one sentence. It doesn’t fit an App Store subtitle, and it’s a big reason why Top News now has its own page on the web: showing it is easier than explaining it.
But I don’t think it’s a problem anymore. Every one of those features is something people use, and together they add up to something clearer than “an RSS reader”: one place that collects everything you follow, so you can catch up with your day and move on. The feature list grew, but the idea under it got simpler.
What never changed: no NewsNinja account, your data synced through your own iCloud, and an app built to save your attention instead of selling it.
Full circle
Two and a half years after that train ride, NewsNinja 3.3 shipped Stories.
Stories groups the articles from your feeds into events, writes a title and a one-line summary for each one, and lists every source that covered it. It works across languages, and only news reported by at least two of your sources becomes a story. And funnily enough, it’s built on embeddings and several API calls, the same approach I gave up on in 2024. This time it works, and it’s reliable.
It’s exactly what I wanted on that train. It just took two years, and a lot of other features, for the technology to catch up with the idea.
What I’d do differently
If I started NewsNinja today, I’d use AI much earlier, and for more than code:
Design. I’d get to a better design from the start, instead of fixing it version by version.
Architecture and planning. Things like sync and data storage were decided for a simple RSS reader and had to be stretched for everything that came after. Planning with AI would have helped me see further ahead.
What’s next
The backlog is long. One sneak peek: a time machine of everything you’ve read or opened in NewsNinja, so you can go back to any day and find that article you remember but can’t place, with stats, streaks, and more.
If you’ve built something that grew the same way, I’d like to hear how you decided what to keep. And if you were one of the people who found NewsNinja on Reddit two years ago, thank you.
Download NewsNinja on the App Store
Originally published on NewsNinja Blog.




