DEV Community

Cover image for Build a News Aggregator App with AI Recommendations (React Native + Expo)
Angel Rose for RapidNative

Posted on • Originally published at rapidnative.hashnode.dev

Build a News Aggregator App with AI Recommendations (React Native + Expo)

The average reader engages with about 4% of the news they scroll past. The remaining 96% is duplication, noise, or algorithmically boosted outrage. That gap is the whole reason a well-built AI news aggregator still has room in the market — and thanks to modern tooling, it's now a weekend project instead of a quarter-long roadmap.

Here's the architecture that keeps showing up in successful indie news apps, plus a shortcut for shipping one fast.

The four layers you actually need

  1. Ingestion — NewsAPI, RSS, publisher APIs, GDELT.
  2. Understanding — embeddings, categorization, dedup.
  3. Ranking — hybrid: content + collaborative + recency decay + diversity.
  4. Presentation — reader mode, saves, offline, push, deep links.

Skip any layer and you have a directory nobody opens. Nail all four and you have a daily habit.

Reference tech stack

Layer Choice
Client React Native + Expo
Feed API NewsAPI + curated RSS
Storage Postgres (Supabase)
Embeddings OpenAI text-embedding-3-small
Vector search pgvector
Push Expo Notifications
Offline AsyncStorage

Nothing exotic. The hard part is the product decisions, not the pieces.

Building it fast

The traditional way: npx create-expo-app, set up navigation, build 12 screens by hand, wire the API, add state management, style everything, then start on the ranker.

The 2026 way: describe the app in a prompt to an AI app builder (I've been using RapidNative for this kind of thing) and get a working Expo project as output — real code, exportable, no lock-in. Then hand-tune the parts that actually matter (the ranker, the sources, the cold-start UX).

A prompt that produces a strong first version:

Build a news aggregator app called Skim. Vertical feed of article cards with hero image, source logo, headline, summary. Top pill row for categories: For You, Top, Tech, Business, Science, Sports. Tap opens a reader-mode view with share, save, and "More like this." Bottom tabs: Feed, Search, Saved, Profile. Dark theme, pull-to-refresh, shimmer loading.

You get a working multi-screen app in about a minute, previewable on your phone via QR.

The recommendation engine

Once you have a live feed, add three ranking signals:

Content-based. Embed each article. Store a rolling user "taste vector" as the mean of embeddings of articles they read/saved/lingered on. Cosine-similarity a new article against the user vector. Solves cold-start well.

Collaborative. Once you have enough interaction data, "users who read X also read Y" is often stronger than pure text similarity — it captures fun, authority, contrarianism, things the text doesn't.

Recency + diversity re-ranking. Multiply scores by exp(-age_hours / half_life) with a 12–24h half-life. Then, when selecting the top N, penalize each candidate by its similarity to already-selected items. This is what stops the feed from becoming five versions of the same story.

Rough weights I've seen work: 0.4 * content + 0.3 * collab + 0.2 * recency + 0.1 * diversity. Tune with real data.

Cold-start UX matters more than ranker quality

The first five swipes decide whether a new user comes back tomorrow. Default to a strong editorial mix (top stories across categories) on session 1–2. Bring personalization online after session 3. Every good news app I've studied does some version of this.

The retention features people underinvest in

  • Save-for-later with offline caching (people read on the subway)
  • "Why am I seeing this?" per-story explainer
  • Explicit topic mute/follow controls
  • Weekly digest push or email
  • Notifications capped at 3–5/day, gated on the user's taste vector

Copyright, briefly

Show headline + short summary + hero image + link back. Don't cache full article bodies at scale without a license. Reader mode is fine if fetched on-device (Instapaper pattern).

The full workflow

If you want to see this in action end-to-end, RapidNative turns the prompt above into a real Expo project you can extend. Free tier is 20 credits, no card. The exported code is standard Expo — you own it.

Happy to answer questions on the ranker specifics in the comments.

Top comments (0)