Hackers, a SwiftUI Hacker News reader rebuilt as a modular workspace
Hackers is an elegant iOS app for reading Hacker News written in Swift.
At a glance
- What is it?
- Hackers is an open source Hacker News client for iPhone and iPad whose version 5 rewrite moved the app into Swift Package style modules. It is a careful, privacy focused reader with a real Xcode build and test setup, but it targets iOS and iPadOS only.
- Who is it for?
- Adopt Hackers if you read Hacker News on iPhone or iPad daily, want no ads and no analytics, and can live inside the App Store release train. Do not adopt it if you need a Mac native build, if you cannot meet the Xcode 27.0 and iOS 26 or later toolchain requirements, or if you need documented behaviour for sign in, credential storage, and rollback, because the README describes none of those.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 9 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Version 5 split the app into Domain, Features, Networking and DesignSystem
Version 5 of Hackers is a SwiftUI rebuild, and the repository layout shows how far that restructuring went. The top level is not a single app target. There is an App directory, a Domain directory, Features directories, a Networking directory, a Shared directory, a DesignSystem directory, a Data directory, and Extensions for the share extension. A separate HackersUITests directory and a fastlane directory sit alongside them, together with ExportOptions.plist for distribution. That split is the real answer to how the app is put together, and it is also what makes a module level test runner possible, since the runner can be handed the name of one feature at a time.
Top, New, Best, Ask, Show, Jobs and Active sit behind one feed
The feature list is specific about what the feed offers. You can browse Top, New, Best, Ask, Show, Jobs, and Active stories. Comments are nested, and any thread can be collapsed or expanded. Opening a story does not throw you out of the app, because an in-app browser keeps the article and its comment thread visible side by side, so reading does not mean switching between the app and a browser tab. Voting works on both posts and comments, and the README ties that capability to being signed in. Bookmarks and search cover the same content, and the share extension lets a Hacker News link arriving from another app open directly in Hackers.
No ads, no tracking and no analytics is a structural choice
The app collects no data, and its App Store privacy label reads Data Not Collected. There are no ads, no tracking, and no analytics. Read together, those are not three separate settings but a description of how the client is built, since the only network surface is the Hacker News API itself. Accessibility is treated with the same seriousness. Dynamic Type text sizing, VoiceOver support, dark mode, and high contrast friendly styling are all listed as features rather than as later additions. The practical effect is a smaller surface area than most clients of the same site, which is the main argument for installing it instead of opening a web view.
A local build needs Xcode 27.0 and an iOS 26 or later simulator
Building the app locally takes a specific stack. The stated requirements are macOS, Xcode 27.0, an iOS 26 or later Simulator runtime, and Swift 6.4, and it points at the .github/xcode-version file for the pinned Xcode version. In Xcode you open Hackers.xcodeproj and run the Hackers scheme. The same build from a terminal at the repository root is one xcodebuild invocation:
xcodebuild -project Hackers.xcodeproj -scheme Hackers -destination 'platform=iOS Simulator,name=iPhone 17 Pro' buildThe destination argument names an iPhone 17 Pro simulator, so that particular simulator runtime has to exist on your machine before the command can resolve a destination at all.
run_tests.sh takes module names because swift test cannot target iOS APIs
Project validation runs through a shell script rather than through swift test. swift test should not be used for project validation, because the packages target iOS APIs and need an iOS Simulator destination. The project test runner executes the suite:
./run_tests.shIndividual modules can be named, which keeps the feedback loop short when you are working inside one feature:
./run_tests.sh Domain
./run_tests.sh Feed Comments SettingsUI checks live in a separate script:
./run_ui_tests.sh smokeThe contributing guidance asks that tests be added or updated for behaviour changes and that a pull request report which checks were run, so the scripts are part of the normal review path rather than optional tooling.
Mac support stops at a possibility while releases land every few days
The project draws a hard platform line at iOS and iPadOS. Apple Silicon Mac compatibility may be available through Apple's platform support, but the project states plainly that iOS and iPadOS are the platforms covered by the project's build and CI configuration. No Mac destination appears in the documented build command, which targets an iOS Simulator, so a plan that depends on a native Mac build is not supported by the documented setup. The release side looks busier. Three recent versions carry build numbers: v5.5.1+168 from 2026-09-20, v5.6.0+169 from 2026-10-12, and v5.6.0+170 from 2026-10-13. The last push was on 2026-10-14 and the repository is not archived. Distribution runs through fastlane and an ExportOptions.plist. When tracking upgrade cost, watch the build suffix rather than the marketing version, since two of the three recent releases share the v5.6.0 label and differ only by build number.
Sign in is the only account feature, and the README leaves it undefined
Documentation is unusually thorough for a small app, with links to a project overview, a development guide, a release process, a documentation index, CONTRIBUTING.md, SECURITY.md, and SUPPORT.md all listed in the README. What each of those pages contains is not shown there, so their depth is something you would have to open and read. The widest gap sits in account handling. Voting is the only feature that depends on a signed in session, and the README does not explain how credentials are kept, whether sign in runs through a web view and a cookie, or what happens when a session expires. No rollback path is documented either, even though a release process document is referenced.
Reading Hacker News in a browser remains the cheaper alternative
The honest alternative is the Hacker News site in a browser, or a small self-hosted reader built on the public API. The difference is approach rather than features. The web version needs no Xcode, no simulator runtime, and no pinned toolchain version, and it reflects the site immediately, but it gives up nested comment collapse, the share extension, Dynamic Type handling, and a Data Not Collected privacy label. Hackers takes the opposite trade. It asks for an Apple toolchain and a steady stream of App Store builds, and returns a native reading surface in exchange. If you never install an app just to read a forum, the browser route serves you better and this project's toolchain cost buys you nothing.
Editorial conclusion
Adopt Hackers if you read Hacker News on iPhone or iPad daily, want no ads and no analytics, and can live inside the App Store release train. Do not adopt it if you need a Mac native build, if you cannot meet the Xcode 27.0 and iOS 26 or later toolchain requirements, or if you need documented behaviour for sign in, credential storage, and rollback, because the README describes none of those. Before committing, open the sign in flow in a TestFlight build, since voting is the only feature that depends on it.
Frequently asked questions
How do I install Hackers on my iPhone?
A download is offered on the App Store on the App Store for the published app and a TestFlight beta link for people who want to try a newer build before it reaches the store. The repository also carries a CONTRIBUTING.md for people who would rather build from source.
Does the Hackers app collect any data about me?
No. Hackers collects no data and that the App Store privacy label reads Data Not Collected, with no ads, no tracking, and no analytics.
What do I need before building Hackers from source?
The stated requirements are macOS, Xcode 27.0, an iOS 26 or later Simulator runtime, and Swift 6.4, with the pinned Xcode version recorded in .github/xcode-version. You then open Hackers.xcodeproj and run the Hackers scheme.
Can I validate the Hackers packages with swift test?
No. swift test is not the way to validate for project validation because the packages target iOS APIs and need an iOS Simulator destination. Use the run_tests.sh script instead, optionally with module names such as Domain or Feed Comments Settings.
Does the Hacker News client work on Apple Silicon Macs?
Apple Silicon Mac compatibility may be available through Apple's platform support, but it also states that iOS and iPadOS are the platforms covered by the project's build and CI configuration. No Mac destination appears in the documented build command.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/weiran-hackers)Was this useful?