frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: A native macOS client for Hacker News, built with SwiftUI

https://github.com/IronsideXXVI/Hacker-News
81•IronsideXXVI•2h ago
Hey HN! I built a native macOS desktop client for Hacker News and I'm open-sourcing it under the MIT license.

GitHub: https://github.com/IronsideXXVI/Hacker-News

Download (signed & notarized DMG, macOS 14.0+): https://github.com/IronsideXXVI/Hacker-News/releases

Screenshots: https://github.com/IronsideXXVI/Hacker-News#screenshots

I spend a lot of time reading HN — I wanted something that felt like a proper Mac app: a sidebar for browsing stories, an integrated reader for articles, and comment threading — all in one window. Essentially, I wanted HN to feel like a first-class citizen on macOS, not a website I visit.

What it does:

- Split-view layout — stories in a sidebar on the left, articles and comments on the right, using the standard macOS NavigationSplitView pattern.

- Built-in ad blocking — a precompiled WKContentRuleList blocks 14 major ad networks (DoubleClick, Google Syndication, Criteo, Taboola, Outbrain, Amazon ads, etc.) right in the WebKit layer. No extensions needed. Toggleable in settings.

- Pop-up blocking — kills window.open() calls. Also toggleable.

- HN account login — full authentication flow (login, account creation, password reset). Session is stored in the macOS Keychain, and cookies are injected into the WebView so you can upvote, comment, and submit stories while staying logged in.

- Bookmarks — save stories locally for offline access. Persisted with Codable serialization, searchable and filterable independently.

- Search and filtering — powered by the Algolia HN API. Filter by content type (All, Ask, Show, Jobs, Comments), date range (Today, Past Week, Past Month, All Time), and sort by hot or recent.

- Scroll progress indicator — a small orange bar at the top tracks your reading progress via JavaScript-to-native messaging.

- Auto-updates via Sparkle with EdDSA-signed updates served from GitHub Pages.

- Dark mode — respects system appearance with CSS and meta tag injection.

Tech details for the curious:

The whole app is ~2,050 lines of Swift across 16 files. It uses the modern @Observable macro (not the old ObservableObject/Published pattern), structured concurrency with async/await and withThrowingTaskGroup for concurrent batch fetching, and SwiftUI throughout — no UIKit/AppKit bridges except for the WKWebView wrapper via NSViewRepresentable.

Two APIs power the data: the official HN Firebase API for individual item/user fetches, and the Algolia Search API for feeds, filtering, and search. The Algolia API is surprisingly powerful for this — it lets you do date-range filtering, pagination, and full-text search that the Firebase API doesn't support.

CI/CD:

The release pipeline is a single GitHub Actions workflow (467 lines) that handles the full macOS distribution story: build and archive, code sign with Developer ID, notarize with Apple (with a 5-retry staple loop for ticket propagation delays), create a custom DMG with AppleScript-driven icon positioning, sign and notarize the DMG, generate an EdDSA Sparkle signature, create a GitHub Release, and deploy an updated appcast.xml to GitHub Pages.

Getting macOS code signing and notarization working in CI was honestly the hardest part of this project. If anyone is distributing a macOS app outside the App Store via GitHub Actions, I'm happy to answer questions — the workflow is fully open source.

The entire project is MIT licensed. PRs and issues welcome: https://github.com/IronsideXXVI/Hacker-News

I'd love feedback — especially on features you'd want to see. Some ideas I'm considering: keyboard-driven navigation (j/k to move between stories), a reader mode that strips articles down to text, and notification support for replies to your comments.

Comments

Brajeshwar•1h ago
No No. Don’t do that, don’t make it better and easy to use. I’m already addicted and spent more time than I should. Now, this app that I can keep it open all day!

Btw, can you allow me to set the font-family, font-size, etc. for the interface? I can’t even do the default `CMD + +` to zoom in.

IronsideXXVI•1h ago
Yeah for sure!
gedy•28m ago
Really nice work! But +1 to at least font zoom on HN comments.
embedding-shape•1h ago
> I’m already addicted and spent more time than I should.

noprocrast + maxvisit + minaway on https://news.ycombinator.com/user?id=Brajeshwar is your friend for this :)

> In my profile, what is noprocrast? - It's a way to help you prevent yourself from spending too much time on HN. If you turn it on you'll only be allowed to visit the site for maxvisit minutes at a time, with gaps of minaway minutes in between. The defaults are 20 and 180, which would let you view the site for 20 minutes at a time, and then not allow you back in for 3 hours. - https://news.ycombinator.com/newsfaq.html

putlake•1h ago
Neat! One feature I'd love to see is to follow/block users. Like this Chrome extension: https://chromewebstore.google.com/detail/hn-followblock/dkbn...
IronsideXXVI•1h ago
Great idea, thanks!
busterarm•1h ago
My experience would indeed be so much better with a content filter I can control, yes.

Also would be nice to be able store notes or short blurbs about usernames that will show up in the app. Maybe as a tooltip?

latchkey•9m ago
It is on my feature list for https://oj-hn.com as well.
rcarmo•1h ago
Nice. It is actually very close to the experience I have via RSS on Reeder.
Octoth0rpe•1h ago
> Built-in ad blocking — a precompiled WKContentRuleList blocks 14 major ad networks (DoubleClick, Google Syndication, Criteo, Taboola, Outbrain, Amazon ads, etc.) right in the WebKit layer. No extensions needed. Toggleable in settings

This is a good start, but I think a better approach would be to piggyback off of ublock origin's lists. Hopefully less maintenance that way too.

IronsideXXVI•1h ago
Sweet, I will have a look. Thank you.
soulofmischief•1h ago
I love the idea but what keeps me in the browser is things like uBlock Origin + uMatrix + a bunch of other extensions that I know keep me safer. On top of that, Firefox has anti-fingerprinting.

I don't necessarily have a ready solution to offer, but these are the obstacles preventing someone like me from being able to use apps like this comfortably and safely, especially knowing we are entering a transitional period where new apps are being vibe-coded every day and formal verification has not yet caught up.

Even if a given app has had every line of code reviewed by a human, or has well-defined interfaces that allow for sloppier internal code, how do I know that without cracking it open myself or asking an agent to help me audit it?

Someone•1h ago
> I think a better approach would be to piggyback off of ublock origin's lists

That won’t work. uBlock origin is licensed GPLv3 (https://github.com/gorhill/uBlock), this code is MIT licensed (https://github.com/IronsideXXVI/Hacker-News).

Octoth0rpe•1h ago
Great point, thanks!

@IronsideXXVI, are you open to changing to gpl v3? Otherwise, there is probably a decent set of filter lists with an MIT license somewhere. The goal is for you to NOT become a filter list maintainer, and by piggybacking off an already respected set of lists, you'd build user trust in your adblocking.

agg23•24m ago
I would recommend that changing to GPL just to gain better ad blocking, which is far from being a primary feature, is probably not the greatest idea if you care about licensing.
ranger_danger•1h ago
Looks nice but I don't have/want a Mac so I can't really use it. Support for other platforms would be nice.
embedding-shape•1h ago
Supposedly people are raving about Swift being cross-platform nowadays, this seems like a simple example where the Swifties can prove how useful/practical that is in practice.
blazarquasar•1h ago
Swift is de-facto cross-platform without limitations.

SwiftUI is something entirely different and not trying to be cross-platform at all.

embedding-shape•1h ago
Ok, so Swift-the-language is cross-platform, but can't actually do cross-platform UIs. So great for CLIs, bad for everything needing a GUI?
mojuba•1h ago
I'm a big fan of Swift (and SwiftUI), such a concise and elegant language. Beauty.

Also I appreciate how you made all backend calls just static functions which they always should be. People tend to overcomplicate these things and add a lot of boiler plate and unnecessary bureaucracy.

Going to try your app, thank you!

P.S. tried it, already miss the `threads` tab

acquire9395•1h ago
i would love keyboard-driven navigation! espeically for switching between the post and comments :)
gwbas1c•1h ago
If my work PC was a Mac I'd give it a try!

One thing: I really like the colors of Hacker News. It feels weird to me when Hacker News is presented in other colors. If I were to use your app I'd want to change the color pallet back to what it looks like on HN.

> Getting macOS code signing and notarization working in CI was honestly the hardest part of this project. If anyone is distributing a macOS app outside the App Store via GitHub Actions, I'm happy to answer questions — the workflow is fully open source.

Yes, in a past life I shipped a Mac application. This aspect is always a little bit of black magic. I will say that the Windows installer situation was a lot worse, IMO.

aquir•1h ago
It is great! Very native feel and it's quick too. I don't have to keep a Safari window open all the time...the ram usage of this app is around 10% of a Safari window with a single tab.

A font size setting would be nice, I found the font is a bit small.

IronsideXXVI•1h ago
Thanks for the feedback! I will prioritize working on allowing users to adjust the font.
yawniek•1h ago
really nice, but if you have high res monitor the fonts are too small. would be nice to zoom the ui
albertonoys•1h ago
Great! I was just looking for a replacement for https://www.modernhn.com
ibdf•55m ago
This marketing tactics are wild... made me uninstall the extension.
latchkey•9m ago
https://oj-hn.com
wegoagain_dev•1h ago
IOS next and you've nailed it!!
IronsideXXVI•56m ago
Absolutely, IOS version should be pretty simple. Going to iron out a few things in the Mac version that users are asking for, then bring it to IOS.
stalfosknight•1h ago
This is really really nice! Great work!

My only nitpick is I wish I could force dark mode on web pages with a light background, but that’s minor.

IFC_LLC•1h ago
Ah, this gives me 2002 vibes where coolest websites started to produce native clients for their websites so their users could read and comment offline.

This is sooo good.

IFC_LLC•1h ago
WHAT? The client size is 2 megabytes? It can fit onto two floppy drives! Man, this is something. It's even more 2002 vibes! And I haven't installed it yet.

Bravo!

alsetmusic•55m ago
Very nice. Commenting from it right now.

First feature request from me would be to adjust text size. I've start bumping up the default text size on all sites by one or two notches in the past year. Getting old, y'know. But also, as someone pointed out on a design blogpost a decade ago, why not make things easier to read. I didnt need it then, but I appreciate it now.

Really happy that I can run this on MacOS14 cause I've been locked out of some neat things people have built recently. Thanks for targetting older OSes. I'm not upgrading to the crap they've been putting out lately.

I'll be able to read details more later (getting ready for the job). Hope I didn't miss anything and comment about something that was already addressed. Congrats on shipping!

presbyterian•17m ago
> I've start bumping up the default text size on all sites by one or two notches in the past year

I've been doing this too; at some point I should probably just change the scaling of my desktop as a whole. But I like my high resolution, multiple windows layout too much to do it yet!

stalfosknight•54m ago
After playing around with it for a bit, one request I would like to make is being able to open multiple tabs.
jovantho•50m ago
This is really good and I can definitely see myself using it instead of visiting the website. One thing I think would make it even better is if the comments weren't a web-view/embed but used swiftUI to display them (similar to how some reddit clients look, for instance). Not sure how feasible that is, I can imagine it'd be more involved than the current implementation.
taude•48m ago
Congrats and building and releasing something. I guess for reading things like this, I'm just a browser kind-of guy. But I still appreciate youre building a NATIVE app that's using around 85MB of working memory (according to my Activity Monotor), and not some Electron thing.

I'm probably just a anti-app guy, but I tried it out.

First thing I went to do was CMD-F to search for some strings in the comments section.

Actually, the real first thing I did, was click on the left-side article preview on the text that said "1 hr ago | 63 comments" thinking it'd navigate me to the comments. See, I like my native hyper-links.

postalcoder•17m ago
If you're looking for an alt frontend on the web (+PWA), check out https://hcker.news

There will be a way to do user actions like upvote/comment/favorite/flag soon.

marxisttemp•47m ago
Why does the comments page look like a web view with some custom CSS? Is it because HN API doesn’t have a way to post comments? You could try using a WebPage[1] to inject the cookies and post comments, and an OutlineGroup to display comments.

[1] https://developer.apple.com/documentation/webkit/webpage

aoyama1chome•42m ago
What does your CLAUDE.md look like?
navanchauhan•15m ago
I have been building a drop in replacement for SwiftUI that can render with different renderers (TUI for now and GTK/Adwaita very soon). This will be such an awesome demo use case for it.

Congratulations on getting this out!

latchkey•10m ago
This is super cool.

In other similar news, I've been working on enhancing the HN ux, but still in the browser as an extension. The current build up on the Chrome store is pretty stable.

https://oj-hn.com

Ggml.ai joins Hugging Face to ensure the long-term progress of Local AI

https://github.com/ggml-org/llama.cpp/discussions/19759
268•lairv•2h ago•57 comments

I found a useful Git one liner buried in leaked CIA developer docs

https://spencer.wtf/2026/02/20/cleaning-up-merged-git-branches-a-one-liner-from-the-cias-leaked-d...
206•spencerldixon•2h ago•108 comments

Child's Play: Tech's new generation and the end of thinking

https://harpers.org/archive/2026/03/childs-play-sam-kriss-ai-startup-roy-lee/
49•ramimac•1h ago•29 comments

Trump's global tariffs struck down by US Supreme Court

https://www.bbc.com/news/live/c0l9r67drg7t
251•blackguardx•47m ago•158 comments

The path to ubiquitous AI (17k tokens/sec)

https://taalas.com/the-path-to-ubiquitous-ai/
434•sidnarsipur•5h ago•280 comments

Show HN: A native macOS client for Hacker News, built with SwiftUI

https://github.com/IronsideXXVI/Hacker-News
81•IronsideXXVI•2h ago•44 comments

Untapped Way to Learn a Codebase: Build a Visualizer

https://jimmyhmiller.com/learn-codebase-visualizer
117•andreabergia•7h ago•19 comments

PayPal discloses data breach that exposed user info for 6 months

https://www.bleepingcomputer.com/news/security/paypal-discloses-data-breach-exposing-users-person...
94•el_duderino•2h ago•17 comments

Web Components: The Framework-Free Renaissance

https://www.caimito.net/en/blog/2026/02/17/web-components-the-framework-free-renaissance.html
115•mpweiher•7h ago•72 comments

Minions – Stripe's Coding Agents Part 2

https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2
82•ludovicianul•4h ago•40 comments

Mothers (YC X26) Is Hiring

https://jobs.ashbyhq.com/9-mothers?utm_source=x8pZ4B3P3Q
1•ukd1•2h ago

The Rediscovery of 103 Hokusai Lost Sketches (2021)

https://japan-forward.com/eternal-hokusai-the-rediscovery-of-103-hokusai-lost-sketches/
29•debo_•4d ago•2 comments

Consistency diffusion language models: Up to 14x faster, no quality loss

https://www.together.ai/blog/consistency-diffusion-language-models
170•zagwdt•11h ago•63 comments

Raspberry Pi Pico 2 at 873.5MHz with 3.05V Core Abuse

https://learn.pimoroni.com/article/overclocking-the-pico-2
83•Lwrless•7h ago•18 comments

AI is not a coworker, it's an exoskeleton

https://www.kasava.dev/blog/ai-as-exoskeleton
392•benbeingbin•20h ago•401 comments

Infrastructure decisions I endorse or regret after 4 years at a startup (2024)

https://cep.dev/posts/every-infrastructure-decision-i-endorse-or-regret-after-4-years-running-inf...
380•Meetvelde•3d ago•166 comments

Reading the undocumented MEMS accelerometer on Apple Silicon MacBooks via iokit

https://github.com/olvvier/apple-silicon-accelerometer
105•todsacerdoti•11h ago•52 comments

The Popper Principle

https://theamericanscholar.org/the-popper-principle/
9•lermontov•1d ago•1 comments

Notes on Clarifying Man Pages

https://jvns.ca/blog/2026/02/18/man-pages/
37•surprisetalk•1d ago•21 comments

Nvidia and OpenAI abandon unfinished $100B deal in favour of $30B investment

https://www.ft.com/content/dea24046-0a73-40b2-8246-5ac7b7a54323
220•zerosizedweasle•4h ago•186 comments

Show HN: Micasa – track your house from the terminal

https://micasa.dev
600•cpcloud•1d ago•191 comments

FreeCAD

https://www.freecad.org/index.php
304•doener•3d ago•122 comments

US plans online portal to bypass content bans in Europe and elsewhere

https://www.reuters.com/world/us-plans-online-portal-bypass-content-bans-europe-elsewhere-2026-02...
400•c420•1d ago•769 comments

I tried building my startup entirely on European infrastructure

https://www.coinerella.com/made-in-eu-it-was-harder-than-i-thought/
561•willy__•7h ago•299 comments

Silicon Valley engineers were indicted for allegedly sending secrets to Iran

https://www.cnbc.com/2026/02/20/three-engineers-charged-stealing-google-trade-secrets-data-iran-s...
80•giuliomagnifico•5h ago•45 comments

A beginner's guide to split keyboards

https://www.justinmklam.com/posts/2026/02/beginners-guide-split-keyboards/
195•thehaikuza•4d ago•211 comments

Fast KV Compaction via Attention Matching

https://arxiv.org/abs/2602.16284
56•cbracketdash•11h ago•11 comments

Gemini 3.1 Pro

https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/
885•MallocVoidstar•1d ago•863 comments

Defer available in gcc and clang

https://gustedt.wordpress.com/2026/02/15/defer-available-in-gcc-and-clang/
235•r4um•4d ago•208 comments

An ARM Homelab Server, or a Minisforum MS-R1 Review

https://sour.coffee/2026/02/20/an-arm-homelab-server-or-a-minisforum-ms-r1-review/
103•neelc•14h ago•84 comments