Signal News
All the news that matters. Nothing else.
Signal News is an iOS reader I designed and built solo. It is built around the unit of a story rather than the unit of a headline, and it knows when your briefing is over.
How it reads
Related coverage from 60+ sources across 8 categories (Reuters, BBC, Ars Technica, and the rest) is grouped into one finite cluster per story. Each cluster is an AI-written briefing: headline, signal line, synthesis from multiple sources, and the angles where coverage disagrees. You read the briefing, you see the connections, and you stop. After your last card, Signal writes a debrief that ties the day’s stories together as themes, threads, and key players.
Connections, predictions, and memory
A trade war triggers an earnings miss. An earnings miss triggers a hiring freeze. Most readers never see the chain. Signal detects shared entities and cross-domain links between stories so the butterfly effect becomes visible. Tap any cluster to see the source map, the linked entities, and the connected events.
Predictions come grounded in entity patterns and source analysis with confidence levels and timeframes, not vibes. Ripple Effect timelines show how a single event cascades across industries. The local Knowledge Memory builds from your briefings so when a story develops, Signal connects new events to what came before.
Three writing styles change the entire app: Off for raw headlines, Brief for wire-service speed, Narrative for full context. Toggle any source on or off to shape the briefing.
What I own
Product direction. iOS app design and build. Story clustering model. The connections graph. The on-device knowledge memory. The three-style writing system. The five-screen reading model (Briefing, Connections, Predictions, Ripple Effect, Debrief). Privacy-oriented reading experience. Shipped on the App Store and launched on Product Hunt as a Tiny Things product.
Built with
Swift native iOS app built around story-level news clustering, finite briefings, and local memory. Related coverage from 60+ sources is grouped with NLEmbedding plus DBSCAN, then shaped into story clusters, source maps, connected entities, predictions, ripple-effect timelines, and end-of-briefing debriefs. The product logic treats the story as the unit, not the headline.
Stack: Swift, SwiftUI, NLEmbedding, DBSCAN, llama.cpp, local SmolLM3, Apple Intelligence on supported Pro iPhones, optional Claude inference through the user’s own API key, on-device RAG, Knowledge Memory, CloudKit sync.