549: Ben Ubois of Feedbin
Ben Ubois is the founder of Feedbin, the RSS reader of choice for Dave and Chris. What influenced the creation of Feedbin, the state of RSS in 2023, curating your RSS feed, and subscribing to newsletters in Feedbin.
Time Jump Links
- 00:40 Mono Rupert
- 01:04 Guest introduction
- 02:17 Is Feedbin your full time gig?
- 03:28 What is Feedbin?
- 05:20 Was Google Reader's shutdown inspiration for Feedbin?
- 07:51 How do people react to Feedbin costing money?
- 13:03 Feedbin as the homebase API
- 18:04 Handling newsletter subscriptions
- 20:20 RSS issues and fun
- 23:10 Social aspects of RSS
- 29:07 What are some of the challenges of building Feedbin?
- 35:16 Has there been a surge in usage thanks to Twitter
- 39:13 Does RSS need to evolve?
- 46:58 Curating your RSS feed
- 49:09 Feedbin as a newsletter subscriber app
Transcript
[Banjo music]
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show. I'm Dave--struggling with being--Rupert, and with me is Chris--thought-blaster--Coyier.
Chris Coyier: [Laughter] Heck, yeah.
Dave: Hey, Chris. How you doing?
Chris: Both sides of my headphones are working fine--Coyier.
Dave: I'm mono today.
[Laughter]
Dave: Left side only, left ear.
Chris: We'll see if it affects your--
Dave: Very disoriented. Yes. [Laughter]
Chris: --cognitive abilities. Sorry about that. Technology.
Dave: Am I left-brained or right-brained? [Laughter] We're going to find out today on the show.
Chris: I think your headphones are struggling to parse the malformed XML that's channeling to them.
Dave: Yeah. Perhaps we've encoded this with the improper GUID or something.
Chris: [Laughter] Yeah. Right on. We have a special guest this week joining us as the proprietor of a very nice piece of Web software that both Dave and I use, and lots of people in our community here at ShopTalk Show use too, and that's Feedbin, an RSS reading app. Although, that's our take on it. We will ask.
Ben Ubois is with us about all that. How ya doin', Ben?
Ben Ubois: I'm good. Thanks. I'm happy to be here. If I could return the compliment, I only listen to, like, five podcasts. That's really all I have time for in a week before there's new ones. One of them is ShopTalk, so a longtime fan.
Dave: Whoo!
Chris: Oh, fantastic.
Ben: And I think I'm even all the way caught up. So, if you want to just make this a normal show, we could talk about the follow-up from last week or whatever.
[Laughter]
Dave: Perfect. Perfect. We do have a few corrections, probably, hanging out in Twitter.
Chris: [Laughter] Yeah. What were we talking about? Scraping websites and crap? Yeah, I wonder. I wonder how relevant scraping is to Feedbin. We could get real esoteric real quick. But I kind of want to know how you think of it.
A) is it your full-time job? I would think so. There's probably a lot of paying subscribers to that thing. Yeah?
Ben: Yeah. I've been doing it full-time almost... well, this year it will have been ten years.
Chris: Whoa!
Ben: Anniversary is coming up in March, actually.
Chris: That is fantastic. And is it a team of one or what do you got?
Ben: I do most of the things for Feedbin.
Chris: Mm-hmm.
Ben: And I work with someone on the design side of things who is a lot of help and fun to work with.
Chris: Oh, yeah. Fantastic.
Ben: But yeah, I do front-end stuff, back-end stuff, server-side stuff. I built the servers that Feedbin runs on, and you know it's a real server farms table operation. I like to run fiber to your house next, maybe.
Chris: [Laughter]
Dave: Oh, good.
Chris: Fantastic. I think of it as just an RSS reading app. It's one of the choices that you have. If you want RSS to be your thing, one of the choices is Feedbin. You sign up, and you start adding feeds to it, and it becomes this reading experience for you. I mean is that at the heart and soul of what Feedbin is? Is that the kind of customer you're trying to attract?
Ben: Yeah. RSS is certainly the core and how it started, but it's become fairly omnivorous over the years, like including being able to receive email newsletters, Twitter feeds, podcasts, that kind of stuff too. Whatever content is out there, I would like to get that in Feedbin if it's possible.
Chris: Yeah. Right on. Thus you can go to feedbin.com, log into your account, and start reading stuff, which is great. Yeah.
Yeah, I think of that. Certainly, podcast is a first-class citizen of it because, as you're browsing the Feedbin interface itself, at the bottom there's... or recently played, for example, is a pretty top-level navigation item, which is pretty specific to podcasts. Yeah?
Ben: Yeah. Yeah, and actually, last year, we came out with a native iOS app called Airshow that syncs with Feedbin and plays podcasts as well.
Chris: Oh...
Dave: Ooh...
Chris: Yeah. Right on. Airshow, from the makers of Feedbin. Cool.
Ben: Yeah.
Chris: Yeah. I remember that announcement, and I think it got lost in the shuffle. I'll have to try that.
Where else should we take this thing? I wrote a list of a million things to ask you about this, but I'm hesitant to get too specific too quickly.
Ben: Well, we better get started on the list then. I mean that's a lot of things.
Chris: Yeah.
Dave: I have a question. I have a question. So, you said you're coming up on a ten-year anniversary at Feedbin, right? Coming up in March.
Ben: Yeah.
Dave: Google Reader's shutdown was announced March of 2013. Is there any connection there to that?
Ben: That's a fun coincidence and, actually, probably the reason that Feedbin exists. Yeah, I had started on it maybe at the end of 2012 just kind of as a side project. Google Reader still existed.
I think Feedbin launched maybe like March 11th, March 10th, somewhere in the night there. And then, yeah, literally a day or two later, that blog post from Google came out and instantly created a market for this side project.
Chris: Oh, yeah! Wow!
Dave: I mean was it like day one, you're like 100 users or 1,000 users?
Ben: Yeah. Yeah. Right. Yeah. Day two, yeah.
Dave: Yeah. Wow! That's cool. [Laughter] Somebody started a project and you're like, "How do you get users now?" It's like, that's cool. That's interesting.
Chris: Yeah, you had the world's biggest tech company dump their product on the day you launched. That's pretty cool.
Ben: I actually still don't know how to get users besides getting insanely lucky, so I don't know.
Chris: [Laughter]
Dave: Yeah. Well, that's good. That's helpful. You know?
So, it's interesting because you had started building this pre-Reader, where you're just, "Google Reader is old. I'm going to take on the titan." Or were you kind of--?
Ben: Yeah. I used Google Reader just kind of as the sync backend for Net Newswire and Reeder (with two E's), those clients. But never really loved the Web interface.
Dave: Yeah. It was very Gmail1-like. Very bad. Right?
Ben: Yeah. No, I don't think... I don't know if it was bad. It was just too Googly. It wasn't a good reading environment. Not that I thought I could do better, but I could just do something more to my taste as a long-time Web developer and somebody who really liked reading stuff on the Internet.
Dave: You know the thing about Feedbin that I get a lot is, like, "It costs $5."
Chris: [Laughter] Really?
Dave: [Laughter] And it's like, "Why would I ever pay money for something?" That was kind of a bold choice you had made right out of the gate, right? How did people react to that, or has the reaction just been the same eternally?
Ben: No. Well, yeah. I mean there's definitely just the hard divide of people who will pay for apps and people who won't. You know? And most people won't. But nobody really complains about that anymore because - I don't know - I think people who don't pay for apps don't even understand the other side of it and vice versa.
Yeah, I mean people will just not use it based on the price. But what's the alternative? It costs money to run the thing. I've got to pay rent - and I don't know. There are ads, but that's just not fun.
Chris: I can imagine. I think that's fair. I like that. That's a healthy attitude to be like, "You don't want to use the app, then don't use the app. Whatever. it's $5, so take it or leave it," which is kind of nice. But you can't imagine a different world.
You couldn't say, "Oh, this is free, but you can only add ten feeds." I'm sure we could all dream up a freemium version of Feedbin, but it just never appealed to you in that way?
Ben: Yeah. I wasn't that interested in freemium. You know at first it was just like I put it on the backburner. Didn't have time to do it. Then I just never did.
Chris: [Laughter]
Ben: But there's like a 30-day free trial, so you know what you're getting by the end of that. I think, in an alternate reality, it would be interesting to see what it would have been like to have a freemium version this whole time. I don't really know how the conversions are.
Chris: Yeah, 30 days is kind of freemium, isn't it? It's kind of. It's a good point. Is it limited? Is there some weird bad behavior stuff that you can't allow in the first 30 days because of abuse or something?
Ben: Well, the only time that I could think of that Feedbin got hacked by people signing up for trial accounts was one of the things you can do is you can email an article to somebody right from within the Web interface there.
Chris: Right.
Ben: It sends that through a mail provider to help with deliverability. But somebody scripted that to just send their own arbitrary stuff.
Chris: That sounds about right. Yeah.
Ben: Yeah. I remember my Mailgun bill was like $500 that month, and I was like, "What could have happened?" And I looked back and saw that all this spam had been going through there.
Chris: Wow!
Ben: Yeah, but that was really the only thing that I think I ever had to limit for a trial account.
Chris: Yeah. Interesting.
Dave: Wow. Yeah.
Chris: Good behavior. Yeah. Maybe it's just the nature of the app, but putting things behind that pro paywall.
Dave: That feels like it should be a website or a book, like, All the Ways People Can Abuse Your Freemium Account. You know?
Ben: [Laughter] Yeah.
Chris: I could contribute to the book. I'll tell you what.
Ben: I think they're, yeah, so creative, though, that how could you ever figure out all of them. But yeah, I think sending email for free is an obvious one, in hindsight.
Chris: [Laughter]
Dave: Yeah. Yeah. I don't know. I even think of when somebody is like, "Hey, Dave. Can I interview you? You'll get a backlink." Really, they're just trying to yoink SEO from me or something. I don't know. It's weird, right?
Or they want a backlink or something. I don't know. There are all these weird ways people try to game the system. It would be interesting to have that documented.
Ben: Yeah. Yeah. I don't know. I think it's an interesting, creative outlet for some people who--
Dave: [Laughter] Who have more time than money.
Chris: Dabble in crime. You know?
[Laughter]
Ben: Well, is sending email a crime? I don't know.
Chris: [Laughter]
Ben: Maybe there's a threshold.
Dave: Well, from my perspective, people who are just like, "Hey, I found you on LinkedIn," I feel like that should be a crime.
[Laughter]
Dave: I'm tired of it, man. Then they send you the follow-up, like, "Hey, just bumping this. Didn't know if you saw it."
Ben: [Laughter]
Dave: No, I deleted it, Karen. Please. Please go away.
[Laughter]
Dave: Yeah... No.
Chris: A couple of things that are related to this Google Reader connection is interesting. There is still just this incredibly weird reverence to that time that I'm sure I've contributed to because I was a big Google Reader too. But it's been long enough now that I almost don't remember why it was so beloved.
If it came back identical to how it was, let's say it even added a modernized design, I can't imagine a world where it's somehow better than what Feedbin is now. I'm sure it was much worse - slower and renders more poorly and whatever.
But there was one clutch feature of it that you've inherited that I think is great is that it was kind of API-driven. So, like you put it, you don't have to use the Google Reader interface. In fact, I would think that most people didn't because it just opened the door to using other reader apps. But it was the home base API.
In my opinion, Feedbin has become the home base API because you have such good APIs and have been around long enough that, for whatever reason, if you want to use Net Newswire or whatever, you can make Feedbin the canonical source of your feeds, and that is great because I like using the Feedbin interface, but I like the opportunity to explore as well.
I'll use Net Newswire once in a while. I'll use Reeder on my phone sometimes. If there's a new RSS reading app, I'm happy to try it as long as it has Feedbin integration so that I'm just exploring its interface abilities. Would even be happy to pay for that, too. But I cannot export my OPML file and import it into their app and then trial it that way, even though I think that's nice and they should support that. There's nothing wrong with that.
I can't read ten articles in one reader, come back to Feedbin and be like, "Oh, they're unread over here." That jut sucks. [Laughter] You know? I feel like there needs to be a canonical feed home, and you may have won that battle.
Ben: Well, thank you. But yeah, I don't know.
Well, going back to Google Reader, I think, ironically, Google Reader never had a public API. The only clients that worked with it were based on the reverse-engineered JavaScript API that was used when you logged in. I actually wrote a little toy app back then just to subscribe in Google Reader, so I had a little bit of experience using that.
But yeah, that was another lucky thing that happened after Feedbin came out is the reader, the developer of the Reeder app (with two E's) got in touch and said that he wanted to include support Feedbin, and that really helped kind of solidify the customer base. A lot of people were already using that app, and they wanted something for it to sync with, and Feedbin was exclusive for a little while.
But just as an API-only product, that was actually, I think, the original idea for Feedbin was based on this post by Brent Simmons, which was his idea for just a feed sync system. He just outlines, here is the types of data that it would deal with. It would need to be able to identify them.
Chris: Is he the Net Newswire dude?
Ben: Yeah. Yeah, exactly.
Chris: Yeah.
Ben: I did start kind of as an API first, but then quickly you realize that it needed an interface just to complete the package. But then, yeah, I don't think I ever got there as an API-only product. But I am happy that every account includes API access. You don't have to apply or anything like that. You just log in with your username and password, and you have your data as JSON.
Chris: Yeah. It's interesting. I might be in the minority, but I almost think it's more useful to me as an API-only product.
Ben: No, no. I think the API is super popular. Almost everybody uses some kind of app.
Chris: Yeah.
Ben: And almost everybody uses a website too. But yeah, definitely, everybody likes an app.
Chris: Yeah. Yeah. I go back and forth because I'll find some new reader. I'm sure all of us, including listeners, so we're all very specific about what we like in our readers, I think. At least the people I've talked to.
For example, here's one. Net Newswire does such a good job at so much stuff, but then you read a newsletter because I can tell Feedbin to read my newsletters, and then those make it into my feeds, which then make it into Net Newswire, for example. And they just take so much heavy control over the rendering of all, everything. So, you can set fonts and all that stuff. But it's been just stripped.
Whereas, if I read the newsletter in Feedbin, you've somehow or some way, like iframe or something, the original email. If you're reading a substack or something, it looks like it would have showed up in you gmail. It looks exactly like that. Whereas, then the stripping that happens in Net Newswire, it's all jacked up. It doesn't look good.
Ben: Yeah. Well, email newsletters are tricky. There's so much inline HTML and CSS. The concern with Feedbin or any RSS reader is that usually that content area, even in a native app, is just a Web view because that's the only way to get a good rendering of HTML and CSS.
What Feedbin does is actually throws all that into a Shadow DOM element. Then that way it can't bleed over.
Chris: Oh... So, it's not an iframe.
Ben: Yeah.
Chris: It's just a Shadow DOM trunk.
Ben: I tried the iframe thing at first. It's hard to size the iframe based on the content.
Dave: Mm-hmm.
Ben: But the Shadow DOM thing solved it completely. It was like you don't get any bleed-through, markup, or styles. And it gets rendered as if it's in an iframe.
Chris: Web component win, Dave.
Dave: Web component for the win.
Chris: Wow.
Dave: Just put it on the old--
Chris: That's a good one.
Dave: Actually, I've seen that before. I mean it could have literally been your blog post or something, but just using Shadow DOM as a security feature is kind of a new trend just because, if you don't trust that content, cool. [Laughter] Render it in a Shadow DOM and, in theory, a closed Shadow DOM that can't go touch anything else, and it should be fine.
Chris: It'd be a cool if a Shadow DOM even had a CSP on it or something. I guess it kind of does already in a little bit of a way. For example, just don't execute inline script tags within this Shadow DOM.
Dave: But then email is perfect because it's all this style that you don't trust. Yeah, that's great. That's cool.
Chris: But it might have body background red on it. [Laughter]
Dave: Right.
Chris: Don't bleed that, please.
Dave: [Laughter] Stop. Yeah.
Ben: [Laughter]
Dave: That's really cool. On that note, content, right, RSS. Any kind of content from images to tweets to--
Chris: CodePen embeds.
Dave: --CodePen embeds--
Chris: Whoo!
Dave: --YouTube embeds. You deal with these. You have a post right now about how you updated the YouTube embed. It doesn't upload the YouTube player, which I appreciate from a tracking perspective. But it's not just seeding my algorithm with all these random videos. [Laughter]
How do you make decisions about what kind of third-party stuff do you kind of support?
Ben: My goal with all that stuff is just to make the experience as rich as possible and to respect the author's content as much as possible. Hopefully, if it's there in the RSS feed or I can get it through another means, I want to have a good representation of that in Feedbin.
Iframes specifically was a big chunk of work a few years ago. The idea there was to have Feedbin be private by default so that it would not leak any requests to servers other than Feedbin's.
With an iframe (and with YouTube stuff specifically), it replaces all that with its own markup and does a fair bit of work to fetch the right thumbnail, get all the metadata, like the channel is posted on, the avatar for the channel, and all that.
But yeah, I mean the thinking is always just like, you know, what can I do to make this stuff look good?
Chris: Yeah. Well, appreciated because that's what's nice. I mean it kind of has to, you know? If somebody phones in the experience of rendering arbitrary content, which is what feeds are, and it just doesn't look very good, why the hell would I use that app? You know? The bar is pretty high these days.
I wanted to try out one called Readwise, some new product that has a reader in it, too, so new competition. Sorry, Ben. It looks freakin' great, though. they did a great job with how feeds look in it, but they don't have Feedbin integration, so wah-wah. Can't use it. [Laughter]
Ben: [Laughter] Yeah, well, it wouldn't really make sense for them to do Feedbin integration because I think they're competing with Feedbin. Right?
Chris: I don't know. I guess. I just want to use their nice little reader. That doesn't track to me because it seems like I want to read my feeds, and I want to see how y'all do rendering of feeds. I'd be willing to pay for it if you have wonderfully beautiful rendering of feeds - as long as it syncs and I don't have to manage it in two places.
But they also do this other thing where you highlight stuff, and then that becomes part of the experience or what's saved in there. So, it's not just like I have saved this article, or I have started, or something. But I'm almost taking notes on the feeds that come through. It sounds great. That'd be neat.
That actually leads me into another thing. I think people have some memory -- mine has faded -- that Google Reader had some socialness to it that people liked. That you could star posts or whatever. I want to talk about stars, too, because it seems like a weird piece of metadata that everybody seems to agree on that should exist for feeds. But that you could even leave a comment.
I could be reading a post. I could know that Dave kind of followed me on Google Reader, and write something like, "Hey, isn't this interesting how this new screen from Sony has cool pixels on it?" or something. It made it feel less lonely. That this was kind of like news consumption - with friends! I don't see the RSS readers of today picking up on somehow.
I don't know. Have you thought about social features for Feedbin? You offer them in some way. There's, for example, producing a feed of my favorites is one approach to a social feature.
Dave: I don't know if you're aware. We've created a backdoor social network where I subscribe to Chris's likes. He subscribes to mine. We got Andy Bell. We've got a few other people. This clandestine social network of stars.
Ben: That's perfect. That's what that feed is there for. I subscribe to my wife's starred items and get the best of Reddit every evening.
Dave: Oh, good.
Ben: Puppies, kittens, all that good stuff.
Dave: It's like a curated newsletter from somebody you like. Right? Somebody who has taste.
Ben: Yeah.
Dave: It's.... It's the Internet's biggest garbage. That's like Kottke's whole website. [Laughter]
Ben: Yeah.
Dave: It's just like, "Whoa!"
Ben: Well, my thinking is if you want an account on Feedbin to talk to your friends, it's easy. Just make a website, publish an RSS feed, and send your friends the URL. The Web is a social network.
You're talking about Google Reader having comments and stuff. But what happened to those?
Chris: Yeah. Yeah. Truly. Just absolutely gone. Yeah.
Ben: They're gone now. [Laughter]
Dave: Yeah.
Ben: Hopefully, they're gone. I think it's an interesting feature, but I'm definitely nervous about... Well, not nervous about, but I actively don't want to create another silo on the Internet for that stuff.
Chris: Mm-hmm.
Ben: Maybe there's a way to do it in an open kind of a way, but--
Chris: Yeah, maybe. There's nuance to it, right?
We have a Discord community, and I think people don't want every single thing that they've typed into the message box of Discord to have a permanent URL for all time that's public - necessarily.
Ben: Yeah. Well, yeah, I get that.
Chris: Yeah, there is some kind of transit. There is such thing as transitory, not important, taxed on the Internet that still is community fostering and stuff. That's why I've been like... I always have to run that balance in my head.
If I have a cool link and I want to share it, part of me is like, "I should blog it because that's the healthiest thing for the Internet." I should write my thoughts. I should do the link to it.
But sometimes I'm like, "Oh, is it quite worth it?" The lower barrier of just Mastodon-ing it quick.
Ben: Yeah. I'm not sure if it's link-worthy.
Chris: It's like, blah. Yeah.
Dave: Jeremy Keith, he adds a smidge of commentary about why he liked the post. He does it on his own site and, as a result, he has this collection of posts that he's just like, "Here's what I liked about it and here's what I didn't like."
You know I'm like, "I'm never going to do that, Jeremy, because that's overkill."
[Laughter]
Dave: That's how I feel about most things Jeremy does that then I regret--ten years later--not doing.
Chris: Yeah. He's usually right. But if he replies to a tweet, like, "Looks like a good hamburger you ate," that's like a blog post in his world.
Dave: In his blog. Yeah, it's kind of a little hardcore, right? A little heavy. But it would be nice to add a little commentary to something about why I liked it. But then, again, if I just did the blog post then I would have that kind of forever, and I would own that content.
Ben: Yeah. There's a real barrier, and I think you and Chris are quite prolific with the blogging. Yeah, I can imagine for somebody less... You know if you have a hesitation, then the average person out there that publishes very rarely is definitely going to just not post that thing.
So, a lighter weight thing, there is need for that. But Mastodon is out there.
Chris: I'm convinced. I like that you're really hardline on the, like... I don't know. That you have a vision for this thing and you're not going to be like, "I'll just add chat!" [Laughter]
[Laughter]
Chris: That's not a vision.
Dave: I think everyone wants chat to happen in their RSS fee.
Ben: Yeah. Yeah.
Dave: So, when is that coming out?
Chris: Yeah. [Laughter]
Dave: Is that? Yeah.
Chris: Ah, interesting. Okay. I wonder if you would talk about what makes this hard to do. I imagine there's all kinds of interesting challenges to it. But if somebody wanted to... I don't know. it's not like I want you to give advice to somebody to build a competitor for yourself, for example, but you have this job of timely parsing people's RSS feeds and putting them into an app for a good experience. What makes that difficult?
Ben: I think Feedbin is in a weird place scale-wise where it kind of processes a surprising amount of data just in terms of the number of articles that get published every day. So, definitely crawling all those feeds.
I've rewritten the crawler maybe like four or five times now. But then all the processing that happens on top of an article, like every article gets checked for images so it can pull out a nice little thumbnail, so then you're doing that a bunch of times.
All these things just kind of add up, and there are services out there that you can pay per request to help you with some of that stuff, like image processing or whatever. But at the scale that Feedbin operates, it's just like all that stuff just doesn't make sense economically to pay for that stuff.
So, I end up doing a lot of that stuff myself. There's a whole image processing pipeline in there that resizes everything.
Chris: Oh, really?
Ben: It finds a nice crop. It does face detection, so you're not cut off in the middle of your face. And just all these little things that, when you do them enough times, they just kind of add up in terms of how much processing it takes.
Chris: Yeah, so you could see somebody who is making some really weekend Feedbin project that would just take the XML feed and suck the HTML out of it and just plop it on the page. It's like, "Cool. You did the very bare minimum, but there are going to be problems."
Ben: Right. The basics are very easy. Well, XML has a ton of problems just because there are so many ways you can break it.
Dave: Seed data, for example. [Laughter] The whole thing is a comment - or whatever.
Ben: Yeah. But libraries can help you with that to some extent. I don't know. Just all the layers on top of that are where the complexity comes in and just the volume.
Chris: Yeah. Yeah. We see that at CodePen once in a while. It's three text areas. You take HTML, CSS, and JavaScript. You smash them together and you put the results in an iframe. How hard is that?
You're like... ten years later, it was kind of hard.
[Laughter]
Dave: Well, what happened was...
[Laughter]
Ben: The other thing is just living with the bad decisions you make. Feedbin is 10 years old now, and there's code that I wrote in there like 11 years ago, and the temptation is just to just throw everything away and start over. But at this point, that's just not possible.
I try to set aside some amount of time to revisit one major area of the app.
Chris: Mm-hmm.
Ben: Like I just completed a big search rewrite. I was stuck on a super ancient version of Elastic Search.
Chris: Oh...
Ben: That was completely UL'd, and the performance was really bad, so I ripped out all the search guts and upgraded to Elastic Search 8 and built a new server for it. But the payoff was huge. It went from an average request time of two to three seconds to under 100 milliseconds, or at least under 300 in the P95.
Chris: Nice. I don't even think about search in Feedbin. Is there an index just for me of every blog post I've ever read in there or something? What are the limits to it?
Ben: Yeah.
Chris: Really?
Ben: Yeah, you can search your whole thing, and pretty quickly now, too. The search infrastructure also powers actions, which can be used to filter articles, so you can mark stuff as read based on a search query.
That was another thing that I was talking about with the scale of the thing. Every single article gets published to Elastic Search. Then Elastic Search tells the app, like, "Here are some filters people have set up that matched this article."
Chris: Oh... So, if my and Dave subscribed to the same post, it doesn't put it in Elastic Search twice - or does it?
Ben: Yeah. Yeah, well, feeds are definitely a shared resource, so no feed data is duplicated. But there's still a super long tail. It's surprising how many RSS feeds are one-off subscriptions.
Dave: You don't need to throw my blog under the bus here, buddy. [Laughter] People are listening.
No, so you have data on what's popular.
Chris: Yeah! Yeah. Who wins? Is it Daring Fireball?
Dave: Is it me?
Chris: Who is...? [Laughter]
Ben: Yeah.
Dave: Is it Chris? [Laughter]
Ben: Well, for Feedbin's audience, it's definitely Daring Fireball. I mean I haven't looked in a long time, but that was definitely the number one for the last time I did.
Chris: Yeah.
Dave: I feel like Daring Fireball is the gateway RSS drug. You know?
Chris: Yeah.
Dave: It's just something everyone has. You know everyone has it.
Chris: Mm-hmm.
Dave: You agree with one percent of what Gruber says.
[Laughter]
Dave: Yeah. Yeah. Yeah. Okay. Yankees, cool. But anyway.
Chris: That's nice. Have you seen any surge in this--let's call it--the post-Twitter era, the latest exodus from Twitter?
Dave: The great exodus?
Chris: In my circles, there's been a little bit of, like, "We should blog more." You know?
I don't know. Clearly, Mastodon has benefited. Have you seen a benefit for Feedbin in RSS, let's say in the last three months?
Ben: Not a lot. I mean there definitely is some, but I don't think that Feedbin is a replacement for Twitter. You can certainly move your Twitter consumption over to Feedbin, which is not... I don't know. People say they're getting off Twitter, but now by reading everything from Twitter in Feedbin so it's just a different Twitter client.
Chris: No ads.
Dave: Read only.
Ben: But that's by Twitter's design or choice.
Chris: Right. We know how chaotic it is over there. If feeds died tomorrow, you should not be surprised. [Laughter]
Ben: Yeah. Right. Well, Feedbin actually got lucky with that whole thing. I don't know. The Twitter stuff still works even though they cut off a lot of clients.
Dave: APIXS, yeah.
Ben: But I think it's just based on... It was just the two popular ones that got shut down.
Chris: Oh, so you have your own API key and that's how you pull the feeds?
Ben: Yeah.
Chris: I thought it was just like - I don't know - each user has a .rss at the end of the URL or something and you just hit that.
Ben: No, no. Twitter did used to publish RSS feeds, but they cut those off a long time ago. Yeah, Twitter...
Chris: Oh...
Ben: Feedbin uses Twitter's API.
Chris: Oh, well, you're screwed then. [Laughter]
Ben: [Laughter] Yeah.
Chris: Just kidding. No! [Laughter]
Ben: No, it's definitely only a matter of time. It's either going to be like this last client thing where they cut everybody off or the API is just going to break one day and nobody is left to fix it.
Chris: Yeah.
Dave: Hmm....
Chris: I don't even really know you could do that in Feedbin, so it will not affect me.
Ben: [Laughter] I think the... I really liked the Twitter integration that we came up with. It really gives a lot of room for the Tweet, like if you have a thread. It'll just put all the tweets in line like a long article.
Dave: Oh, neat.
Ben: Or if you link to a website, it can extract that content and put it in right below the tweet.
Chris: Hmm... Yeah, that's a nice feature that you have. I feel like I've seen it other readers, too. Perhaps there's something in the water with it is to extract original content, content generally.
I would think another somewhat popular feed is Andy Baio's thing. What does he call that?
Ben: Waxy?
Chris: Waxy, yeah. He writes one sentence in all lowercase letters that's like, "This thing is cool," and I feel like he's got good taste, so I read that feed for a zillion years. But it offers precious little context to what he's linking, and it's never himself. It's always some other link, and so you can turn on that little feature.
I think that's a Feedbin feature, isn't it, that instead of showing me what he wrote -- and I can toggle between them really easy. It just shows me the content of what he's linking to.
Ben: Right. Yeah, it will extract the linked article. Yeah, that's definitely a thing it can do. You know it's there to help with partial content feeds, but it works really well for that link blog style, too, where the link is to the external site.
Chris: Yeah. It's awful handy, especially as a toggle because sometimes I'm like, "What am I looking at here? Oh, yeah. I've got to switch back to see what Andy thinks this is interesting."
Ben: Yeah.
Chris: But I can always switch back right away. Pretty nice. [Laughter]
Dave: RSS, ancient technology now, right? It's 15 years old. Dinosaur.
What do you think? How does it need to evolve? What needs to happen in RSS, and why is it eliminating all blogs that use summaries instead of actual posts?
Ben: Can you rephase the second part of the question?
Dave: Why is it people who use the summaries, like short summaries instead of putting their actual whole posts in the blog posts, why do those people need to be banned from RSS feeds?
[Laughter]
Ben: Okay, okay, yeah, it was as leading as I thought it was. Okay.
Chris: [Laughter]
Ben: Well, in terms of RSS evolving, there's not really anything that it needs. It's already perfect the way that it is. I think more people publishing it is good.
I think that if anything were to replace RSS, it should make the basic case trivial, and the basic case is just publishing your content on the Internet. There's like Activity Pub, right? Activity Pub, I don't think it was designed as a replacement for RSS. But one of the problems that I had with it (going through Mastodon integration and ended up just scrapping the Activity Pub angle) was just like it makes that case so much harder.
Now, it makes hard things possible. But just publishing stuff with Activity Pub is way harder than it is with RSS.
There's a spec that I really like called JSON Feed by Brent Simmons from Net Newswire.
Chris: Yeah. That's in my list because it seems like JSON is such a more modern format for API.
Ben: Yeah. JSON is just like your toaster can parse JSON, and it's really easy to work with in a way that XML just isn't. So, I really like that one, and it's really easily extensible, too, with a super lightweight namespace thing where you just throw an object in there with an underscore before it. Then you can put whatever you want in there. Then it's up to the client to figure out what to do with that.
Chris: Yeah. It's such a good format. It just needs JSON C (JSON with comments). It's all solved. Or JSON 5 is nice, too, where the keys don't have to have quotes around them. I like just minor evolutions of it, but I might be wrong because JSON, the format, as strict as it is, is just great.
There's a great article that came out just the other day from Ruud van Asseldonk. It was called "The yaml document from hell" that we should link up that everybody should read that shows just how horrendous of a format YAML can be.
He starts out by just praising JSON and just how absolutely simple it is and how there's no ambiguity. Like you eloquently put it. Your toaster can parse JSON. Parsing YAML is a pain in the ass. [Laughter]
Ben: [Laughter]
Chris: So, I'm almost glad that RSS doesn't go YAML, but it does... Isn't there this big chunk of HTML? How would you represent that in JSON? You just have to escape the crap out of it, I guess, huh?
Ben: No, no. Well, it's easier to escape HTML in JSON than HTML and XML.
Chris: XML?
Ben: Because it shares the whole angle bracket thing with XML or when, for a brief time, when HTML was XML, you know, back in the alternate universe.
Chris: I see. Yeah. I thought there was some exotic... you know, it's like an HTML comment but it's just beefier looking in XML that's like, "I'm going to put this, and then I'm going to put arbitrary XML, and then I'm going to close it with this extra exotic looking comment." Whatever is between that is HTML. Yeah.
Ben: [Laughter] That's the feed data escape that Dave was talking about earlier.
Chris: [Laughter]
Dave: Yeah. Not my favorite.
Ben: That actually does make it a lot easier to just throw HTML in there is if you just wrap it in magic C-data tags, and you can just do that. But otherwise, yeah, now you're escaping HTML entities and then confusing the client when it's time to un-escape it.
Chris: Will Feedbin read a JSON feed?
Ben: Yeah, absolutely. I think it was... I saw the genius of it really early on and wanted to add support kind of as like a chicken and egg thing. Just make sure that the client or the application support was there in case anybody had questions about whether they should publish a JSON feed.
Dave: That's cool.
Chris: Wow. Yeah, nice.
Dave: Yeah.
Chris: And so, first-hand, you've seen that? [Laughter] It's just easier to parse and deal with from your angle?
Ben: I think so. Like any programming language, you can pretty much just hand it some kind of object, hash, or associative array, or whatever, and the language will turn that into JSON. Then as far as the keys and values that JSON feed expects, it's really straightforward, and the spec is written in plain language. It's understandable. It could not go on the W3C because it's too human-readable for that.
[Laughter]
Dave: A little too advanced for them. They'll get it in 20 years.
I've seen some cool people, like Tom Critchlow, had vamped on that idea and had library.json for like your book feed or your homegrown, like Good Reads or whatever.
It's cool because you have this JSON feed, but it's library.json, and it has certain authors and notes and kind of a schema for what a book review looks like. I just thought it was very cool. I don't know. I thought it was very, like, "Oh, man. You've..." You're taking something that exists and kind of making it extensible. Now people can share books.
Ben: Yeah. Very cool.
Chris: Oh, I have so many to get through. I think another reason it was nice to talk to you is I think you were on JS Party, maybe. Maybe it was the Changelog or something a little while ago.
Ben: Yeah, I was on the Changelog over the summer.
Chris: Yeah, nice. I think Adam was on the show, and he's just like, "I don't read RSS." He was a tough challenger for the thing. But it was not that he doesn't like it or whatever. I think he had a hard time kickstarting it or something, or that he'd sign up for one then immediately put - I don't know - CNN in it or something or the Verge or one of these very popular sites that just publishes just a zillion fricken' things.
And it had me thinking about that, like, the challenges of that. If you sign up for a developer blog or something and they publish once every six months, that's great. That's perfect. I want them in my RSS feed. But that's real lonely. You know? You're not going to hear a lot from them. If that's all that's in there, I have this RSS reader space that's a little boring.
But it's to - I don't know - tip the applecart or something or put too much stuff in there so that there's always 65,000 unread items - or whatever. I feel like I've got mine dialed in pretty good where I can even catch up on my feeds, but it's only through sheer aggressiveness of adding just the right stuff and not being afraid to cull stuff and all that. It's been tricky to get there. Is that a limiting factor? Is there kind of a sweet spot for RSS?
Ben: Yeah. I think it's very easy to get overwhelmed because there is just a lot of high-volume stuff out there. I think that one just does take the work of figuring out how much time you have for this and then getting the level of content to match that.
Yeah, I think it's really easy to exclude websites that publish hundreds of articles a day or dozens - or whatever - just because it's just too much stuff. That's a good thing to follow their Twitter account and scroll through it versus having it show up in your RSS reader.
Chris: Yeah, in your feeds.
Ben: Then every single item, you've got to make sure to get that out of there. Yeah, I think everybody has their own sweet spot. I probably read more than a typical person. But I think I only have - I don't know - 250 feed style subscriptions and then another - I don't know - dozens of Twitter and Mastodon accounts in there.
Chris: Oh, nice. Oh, so it does support Mastodon. That's cool.
Ben: Yeah, and Mastodon supports RSS, so it's just the Feedbin's integration built on top of that.
Chris: Oh, that's just easy. Nice. Yeah. Yeah, the newsletter thing I think you mentioned at the beginning, but that is pretty interesting in that people should know that Feedbin provides you this special email address. Then if you sign up using that obviously for the newsletter, it comes in as your feed, which is great because usually the spirit of them is the same as RSS. They publish them sometimes and they're interesting things to read. To me, combining that and actually getting it out of my inbox is just a big win. I really like that feature.
Ben: Yeah, that was my thinking there. I was subscribing to some email newsletters, and I just want to do all my reading in Feedbin, so that seemed like the best way to support that. And for whatever reason, it's just kind of easier to make a paid email newsletter than it is to do a paid RSS feed because the tooling is there for it, like a substack.
Chris: I ended up wiring up my own little thing. I think this was at your suggestion. It was probably a support email, or whoever does support for you, was that--
Ben: Yeah, it was me.
Chris: [Laughter] As soon as spam... By some bummer reason your Feedbin newsletter email gets leaked or whatever -- somebody sells it or data breach or something -- and you start getting spam, your spam will come into your Feedbin, which sucks because you can change your address in Feedbin, which is a nice little feature, but then I don't know. I forget what happens.
But the idea was I'll just make a gmail that's like [email protected], which auto-forwards to the Feedbin email, but then I can use the dot syntax of gmail, so every newsletter I sign up for has a unique email address, and I can use the gmail filtering. So, if that spam problem happens, I have a way to stop it without having to nuke my Feedbin.
Ben: Yeah. That's the advanced move, for sure, yeah, is forwarding through your gmail with a plus hack. Yeah, I think the plus hack is a good thing to just use for any account because you can cut spam off at the knees by just banning that one plus address and not having to change it everywhere.
Chris: I wouldn't expect you to build that into Feedbin. That's complicated. It's a niche-enough thing.
Dave: It's interesting because I have Patreon posts, right? Some Patreon posts need to know, like, "Hey. Fill out this thing so you get that thing you bought," or kickstart or whatever. But Patreon, I subscribe to some people, and they send me links and posts. It comes to my inbox, and I feel stress because it's like, "Oh, God," I'm clearing out my inbox, but I've got to read this post with 50 links or watch this video.
I love that Feedbin pulls stuff out, but it seems like there are still some closed environments out there like Patreon, these silos that don't just offer the content, and I can't forward it to my... Or I guess I could maybe start forwarding it, like all my Patreon emails, to my Feedbin. I hadn't thought of that.
Ben: Yeah, that's a gmail rule right there. Everything from Patreon, send that over.
Dave: Just send it over. Golly. I might do that because that would be helpful. [Laughter] Because one I do is this online shamisen, which is like a Japanese loot, Japanese banjo. And it's lessons. I pay $20 a month, but I'm not at 9:00 a.m., "Gosh, I really just want to practice the shamisen." Keep the email in red for a month, and then I feel guilt and stuff. But it'd be great to be like, "Cool. I'm doing shamisen for an hour. I'm going to open Feedbin, and I'm going to just click this." You know?
Ben: Yeah. It sounds like a good fit or worth trying anyway.
Chris: One of your competitors, Feedly, is so confusing to me in how they really try to push you into these enterprise features of RSS that I just don't understand. But whatever. I'm sure they do fine.
I bring it up because I brought up the "firehose can be too much sometimes" thing, and they have this theoretical answer to it, which is AI and machine learning. And they have put that behind this friendly little robot named Leo that attempts to learn about your feeds and filter out the noise and give you extra insight into all that kind of thing.
Now, I wouldn't ask you to comment on your competitor, but is this apparently popping world of AI stuff something that feeds could get into in other ways?
Ben: Yeah. I'm thinking about making an RSS robot called Clippy, and he's going to pop up and be real friendly.
Chris: "You like this feed? You'll love...."
Ben: Yeah. That kind of thing.
Chris: [Laughter]
Ben: Or if I was trying to get--
Dave: I'll pay you $10 to get... [Laughter]
[Laughter]
Ben: I was trying to get some investment. Maybe I could pivot to an AI platform. But I don't know. I think--
Chris: [Laughter]
Dave: I think there's money in, like, "Summarize this New York Times article." [Laughter] You know? Because sometimes--
Chris: That's a good idea. A little long.
Dave: --one paragraph that you actually care about. You know?
Ben: Well, how do you like when you throw an article at ChatGPT - or whatever? How do you like the summary results? Is that useful for you?
Dave: I mean from what I'm seeing, and I'm seeing regurgitated screenshots, low-res screenshots of things people have done, and it seems like it does okay. But that's more like a time thing, you know, and like the high volume feed thing. I'm really just like, "Do I really want to read all of this?"
Ben: Yeah. I don't know. I feel like as soon as you're in that mode where you care that little about the content, that's a pretty good candidate of someone you can just unsubscribe from.
Dave: Yeah. That's a good point.
Ben: I don't know. I think that the current generation of AI stuff is crap, like the quality of the writing or the quality of the images produced is just not good. Right? Or it's quickly starting to see all the same mess of it.
Dave: Yeah. You make a good point. It's like if I wanted the summary of the New York Times article, I could just go to ChatGPT and be like, "Tell me about the Ukraine war," and it would just--
Ben: It would just lie to you.
Dave: Tell me something. It'd just tell me whatever it thinks it knows. Yeah.
One feature that Digg Reader (RIP) used to have--
Ben: Yeah, and that was a good one. I think that was the closest to my taste in terms of visual design.
Dave: Yeah, and I only used it because I have massive Digg affinity from good will built up from years ago. But one thing I had was you put your Twitter account or connect it, and it would give you hot articles. That feels like the mythical beast, right? The "trending in your sphere." Is that something you've thought about or attempted?
Ben: Yeah. Well, going back even further than Digg Reader, in college, I used this RSS reader called Fever.
Dave: Yeah.
Ben: By Shaun Inman.
Ben: Yes.
Chris: Yeah.
Ben: it was a PHP. You pay for it and he would email you a zip file. You would unzip it onto your LAMP server and run it just for yourself.
Dave: And it would fill up in about three days.
[Laughter]
Ben: It was really impressive software. I don't even know when that was. Like 2005 or something like that. And to support just terrible shared Web hosts and all the different versions of PHP and MySQL that might be preinstalled there.
But Fever was built around this idea of the hot links and the basic idea of the algorithm was if an article had multiple inbound links to it, then it was a strong signal that it was a popular article.
Chris: Really? Wow. That just died with Fever, didn't it? I've never seen that.
Ben: I really liked Fever. Really amazing. I think Shaun was such a great Web developer, front-end and back-end and all that.
Chris: He's not dead.
Ben: Well, yeah, but he might as well be because he pivoted to games.
Chris: Ah, yeah. That's true.
Ben: We lost him as a Web developer. But when I was using that, I found that that particular pulling out those popular articles was not super useful to me because there was already such a good chance that I was going to see them anyway because they were getting all these links.
Chris: Mm-hmm.
Ben: Or mentioned by multiple people. So, I find that stuff just bubbles up naturally.
Now, I think maybe if you're not a completionist like I am, yeah, I could see something like that being useful. But yeah, for me, personally, it was just never... it was the obvious stuff that it was finding for me.
Now the trick is to find the less obvious stuff, like the stuff that isn't getting linked to but is super relevant to you.
Chris: Yeah.
Ben: That's what Clippy is going to do in like 2030.
Chris: In the future. Yeah.
Ben: Yeah.
Dave: That's good.
Chris: Or scope it to not just how many links from anywhere, but you definitely want to know if your social network is hot on it. I mean that was kind of the--
Ben: Yeah, and I think there's that Nuzzle, or something like that, that got bought by Twitter.
Chris: Right.
Ben: Something to that effect.
Dave: Oh, yeah.
Chris: Right.
Dave: Yeah.
Chris: I absolutely got my Nuzzle newsletter every day, so that was a little sad to see it go. But it did resurrect itself. But now it's like a Twitter Blue feature and whatever. It's dead to me.
Yeah, Feedbin doesn't know anything about your social network, right, on purpose or whatever. It doesn't know that Dave and I are friends - probably for the better. [Laughter]
Ah, well. We're coming up on the hour, I guess. Is there anything to round out?
Dave: Yeah. Thanks so much for coming on the show. We're obviously Feedbin fans and I really appreciate it.
Every time somebody is like, "Oh, man. Remember Google Reader?" like waxing nostalgic about that, I'm just like, "Feedbin! Feedbin exists."
Ben: Thank you.
Dave: It's like ten times better. It's only $5. Support people.
Chris: Yeah.
Dave: But anyway, Feedbin exists. RSS is still alive and thriving. You can tell by my 2,100 unread.
[Laughter]
Dave: So, I really appreciate that, and thanks for coming on the show. But for people who aren't following you and giving you money, how can they do that?
Ben: Well, yeah. Definitely sign up. Subscribe to Feedbin. You could just send me a check, too. That'll work.
Chris: [Laughter]
Ben: Then for following me, just subscribe to the Feedbin blog, I guess. That's probably where I write the most. I've got Mastodon and Twitter, but I don't really use those things.
Dave: All right. Well, very cool. Again, appreciate you coming on and talking about something Chris and I really like - RSS.
Ben: Yeah. Well, thanks for having me.
Dave: Thank you, dear listener, for subscribing to this using RSS in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show.
Follow us on - I don't know where we're at - some place with RSS, hopefully, [laughter] @ShoTalkShow. And then follow us or join our D-d-d-d-discord, patreon.com/shoptalkshow.
Chris, do you got anything else you'd like to say?
Chris: I'm trying to find the feed for the Feedbin blog. I can't find it. I'm just going to have to let auto-discovery take it here. But ShopTalk Show has a feed too, shoptalkshow.com/feed.