Make an app

When I was really getting started as a developer, in the early 2000s, the internet was all about blogs. Developers built and rebuilt their blogs over and over again. They’d roll their own publishing system, they’d customize Wordpress, tear it all apart and do it all over again. I built and rebuilt abouthalf.com a dozen ways. It was fun, I learned things. I got to show off and share what I learned with others. I got into arguments on the internet about it. It was great.
Blogs got so hugely popular they began to influence legacy media and Google took notice. Google Reader sprang up out of Google Labs and became the de facto RSS reader for a generation.
RSS - Really Simple Syndication - was a great, simple invention of the open internet. A website could publish a standardized XML file that listed website updates in reverse chronological order. Then a news reader, which could be a stand alone app on the web or your desktop, could fetch a number of website “feeds” and display them all together. This was perfect for web junkies like me. Everything, together, all at once.
Early news readers looked like an email app and Google Reader looked like Gmail. But it had a couple of superpowers. There were keyboard shortcuts, unheard of for a website at the time. You could move up and down your list of articles with a key press. Open, mark as read, or add a star (to bookmark) with a keystroke.
Then Facebook happened. Internet users got swallowed up by the radicalizing dopamine casino. Google killed Reader. But the spirit of blogs never died. Weird nerds continued to implement RSS in platforms and find a use for it. Podcasts are all delivered via RSS feeds. Most popular website platforms create RSS feeds by default. Bluesky provides RSS feeds for their social profiles. Don’t tell Substack this, but you can follow public newsletters via RSS and never once see a pop-up asking for your email.
I’m part of that old guard who misses blogs in general and Google Reader specifically. I never stopped using news readers. I see a lot of smart people working on the web today calling for a return to these simpler, more independent ways. Until recently I was using Reeder. Reeder has been a very good app for a very long time. They had a mac and iOS version. They synch back and forth. I happily paid for upgrades. Recently they moved to a subscription model. I hate this.
I understand. The people behind Reeder are running a business, they need to find revenue. I get it. But I am so done with software subscriptions. Especially ones that charge me to sync between devices, which I’m already paying Apple to do. (Looking at you Day One).
I wrote all of this to explain why I made my own RSS reader: Teensy News.
Teensy News is a very simple web application which let me upload my exported feeds (in an OPML file) organize them into folders, and read through them on a clean and simple web page.
I built the app using Redwood SDK - a fairly new, slightly bleeding edge web framework. It’s like Next.js but simpler. It prioritizes Cloudflare’s ecosystem over Vercel (pick your poison). Cloudflare has all the parts I needed to make this project without me worrying about running a server somewhere. They have background tasks which run on a schedule, they have databases and storage, they have services for proxying and transforming images.
This lets me run code which can scan an RSS feed, check for new entries, and stash them in a database. Every user gets their own small database. I love this little detail. For one, it’s so much simpler to manage one persons data at a time. No complex joins, just simple select statements. But there’s also virtually no chance that one person’s feeds get mixed up with another’s. A data-isolation structure like this helps enforce privacy and security.
I’m most happy with the reading experience. I opted for simple - I didn’t want to replicate a complex app-like navigation structure. Browsers have back buttons, let’s use them. Modern devices let you swipe back and forth on screens or trackpads to navigate back and forth in the browser. Let’s Use The Platform and keep things simple.
I’m using IBM’s Plex Serif typeface for the content of feeds and most typography and Plex Sans UI elements like buttons and forms. Plex is a handsome font that’s modern and built for screens.
Most RSS feeds include a lengthy snippet of HTML content, if not the full article. The feed reader cleans up this content, removing anything potentially nefarious, proxies images, along the way resizing them and compressing them for speed, then caching them for later. The result is a nice clean article or article intro with a link to the full article at the bottom.

For a couple of weeks, in the evenings, and maybe during one dull all-staff meeting, I plunked away at this with the help of a coding robot. I started with feed management and worked my way into browsing and reading feeds. I finished up by adding a home page with a little illustration, and some boilerplate website stuff. An about page, a privacy policy, and a contact form. I knew I was on to something when I found I had stopped using Reeder and started using Teensy News. Now it’s my full time news reader.
I built this for me originally. As I worked on it, I realized this might be of use to similarly minded web junkies and pivoted to making it public. So here’s Teensy News. I hope you like it.
If you’ve never used news readers and want to find a way to dive in, I recommend Molly White’s blogroll. She’s a great journalist and covers lots of important tech issues, and her Save one of her OPML files (feed lists) and import it into Teensy News to try it out.