Dedicated iOS app for viewing Hacker News by /newest
See the codeBlog post: Hacker News Firehose for iOS
Ask Claude Fable to create a custom app for browsing Hacker News by
/new
Claude was able to one-shot this given a spec and screenshots.
Source here: github.com/harrisonpage/firehose-ios
Reading model is simple:
Content is ephemeral. There's value in the unfiltered firehose of submissions, most are low quality but occasional gems surface.
The app talks to one external service: the Algolia HN Search API (hn.algolia.com/api/v1)
async/await), @ObservableSwiftUI, LinkPresentation, SafariServicesurl is nil effectively removing Ask HN and text-only postsOpen Firehose.xcodeproj in Xcode, or:
./build.sh # iOS simulator
./build.sh device # generic iOS device build
A device build has to sign the app, and the signing key lives in your login
keychain. In a desktop session that keychain is already unlocked; over SSH it
is locked, and there is no window server to draw the unlock prompt on. The
certificate is still readable — security find-identity lists it — so the
setup looks fine right up until the build fails on:
<app>/Firehose.debug.dylib: errSecInternalComponent
Command CodeSign failed with a nonzero exit code
./build.sh device notices the locked keychain and asks for your macOS
password before starting the build. To unlock ahead of time, or from a shell
that cannot prompt:
security unlock-keychain ~/Library/Keychains/login.keychain-db
The unlock holds until the keychain relocks — idle timeout, sleep, or logout —
not just for one build. Set KEYCHAIN_PASSWORD if nothing is around to type
it. If signing still fails the same way, the key is asking for a confirmation
nobody can click; grant the codesign tools standing access once:
security set-key-partition-list -S apple-tool:,apple: -s \
-k <password> ~/Library/Keychains/login.keychain-db
Tests (killfile matching logic):
xcodebuild -project Firehose.xcodeproj -scheme Firehose \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' test
There is no filter UI. Rules live in
Sources/Firehose/Services/Killfile.swift as a compile-time constant — edit
and rebuild. Phrase rules match on token boundaries (an AI rule will not
kill "Ukraine"); domain rules match label suffixes (wikipedia.org kills
en.wikipedia.org but not notwikipedia.org).
MIT. Bundled Archivo is under the SIL Open Font License.
11 commits
Swift
87.5%
Shell
12.5%
Dedicated iOS app for viewing Hacker News by /newest
See the codeBlog post: Hacker News Firehose for iOS
Ask Claude Fable to create a custom app for browsing Hacker News by
/new
Claude was able to one-shot this given a spec and screenshots.
Source here: github.com/harrisonpage/firehose-ios
Reading model is simple:
Content is ephemeral. There's value in the unfiltered firehose of submissions, most are low quality but occasional gems surface.
The app talks to one external service: the Algolia HN Search API (hn.algolia.com/api/v1)
async/await), @ObservableSwiftUI, LinkPresentation, SafariServicesurl is nil effectively removing Ask HN and text-only postsOpen Firehose.xcodeproj in Xcode, or:
./build.sh # iOS simulator
./build.sh device # generic iOS device build
A device build has to sign the app, and the signing key lives in your login
keychain. In a desktop session that keychain is already unlocked; over SSH it
is locked, and there is no window server to draw the unlock prompt on. The
certificate is still readable — security find-identity lists it — so the
setup looks fine right up until the build fails on:
<app>/Firehose.debug.dylib: errSecInternalComponent
Command CodeSign failed with a nonzero exit code
./build.sh device notices the locked keychain and asks for your macOS
password before starting the build. To unlock ahead of time, or from a shell
that cannot prompt:
security unlock-keychain ~/Library/Keychains/login.keychain-db
The unlock holds until the keychain relocks — idle timeout, sleep, or logout —
not just for one build. Set KEYCHAIN_PASSWORD if nothing is around to type
it. If signing still fails the same way, the key is asking for a confirmation
nobody can click; grant the codesign tools standing access once:
security set-key-partition-list -S apple-tool:,apple: -s \
-k <password> ~/Library/Keychains/login.keychain-db
Tests (killfile matching logic):
xcodebuild -project Firehose.xcodeproj -scheme Firehose \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' test
There is no filter UI. Rules live in
Sources/Firehose/Services/Killfile.swift as a compile-time constant — edit
and rebuild. Phrase rules match on token boundaries (an AI rule will not
kill "Ukraine"); domain rules match label suffixes (wikipedia.org kills
en.wikipedia.org but not notwikipedia.org).
MIT. Bundled Archivo is under the SIL Open Font License.
11 commits
Swift
87.5%
Shell
12.5%