Escalating US–Israel Conflict with Iran
A military conflict between the US/Israel and Iran is ongoing, marked by targeted strikes on Iranian officials and energy infrastructure, retaliatory missile attacks, and broader regional military and intelligence developments.
IMF economic assessments and projections
The International Monetary Fund is issuing updated economic growth projections, including an upgrade for India and a broader warning about…
Trump Administration Legal Challenges and Court Rulings
All five markets carry the same two stories (AP and Reuters) about a judicial ruling — framing varies by jurisdiction.
Canary
A news topic-monitoring product built from zero that shows how different international markets frame the same events.
Sole designer, product owner, and builder · 2024–Present · Solo
Shipped an MVP, found the limit in an article-first model, and pivoted to a topic-first interaction that makes cross-market framing differences legible at scan speed. Live at readcanary.com.
In this project: Topic-first pivot · The Topic Card · AI cost reduction
Why it matters: how a story is framed shapes what people believe is happening — Canary makes those differences visible across markets without doing a full research session.
Topic-first pivot
Restructured the core interaction model from articles to topics, reframing the entire product around what the MVP taught me.
The MVP proved the signal, then exposed the limit.
- What worked: article-to-article comparison made cross-market divergence visible.
- What broke: it missed subtle framing shifts and a feed of "gaps" felt reactive instead of curated.
Before — article-first feed card
Defense / Geopolitics
US semiconductor export controls
Publication — article-level source attribution. Each row in the feed = one publication's take.
Reason chip — single categorical label. Useful for audit, slow to scan a feed.
Per-market status — flag + letter/dot. Shows coverage state, not magnitude.
Coverage ratio — fraction as a ring. Audit signal; doesn't compare across topics.
Feedback that triggered the pivot (from early users):
"I get lost in the feed — I want the storyline first, not a pile of articles."
"Show me what's being framed differently across countries, then let me open details."
"I don't have time to compare five sources — just tell me what's worth paying attention to."
Pivot #1: make the topic the unit of analysis.
- Built a topic-extraction pipeline that surfaces 3–5 focus topics per run, ranked by divergence.
- For each topic, the system matches coverage across markets, classifies divergence type, and outputs a confidence score.
After — topic-first card
Defense / Geopolitics
US semiconductor export controls
US frames restrictions as a national security measure; Chinese coverage characterizes them as economic containment affecting global supply chains.
Divergence
Coverage
Sources
Photo — categorical hook for the topic
Sector + title + summary — what the topic is
Divergence rating — Low / Moderate / High across tracked markets
Per-market coverage — story counts across five markets
Source coverage — share of tracked sources reporting (US/CN/DE)
Why this mattered: the best unit isn't the smallest object the system can compute — it's the one a reader can understand at a glance.
Article comparison made me prove divergence; topic comparison let readers see it.
The Topic Card
Turned 'topic-first' into a card you can scan in seconds.
- Built a Topic Card that answers one question fast: "Is this worth opening?"
- Kept the card to three signals:
- What is it? photo + sector tag + short topic title
- How big is the difference? a 3-level rating (Low / Moderate / High)
- How widely is it covered? story counts across five markets
What changed from the first version (and why):
- Cut "reason labels" and other explanation-heavy UI — useful for deep dives, slow for scanning.
- Replaced fractions with raw counts — easier to compare across a feed at a glance.
- Rolled the "claim conflict" callout into the rating — high divergence is the signal that matters.
Topic Card — design decisions
Rating
Coverage
Sources
Three signals, not five. Photo + sector + title give a categorical hook in a single glance. Anything more competes for attention.
Three tiers, not a score. Low / Moderate / High beats a 0–1 number for scan-speed — readers don't decide on 0.74 vs 0.81.
Raw counts, not fractions. Counts per market expose distribution — fractions hide which market is leading or absent.
What the percentage means. Share of tracked sources reporting (US/CN/DE) — calibrates against a stable baseline, not article volume or attention.
AI cost reduction
Cut AI costs by 90%+ so the product could iterate fast without a big team.
The constraint: the MVP ran end-to-end on one high-capability model, so costs scaled directly with markets × pipeline runs.
What changed: a tiered "cheap first, expensive only when needed" pipeline.
- Used cheaper/faster models for high-volume classification work
- Reserved premium models for the small set of steps where reasoning quality mattered
- Tightened prompts to reduce input size and make outputs more predictable
Why this matters (design ↔ product push/pull):
- When the execution layer is cheap, you can treat product strategy as something you test — not something you debate forever.
- Lower run costs unlocked more frequent refreshes and faster iteration on what the UI should surface (and why).
AI pipeline — tier architecture
Tightened prompts across all tiers
Route bulk work to the cheap tier. Ingest, clustering, and summaries run on cheaper/faster models — high volume, low reasoning need.
Reserve the premium tier for cross-market reasoning. The one step where quality compounds — pay for it only there.
Tighten every prompt. Smaller inputs, more predictable outputs — compounds savings across all tiers.
Why it worked
90%+ cost reduction made the pipeline runnable on a solo budget. Cheap runs unlocked higher refresh cadence and frequent strategy experiments — costs stopped gating what the product could try.
What I'd do differently
- Talked to target users sooner. The strategy was sound, but it took too long to validate it with real usage.
- Noticed the "topic-first" shift earlier. I was focused on technical feasibility early on — clearer notes on where article-by-article comparison broke down would have made the pivot obvious sooner.
- Pulled in help for polish and performance. A collaborator would have sped up visual refinement and frontend tuning.
Full case study (PDF) — in production
Next Project
AstrumU →