I

inessential (Brent Simmons)

inessential.com · Personal blog · on HN since 2007

Brent Simmons, developer of NetNewsWire, writes about Mac and iOS development, indie apps, and Swift.

What HN saysHN commenters cite his post on why NetNewsWire is not a web app, and his notes on feed handling and FMDB.
203HN people shared it
50linked it in comments
335stories submitted
3.5Kstory points
3 months agolast shared
2007people per year2026

Most-shared posts

  1. 1
    Why NetNewsWire Is Fast
    6 people · 326 points · first shared 2020 · 81 comments on HN
  2. 2
    Writing Mac and iOS Apps Shouldn't Be So Difficult
    6 people · 39 points · first shared 2025 · 9 comments on HN
  3. 3
    Inessential: Last Vesper Update, Sync Shutting Down
    5 people · 21 points · first shared 2016 · 5 comments on HN
  4. 4
    “In Case I Don’t Write Here Again”
    5 people · 21 points · first shared 2021 · 3 comments on HN
  5. 5
    NetNewsWire Comes Home
    5 people · 17 points · first shared 2018 · discussion on HN
  6. 6
    Freedom
    5 people · 11 points · first shared 2019 · 1 comments on HN
  7. 7
    Homepage
    5 people · first shared 2013
  8. 8
    The Next Era Ends, the Swift Era Begins
    4 people · 39 points · first shared 2019 · 1 comments on HN
  9. 9
    This is the age of writing iOS apps for love
    4 people · 21 points · first shared 2015 · discussion on HN
  10. 10
    When the Weapon Was Pointed at Me
    4 people · 10 points · first shared 2015 · 4 comments on HN
  11. 11
  12. 12
    Why NetNewsWire Is Not a Web App
    3 people · 56 points · first shared 2025 · 11 comments on HN
  13. 13
    How NetNewsWire Handles Threading
    3 people · 46 points · first shared 2021 · 11 comments on HN
  14. 14
    Anatomy of a Feature
    3 people · 31 points · first shared 2009 · 3 comments on HN
  15. 15
    The lack of a price tag seems almost criminal
    3 people · 24 points · first shared 2021 · discussion on HN

What HN people wrote when they linked it

kejaed · 2016-11-05
Yes it is. There was an SDK called TapLynx back in the day made by Brent Simmons of NewsGator and Innesential [0] fame. . It was $600 and a quick way to get an App released in the late App gold rush days with only an XML file. It was acquired by PushIO which was acquired by Oracle. Along the way the SDK stopped getting updates with new iOS versions and Apps stopped working. The yearly updates of the iOS SDK will impose a bunch of work on SDKs like this to keep up. A good model for open source. All the best to the author, might be a good model for a consulting gig around the open source SDK for sure. [0] http://inessential.com/
aaronbrethorst · 2014-03-07
This is great. Guys, I love what you're doing with objc.io. Please keep it up! Everyone else: if you want to help support the site, set up a recurring purchase for the objc.io app in the App Store. It's something ridiculously cheap (for the value provided), like $5. Also, for more on iOS data syncing and Core Data, this has been a frequent topic of late on Brent Simmons' blog: http://inessential.com
Wowfunhappy · 2025-11-01
I thought Brent Simmons did a great job laying out why PWAs don't work: https://inessential.com/2025/10/04/why-netnewswire-is-not-web-app.html The tl;dr is that a PWA implies an app which is based in the cloud. So suddenly you need a server, and you need to store user data, which means costs and dealing with privacy and security.
ttepasse · 2023-06-30
> But I think it’s worth noting that a cultural tradition emerged that papered over the flawed spec. Back in 2013 a developer of a feed crawler wrote a selection of things people get wrong with their feeds. https://inessential.com/2013/03/18/brians_stupid_feed_tricks
BooneJS · 2023-06-06
There’s a number of indie devs who rely on https://github.com/ccgus/fmdb for fast persistence. The rebirth of NetNewsWire came with FMDB at its core (https://inessential.com/2020/05/18/why_netnewswire_is_fast). What’s not clear is if a project starts with, say, SwiftData, and finds it to be a bottleneck, how easy is it to remove unless one goes to great lengths to make a clean API between the 2?
hardmath123 · 2020-10-02
NetNewsWire is wonderful! Brent Simmons is writing it for love (https://inessential.com/2015/06/30/love) and it really shows. https://ranchero.com/netnewswire/ Here is their "How to Support NNW" page. https://github.com/Ranchero-Software/NetNewsWire/blob/main/Technotes/H…
avgcodemonkey · 2020-09-10
Loving the app so far - I love how speedy it is. I'm glad to see some resurgence of Mac-assed Mac apps [1]. [1]: A term coined by Brent Simmons, creator of NetNewsWire, (in my opinion) the best Mac-assed RSS reader. https://inessential.com/2020/03/19/proxyman
ryanwaggoner · 2020-05-23
I used to use NetNewsWire like 12-15 years ago, so I was surprised to see it pop up here in this excellent article. Turns out this is a completely rewritten app and the NetNewsWire name went on quite a journey: https://inessential.com/2018/08/31/netnewswire_comes_home
cpach · 2020-02-08
Brent Simmons has a good blog where he writes about the development about the RSS reader Netnewswire https://inessential.com/ (Netnewswire itself is not a solo project though)
joelmbell · 2018-05-20
Worthwhile to read Brent Simmons blog post on this, he is one of the influential members of this group and has a really great perspective. http://inessential.com/2018/05/18/the_developers_union
mostafah · 2017-10-08
Brent Simmons has an interesting habit of writing blog posts in order to help him think about the problems. His blog is http://inessential.com, which includes some non-technical stuff too. For the start, open one of his “diary” pages from the bottom of the page, like “Vesper Sync Diary”.
grizzles · 2016-03-16
Why do people keep building stuff on Twitter? All the app developers that have been fenced off should create a simple protocol to make Twitter irrelevent. Brent Simmons suggested a great way do it awhile back: http://inessential.com/2012/06/29/matthew_on_twitter_restrictions
mphillips · 2014-05-27
I'd be really interested to hear more about your approach. Maybe you’d write it up? I did consider simply storing and replaying actions, but realised I'd still want a way to merge them: consider a series of actions like: "add item", "update item", "add item", ...<lots more changes>..., "delete items 1 through 20". If there’s no merge, a lot of redundant actions will end up building up in the offline case. There are a lot of ways to approach this (I’m reading Brent Simmon’s adventures (http://inessential.com/2014/05/24/vesper_sync_diary_follow-up) with interest at the moment).
Zev · 2010-03-27
Brent Simmons (makes NetNewsWire for Mac and iPhone) made a very good post on this topic (well, charging for features, not related to open source specifically) awhile back: http://inessential.com/2009/07/16/dont_offer_50_for_your_favorite_feat… Its well worth reading (as are Daniel Jalkut's thoughts on the conversation, linked to from the blog post). Basically, the points they make are that the motivator for most developers (on all projects, not just open source ones) is to make something good, with money being a side result of your efforts, but not the goal. Or, to paraphrase Daniel a bit, you want freaking awesome and not to simply be going through motions to pay off bills.
kstrauser · 2023-09-06
I use Forklift. Version 4 just came out this week, with a new quasi-subscription model. Now it's $20/yr, or $35 for 2, but you can keep using the final version that comes out during your subscription period. That's not awful but I'm still disappointed. My first impression: this is clearly not a "Mac-assed Mac app"[0]. The fonts are weird (but configurable). The keyboard shortcuts are weird (but configurable). The preference pane isn't under the "Double Commander > Settings" menu, but "Configuration > Options", and it doesn't open with "cmd-,", and that doesn't seem to be configurable. These are not deal breakers. Different doesn't automatically mean bad. In this case, it does mean that you have to learn how to use it from scratch, compared to something like Forklift or Commander One that someone used to Finder can pick up and start using. It also doesn't seem to come with a zillion integrations with cloud services like S3, Box, etc. like the Mac-native options. These are my first impressions. I've used it for maybe 20 minutes now. That's not a fair shake, and it could be that I'd absolutely love it if I kept at it. Still, it doesn't make me want to keep at it. I could see Double Commander being brilliant if I already used it on Linux and wanted to bring my workflow, settings, plugins, and all that to Mac. I don't think I'd want to start using it here. [0] https://inessential.com/2020/03/19/proxyman
Klonoar · 2018-05-03
> I'm aware of that–that's why I said it is possible that you can do it from JavaScript. What I'm saying is that the JavaScript layer generally causes issues like this, because UINavigationController only works in specific cases. For example, scrolling only works if you're a singular top-level scroll view. Getting the titles to animate only works if you don't try to modify it after the fact. Putting a button in the navigation bar's title view just makes it mess up when it runs its first layout pass. A lot of frameworks end up doing this, or making it very easy for this to occur, so you end up with "broken" navigation of the likes seen in that GIF. Of course, it's not unusable, so those who aren't as familiar with how it should work don't notice the difference. Most of those issues that you bring up with UINavigationController are, while annoying, not actually _that_ common in apps, and people run into them at the native level too - it's not entirely a JS issue. Provided you're not doing anything too against the grain (which the Wix API more or less protects novice users from doing), you're unlikely to experience too many issues and it functions as an almost completely indistinguishable UINavigationController experience for pretty much everyone. As an aside, if React Native would fix TouchableOpacity to follow platform convention, most people would have difficulty detecting RN apps. > I'm surprised you haven't drawn the cynical conclusion from this: that I'm desperately…
archagon · 2016-06-08
You're right — users shouldn't expect their apps to get major updates for free. But this is a PR problem, solvable by other means. As a user, I'm OK with it. I've been using Adobe CS 5 for the past 3 years and it's still working great. Were there an upgrade path where I could pay some cash and get the latest version, I would probably do so. Unfortunately, Adobe has decided that they're not the company for me, and so I've been happily moving on to alternatives like Pixelmator and Affinity Designer. From what I've seen in the response to Text Expander's subscription pricing and other similar business model changes, I think many others feel the same as I do: that above all else, the software running on their local machine must continue to work without having to pay a bloody tax. A text expander is not a "service", nor is a password manager, nor is an audio looper or a to-do lister. To suggest otherwise would be disingenuous. Of course, we don't know what's going to happen in response to this change yet, but statements like Gruber's "win-win-win"[1] and Brent Simmons' request for clarification[2] indicate to me that indie developers will be more than happy to adopt this model with their decidedly non-service software. [1]: http://daringfireball.net/2016/06/the_new_app_store [2]: http://inessential.com/2016/06/08/seeking_clarification
comex · 2016-05-23
The posts in the first linked series (http://inessential.com/2016/05/) seem to mostly focus on how dynamism can avoid the need for boilerplate. For example, he states that the following code is tedious to write and error-prone: if localObject.foo != serverObject.foo { localObject.foo = serverObject.foo changeDictionary[fooKey] = serverObject.foo } if localObject.bar != serverObject.bar { localObject.foo = serverObject.bar changeDictionary[barKey] = serverObject.bar } But there's another language feature that can replace boilerplate, without dynamism and its associated performance and type safety penalties. A feature that's reviled by many, and was omitted from Swift, but serves this purpose perfectly: macros. What if you could write this? macro_rules! merge { ($localObject:expr, $serverObject:expr, ($($prop:ident),+)) => { $( if $localObject.$prop != $serverObject.$prop { $localObject.$prop = $serverObject.$prop; changeDictionary[stringify!($prop)] = $serverObject.$prop; } )+ } } merge!(localObject, serverObject, (foo, bar, baz)); Actually, this is valid Rust code, as you might have guessed if you know that language. I picked it because it has similar syntax to Swift and a powerful, hygienic macro system. (This case is simple enough that a C macro would also work fine without any ugly arcane stuff -…
dottrap · 2016-05-23
It doesn't sound like you've read any of the articles. There are details and tradeoffs and limitations found by the people talking about them. And there is a massive knowledge vacuum because if there is a good solution, it's not something that is obvious and well discussed by Apple. Ignoring and dismissing them doesn't make them actually go away. Here's two on just the Responder chain: http://inessential.com/2016/05/17/responder_chain_followup http://shapeof.com/archives/2016/5/dynamic_swift.html The bigger point (which is in that first Brent Simmons link) is that people have built all sorts of frameworks and tools over the past 20 years depending using of the dynamic features of Obj-C. Some are Apple's like all the above plus others like Interface Builder and XCTest, but other people have built their own things too that rely on the same concepts. How do these people move forward in a Swift world? None of these people are arguing that Swift is terrible and going back to Obj-C. They are trying to use Swift. They are only interested in solving the problems they have (and well). When Swift fails to solve a problem or is far worse than its predecessor, there is a problem. Not everybody can nonchalantly throw their stuff overboard like you are willing to do with Core Data.
nicholassmith · 2013-11-08
http://inessential.com has some good stuff posted.
simonw · 2025-10-08
If you're in the Apple ecosystem (Mac, iPhone) NetNewsWire is an absolute delight. It's not a commercial product any more, Brent Simmons runs it as a (very serious) passion project. Here's a recent post by him explaining part of his philosophy for it: https://inessential.com/2025/10/04/why-netnewswire-is-not-web-app.html Crucially, it syncs feed read state between my laptop and phone.
thomascountz · 2024-11-24
https://netnewswire.com/ Though it may not meet your criteria around infinite retention. The developer has written about their philosophy on that here: https://inessential.com/2018/10/13/netnewswire_article_age_limits.html
al_borland · 2024-02-06
Isn’t the lack of foss just a matter of time and popularity of the platform? If it takes off, there is nothing stopping developers from making foss for the AVP, as far as I know. Popular open source apps exist on iPhone and iPad. My RSS reader of choice is NetNewsWire, which is foss. The developer posted about why it’s not on the AVP[1], not even the iPad version. It basically came down to him not being able to test the actual hardware, since he isn’t going to drop $3,500 on it. If it becomes popular, and future versions are cheaper, this could change… just as it did for iPhone and iPad. [1] https://inessential.com/2024/02/04/why_netnewswire_isnt_available_for_…
BillSaysThis · 2023-12-18
Strange for me to see the negative comments on Flipboard (though I'm not of course criticizing anyone's personal opinion) since I've been a user pretty much from the beginning and still use it daily. Ads are definitely visible but not obnoxious or in the way of how I read it. I agree with Brent's take on Fediverse in read apps (https://inessential.com/2023/12/17/on_mastodon_support_in_netnewswire) and Flipboard seems to match with this thinking.
bithaze · 2023-10-13
Reminds me of Mac-assed Mac apps[1]: > Mac apps that are unapologetically _Mac_ apps. They’re platform-specific and they’re not trying to wow us with all their custom not-Mac-like UI (which often isn’t very accessible). I wonder if there's a directory of such applications somewhere, actually. [1] https://inessential.com/2020/03/19/proxyman
SCdF · 2023-07-06
Anatomy of a feature[1] is easily the blog post I have linked to new devs the most over the years, as it feels like an evergreen understanding new folk lack. [1] https://inessential.com/2009/07/30/anatomy_of_a_feature
dceddia · 2023-01-01
I think a big part of what people perceive as being Electron’s fault actually comes down to how the app code is written. Beyond the regrettable (but hard to avoid) baseline memory usage, startup time, and bundle size, at the end of the day it’s just a browser. Native code might be faster than JS on benchmarks but at the level of clicking a button to perform an action, there’s no technical reason that the latency should be any different, certainly not at the level of 100s of milliseconds. It’s just slow UI code at that point. I daresay the bigger problem is the huge prevalence of slow UI code. It reminds me of this article on why NetNewsWire (a native Mac RSS reader) is fast - turns out it takes a lot of work beyond just being native! (and a bunch of these strategies have analogs in the JS world too) https://inessential.com/2020/05/18/why_netnewswire_is_fast
setpatchaddress · 2020-10-26
The next version of NetNewsWire will have iCloud sync, according to the roadmap. edit: source: https://inessential.com/2020/09/19/netnewswire_5_1_for_mac_feedly_sync…
jolux · 2020-03-28
>If it does the same thing and has the same name and creator, is it really a different project? Yes? I don't even understand how this is a question. >The only reason what became Net News Wire 5 originally had a different name is because NNW was owned by BlackPixel at that point. From the post announcing the new name (https://inessential.com/2018/08/31/netnewswire_comes_home): >You probably know that I’ve been working on a free and open source reader named Evergreen. Evergreen 1.0 will be renamed NetNewsWire 5.0 — in other words, I’ve been working on NetNewsWire 5.0 all this time without knowing it! There's no evidence there is supposed to be continuity between the projects other than the name changing. You can say it's old school but the entire thing is written in Swift to modern UI standards. Not sure what more you could ask for.
meerita · 2019-08-27
I'm using NetNewsWire, they recently shipped 5.0. RSS is slowing getting back. https://inessential.com/2018/08/31/netnewswire_comes_home

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close