</sentinel>
AI news intelligence: 3000+ sources, verified claims. Live on the App Store.

3000+
global sources
50–80%
API cost cut via SHA-256 cache
App Store
live · iOS + web
$7.99/mo
freemium · StoreKit 2
SPECIFICATIONS
| ROLE | FOUNDER |
|---|---|
| YEAR | 2025 |
| TYPE | CROSS-PLATFORM |
| STATUS | LIVE |
| STACK | swiftui · ios 17+ · next.js · supabase · gemini-2.5-flash · firecrawl · deno edge functions · postgresql +4 more |
| LINKS | [live ↗][app store ↗] |
| AVAILABILITY | App Store + web |
| PRICING | $7.99/mo |
“Too many unreliable news sources.”
AI-powered news intelligence, live on the App Store and web.Search any topic and Sentinel pulls from 3000+ global sources · including non-English with auto-translation · verifies every claim with AI, and delivers real-time intelligence reports with financial charts, timelines, and blind spots analysis.
== WHAT IS THIS ==
AI-powered news intelligence, live on the App Store and web. Search any topic and Sentinel pulls from 3000+ global sources · including non-English with auto-translation · verifies every claim with AI, and delivers real-time intelligence reports with financial charts, timelines, and blind spots analysis. Social feed, direct messaging, audio briefings, and Ask Sentinel AI chat.
== </the problem> ==
Too many unreliable news sources. People can't track topics across outlets, languages, or verify what they read. Enterprise intelligence tools cost $500+/month, leaving students, journalists, and everyday people with no way to get verified, structured intelligence on any topic.
== </my approach> ==
Built a full intelligence pipeline: Firecrawl scrapes global sources (including non-English with auto-translation), feeds them into Gemini 2.5 Flash for claim extraction and verification, and assembles structured reports with confidence scores. Iterated through 4+ rounds of low-fidelity testing to balance information density with readability.
== </the story> ==
Sentinel started with a question: what if anyone could access the kind of intelligence analysis that used to be reserved for newsrooms and hedge funds? Not a chatbot summary, but a full intelligence pipeline that searches the world, verifies every claim, and delivers a structured dossier you can actually trust.
Enter any topic ("Taiwan semiconductor supply chain", "AI regulation in the EU", "Finland elections") and Sentinel goes to work. It pulls from 3000+ global news sources including non-English outlets with automatic translation, scrapes and analyzes each source with Gemini 2.5 Flash, extracts individual claims with confidence scores, identifies what the coverage is missing, and assembles everything into a verified intelligence report with financial charts, event timelines, and blind spots analysis.
Push notifications keep you briefed on breaking developments for topics you care about. No need to manually re-run searches. Sentinel watches and alerts. Audio briefings let you listen hands-free via on-device text-to-speech, and daily story briefings deliver a personalized AI-generated summary of your tracked topics every morning.
Sentinel is a social intelligence platform. A unified feed with For You and Following modes surfaces trending reports from other users. You can like, comment on, and follow reports. Direct messaging lets users discuss intelligence privately. Ask Sentinel lets you chat directly with any report · ask "What's driving the rally?" and get AI answers grounded in the report's source data.
I designed and built the entire product solo. SwiftUI frontend for iOS, Next.js for web, Supabase backend, Deno edge functions, and Firecrawl for web scraping. Every layer, from database schema to pixel-level UI, to App Store submission. Freemium model with Sentinel Pro at $7.99/month.
Sentinel is live on the App Store and at sentinelintel.app.
== </architecture> ==
The iOS frontend is built in SwiftUI targeting iOS 17+. State flows through a single @Observable AppState root object holding all services. Each report card runs its own state machine (searching, analyzing, verifying, loaded), managed by a ReportCardViewModel per card. A pipeline queue caps concurrent processing at one report at a time to manage API costs.
The backend runs entirely on Supabase: RLS-protected PostgreSQL tables, Deno edge functions, OAuth + Magic Link + anonymous auth. Two cron jobs keep the system alive: a watchtower function runs every 15 minutes and self-chains. It processes one report per invocation, then triggers itself for the next, bypassing Supabase's worker limits entirely. A prewarm function runs every 6 hours, pre-warming headline summaries from 6 major outlets.
Cross-user deduplication runs on SHA-256 hashing of search queries. If two users request the same topic, the second request hits the cache and skips the entire analysis pipeline, saving 50-80% of API costs at scale. Content hashing on source material means re-analysis is skipped if the underlying content hasn't changed.
Firecrawl handles web scraping with tiered search across freshness windows (3h, 12h, 24h), pulling from global sources including non-English outlets with automatic translation. Gemini 2.5 Flash runs the analysis pipeline: claim extraction, confidence scoring, blind spots identification, and timeline generation. Finnhub and Yahoo Finance provide live financial data and candlestick charts.
The social layer runs on Supabase Realtime for live updates. The feed uses a fan-out-on-read model with For You and Following modes, supporting trending/newest/most-liked sorting. Report likes, follows, and comments are backed by dedicated tables with real-time counters. Direct messaging uses a Realtime listener with read status tracking and unread badges. A reading habit tracker with time-decay runs on-device to power re-engagement notifications.
Audio briefings use AVSpeechSynthesizer for on-device text-to-speech · zero API cost, works offline. Daily story briefings are Gemini-generated once per day and cached for 3 days. Ask Sentinel provides conversational RAG over report data, grounding answers in the report's verified sources.
Monetization runs through StoreKit 2 with a freemium model: free users get 1 report with 24-hour refresh, Pro users ($7.99/month) get 10 reports, 6-hour refresh, deep dives, financial charts, and Ask Sentinel AI chat.
== </key features> ==
Topic tracking with push alerts
Subscribe to any topic and get notified when breaking developments happen. No manual re-searching.
AI reports with blind spots analysis
Every report includes what the coverage is missing, not just what it says. Confidence scores on individual claims.
Financial charts and timelines
Live market data from Finnhub, event timelines, and candlestick charts embedded directly in reports.
Cross-user SHA-256 cache
Duplicate queries hit a shared cache, cutting API costs 50-80% at scale.
Social feed and messaging
Unified feed with For You and Following modes, report likes/comments/follows, and full direct messaging between users.
Ask Sentinel AI chat
Conversational RAG over any report. Ask questions and get AI answers grounded in verified source data.
Audio briefings and daily stories
On-device TTS for hands-free listening. Gemini-generated daily story briefings summarize your tracked topics each morning.
== </key decisions> ==
DECISION 01
The hardest architectural decision was the watchtower refresh system. Supabase edge functions have strict execution time limits, which makes long-running background jobs impossible. The solution was self-chaining: each invocation processes one report, then triggers the next invocation via a Supabase function call before exiting. It's essentially a recursive cron job. Each link in the chain handles exactly one unit of work and passes the baton forward.
DECISION 02
The shared cache was the most impactful cost decision. Without it, every user querying "Apple earnings" would trigger a full scrape + Gemini pipeline. With SHA-256 deduplication, the second request is instant and free. At any meaningful scale this is the difference between a sustainable API budget and an unsustainable one.
DECISION 03
Choosing Gemini 2.5 Flash over GPT-4 came down to speed and structured output quality at volume. Flash matched GPT-4 on claim extraction accuracy while running significantly faster. This is critical when each report chains multiple LLM calls in sequence.
DECISION 04
The biggest UX challenge was making the loading states feel intentional rather than broken. Each report card runs its own state machine (searching, analyzing, verifying, loaded) with a shimmer skeleton that gives users a real-time view of pipeline progress. A 15-30 second wait feels like watching the work happen rather than staring at a spinner.
DECISION 05
Pricing landed at $7.99/month after testing showed the original $14.99 price point created too much friction for individual users. The free tier (1 report, 24-hour refresh) acts as a permanent trial that demonstrates the full pipeline quality before asking users to commit.
DECISION 06
The feed algorithm was a deliberate trade-off: fan-out-on-read is simpler than fan-out-on-write and works well at early-stage scale. Trending, newest, and most-liked sort modes give users control over discovery without requiring a complex recommendation engine.
== </what i learned> ==
Balancing information density with readability is the hardest UX problem in intelligence tools. Too much data overwhelms; too little loses trust.
Self-chaining edge functions are a viable pattern for long-running background jobs on serverless platforms.
Shipping a v1 and iterating with real users beats perfecting behind closed doors. Most of the best features came from post-launch feedback loops.
On-device TTS (AVSpeechSynthesizer) eliminates API costs entirely for audio features and works offline · a better trade-off than cloud TTS at early stage.
swiftui · ios 17+ · next.js · supabase · gemini-2.5-flash · firecrawl · deno edge functions · postgresql · typescript · finnhub · storekit 2 · apns
interactive demo · loads on demand
LIVE · sentinelintel.app · App Store · $7.99/mo