DEV Community

casino guy
casino guy

Posted on • Originally published at flowfeed.cc

I built a free real-time financial news terminal here's the tech stack

#ai

Bloomberg Terminal costs $24,000/year.

I built the same thing for free. Here's how.

The problem

Every trader needs real-time financial news.
But professional terminals cost between $2,000 and $24,000
per year. That's insane for an indie developer or
retail trader.

So I built https://flowfeed.cc/ — a free real-time news terminal
that pulls from 24+ sources simultaneously.

The stack

  • Frontend: React + TanStack Query
  • Backend: Supabase (PostgreSQL + Edge Functions on Deno)
  • Builder: Lovable (AI-powered React builder)
  • Payments: Whop
  • Analytics: Taap.it

The news pipeline

This was the hardest part to get right.

The feed pulls from two types of sources:

RSS feeds (7 sources)

  • CNBC, MarketWatch, Yahoo Finance, Investing.com
  • CoinDesk, The Block, ZeroHedge

Telegram channels (9 channels)
Using the public preview endpoint t.me/s/{channel}
no API key required. Telegram channels like WatcherGuru
and WalterBloomberg often break news 30-60 seconds
before mainstream media.

Each article goes through a pipeline:

  1. Fetch — server-side via Supabase Edge Functions (avoids CORS issues)
  2. Strip HTML — custom entity decoder handles double-encoded HTML from ZeroHedge and others
  3. Quality filter — exclusion-only logic, removes lifestyle/non-financial content
  4. Dedup — URL-based deduplication (strips UTM params before comparing)
  5. Near-dup — catches same story posted on both Telegram and RSS within 5 minutes
  6. 72h cutoff — Breaking tab shows last 3 days
  7. Auto-refresh — client polls every 30 seconds with React Query

The pipeline went from returning ~34 articles
to ~250 articles after fixing these stages.

The biggest lesson

The health dashboard showed all sources as "operational"
but the feed was nearly empty. Turned out the 24h
Breaking cutoff was dropping 75% of valid articles.

Always log your pipeline stage by stage:

Top comments (0)