I recently broke silence on Twitter. It's not because I think Twitter is a great place to publish my thoughts. It's because I had excitement about a project. The kind of excitement that demands sharing with someone.
The excitement was fueled by progress in building an RSS Reader. I don't know what came over me, but in July of 2020 I'd had it with my current solution. The notifications and navigational split between read and unread. The buggy mobile apps. The assumptions around how to consume RSS, that aren't the actual XML schema that makes RSS a treasure.
Things are really starting to come together. I can follow individual feeds. Bulk subscribe to feeds from an OPML file. Save clips of stories to be remembered. Set aside individual stories to be revisited later. Bundle related feeds to establish reading contexts. Navigate through feeds, bundles, and stories with keyboard shortcuts. It's quite fun!
The excitement was fueled by progress in building an RSS Reader. I don't know what came over me, but in July of 2020 I'd had it with my current solution. The notifications and navigational split between read and unread. The buggy mobile apps. The assumptions around how to consume RSS, that aren't the actual XML schema that makes RSS a treasure.
Things are really starting to come together. I can follow individual feeds. Bulk subscribe to feeds from an OPML file. Save clips of stories to be remembered. Set aside individual stories to be revisited later. Bundle related feeds to establish reading contexts. Navigate through feeds, bundles, and stories with keyboard shortcuts. It's quite fun!
The stack is pretty simple.
- Rails 6.1 rendering HTML
- Tailwind CSS for minimal styling
- Turbo for making it feel a little snappier
- Stimulus for sprinkling on JavaScript
- PostgreSQL as database
- Sidekiq for all the background work
And I've got to say, working on a vanilla Rails app is a real treat. Most features from concept to completion have been an hour here, an hour there, after the kids are in bed.
My recent years leaning into React have manifested in some habits that aren't conducive to trusting server rendered HTML. I ripped out a bunch of these strategies this past week. There's no JSON anywhere. Which isn't to say that JSON is bad! But in an industry where it's become the assumption, it's been real fun to get back to the basics of sending semantic HTML over the wire, applying minimal CSS to make it shine, and sprinkling on a little bit of JavaScript to progressively enhance the experience.