<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Abhinav Shrivastava</title>
    <description>The latest articles on Forem by Abhinav Shrivastava (@abhinavshrivastava950).</description>
    <link>https://forem.com/abhinavshrivastava950</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3839719%2F4be4dd40-b76f-4909-b034-7d743550125b.jpeg</url>
      <title>Forem: Abhinav Shrivastava</title>
      <link>https://forem.com/abhinavshrivastava950</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abhinavshrivastava950"/>
    <language>en</language>
    <item>
      <title>I Was Tracking Wars With 47 Tabs — So I Built This in 72 Hours</title>
      <dc:creator>Abhinav Shrivastava</dc:creator>
      <pubDate>Mon, 23 Mar 2026 10:05:48 +0000</pubDate>
      <link>https://forem.com/abhinavshrivastava950/i-was-tracking-wars-with-47-tabs-so-i-built-this-in-72-hours-1if0</link>
      <guid>https://forem.com/abhinavshrivastava950/i-was-tracking-wars-with-47-tabs-so-i-built-this-in-72-hours-1if0</guid>
      <description>&lt;p&gt;15,000 sessions. 50+ countries. ₹0 marketing. 20 days.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: 47 Browser Tabs to Track One Conflict
&lt;/h2&gt;

&lt;p&gt;Three weeks ago, I was trying to follow the Russia-Ukraine conflict. &lt;/p&gt;

&lt;p&gt;My browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reuters (main news)&lt;/li&gt;
&lt;li&gt;Al Jazeera (different perspective)&lt;/li&gt;
&lt;li&gt;BBC (verification)&lt;/li&gt;
&lt;li&gt;AP News (wire service)&lt;/li&gt;
&lt;li&gt;Twitter/X (real-time updates)&lt;/li&gt;
&lt;li&gt;GDELT (event data)&lt;/li&gt;
&lt;li&gt;FlightRadar24 (airspace)&lt;/li&gt;
&lt;li&gt;TradingView (oil prices)&lt;/li&gt;
&lt;li&gt;...and 39 more tabs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This was insane.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time I wanted an update, I'd spend 30 minutes refreshing tabs, cross-referencing sources, trying to separate signal from noise.&lt;/p&gt;

&lt;p&gt;I thought: &lt;em&gt;There has to be a better way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Spoiler: There wasn't. So I built it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Solution: Warfront
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The idea:&lt;/strong&gt; One dashboard. All conflicts. Real-time. AI-powered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The timeline:&lt;/strong&gt; 72 hours (Feb 28 night → March 3 morning)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The location:&lt;/strong&gt; My hostel room at IIIT Naya Raipur&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; &lt;a href="https://warfront.live" rel="noopener noreferrer"&gt;warfront.live&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Real-Time News Aggregation
&lt;/h3&gt;

&lt;p&gt;Pulls from 12+ sources every 5 minutes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reuters, Al Jazeera, AP News, BBC&lt;/li&gt;
&lt;li&gt;The Guardian, CNN, TASS, Xinhua&lt;/li&gt;
&lt;li&gt;Regional sources for local conflicts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. AI-Powered Analysis
&lt;/h3&gt;

&lt;p&gt;Smart LLM router with 5-provider fallback:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cerebras → Mistral → Fireworks → Groq → Gemini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If one provider is down, automatically switches to the next. 99.9% uptime.&lt;/p&gt;

&lt;p&gt;The system actually uses multiple providers beyond these five, &lt;br&gt;
ensuring maximum reliability.&lt;/p&gt;

&lt;p&gt;Analyzes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Threat levels (Low/Medium/High/Critical)&lt;/li&gt;
&lt;li&gt;Key developments&lt;/li&gt;
&lt;li&gt;Impact assessment&lt;/li&gt;
&lt;li&gt;Trends and patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Live Conflict Map
&lt;/h3&gt;

&lt;p&gt;Interactive map showing 50+ active conflict zones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Russia-Ukraine&lt;/li&gt;
&lt;li&gt;Israel-Gaza&lt;/li&gt;
&lt;li&gt;Sudan civil war&lt;/li&gt;
&lt;li&gt;Myanmar conflict&lt;/li&gt;
&lt;li&gt;Yemen&lt;/li&gt;
&lt;li&gt;...and 45+ more&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. Market Impact Tracking
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Oil prices (conflicts → energy markets)&lt;/li&gt;
&lt;li&gt;Defense stocks (Lockheed, Raytheon, etc.)&lt;/li&gt;
&lt;li&gt;Currency fluctuations&lt;/li&gt;
&lt;li&gt;Safe-haven assets (gold)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  5. Airspace Monitoring
&lt;/h3&gt;

&lt;p&gt;Track restricted airspace, military movements, unusual flight patterns&lt;/p&gt;
&lt;h3&gt;
  
  
  6. Multi-Language Support
&lt;/h3&gt;

&lt;p&gt;26 languages including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;English, Arabic, Russian, Ukrainian, Hebrew&lt;/li&gt;
&lt;li&gt;Hindi, Mandarin, French, Spanish&lt;/li&gt;
&lt;li&gt;Local languages for regional conflicts&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vanilla JavaScript&lt;/strong&gt; (~2,400 lines)

&lt;ul&gt;
&lt;li&gt;Why not React? Needed it FAST. No build process, no dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaflet.js&lt;/strong&gt; for the map&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployed on:&lt;/strong&gt; Netlify&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node.js + Express&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB&lt;/strong&gt; for data storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;13 Automated Cron Jobs:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;News scraping (every 5 min)&lt;/li&gt;
&lt;li&gt;GDELT events (every 15 min)&lt;/li&gt;
&lt;li&gt;Market data (every 30 min)&lt;/li&gt;
&lt;li&gt;Airspace updates (hourly)&lt;/li&gt;
&lt;li&gt;Database cleanup (daily)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  AI Layer
&lt;/h3&gt;

&lt;p&gt;Multi-LLM orchestration with intelligent fallback:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;providers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Cerebras&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fastest&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Mistral&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fast&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fireworks&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;medium&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Groq&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fast&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Gemini&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;reliable&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getAIAnalysis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;conflictData&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;callProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;conflictData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; failed, trying next...`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;continue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;All providers failed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures the AI analysis ALWAYS works, even if a provider goes down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Infrastructure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hosting:&lt;/strong&gt; DigitalOcean (migrated from Railway)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CDN:&lt;/strong&gt; Cloudflare&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSL:&lt;/strong&gt; Let's Encrypt (via Netlify)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring:&lt;/strong&gt; Custom logging + alerts&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The 72-Hour Build Timeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Hour 0-8: Planning &amp;amp; Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Drew architecture on paper&lt;/li&gt;
&lt;li&gt;Set up MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Created Express server skeleton&lt;/li&gt;
&lt;li&gt;Basic HTML structure&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 8-24: Core Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;News scraping pipeline&lt;/li&gt;
&lt;li&gt;GDELT API integration&lt;/li&gt;
&lt;li&gt;Map implementation (Leaflet)&lt;/li&gt;
&lt;li&gt;Basic UI&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 24-48: AI Integration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LLM provider research&lt;/li&gt;
&lt;li&gt;API integrations (5 providers)&lt;/li&gt;
&lt;li&gt;Fallback logic&lt;/li&gt;
&lt;li&gt;Prompt engineering for conflict analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 48-72: Polish &amp;amp; Deploy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multi-language support&lt;/li&gt;
&lt;li&gt;Market data integration&lt;/li&gt;
&lt;li&gt;Airspace tracking&lt;/li&gt;
&lt;li&gt;SEO optimization&lt;/li&gt;
&lt;li&gt;Deploy to Railway (later migrated to DigitalOcean)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 72: Launch
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Posted on LinkedIn&lt;/li&gt;
&lt;li&gt;Shared with friends&lt;/li&gt;
&lt;li&gt;Crossed fingers 🤞&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Happened Next
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Week 1: The Surprise
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1,000 sessions&lt;/strong&gt; in first 3 days&lt;/li&gt;
&lt;li&gt;Someone in &lt;strong&gt;Ukraine&lt;/strong&gt; started using it daily&lt;/li&gt;
&lt;li&gt;A user in &lt;strong&gt;UAE&lt;/strong&gt; opened it 150+ times&lt;/li&gt;
&lt;li&gt;ChatGPT started recommending it organically&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 2: Going Viral
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;5,000 sessions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Ranked &lt;strong&gt;#1 on Google&lt;/strong&gt; for "warfront"&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;500+ ChatGPT referrals&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Users from 30+ countries&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 3: Validation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;15,000+ sessions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;50+ countries&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1,300+ ChatGPT referrals&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Won &lt;strong&gt;Boardroom Battle&lt;/strong&gt; at E-Summit 2026&lt;/li&gt;
&lt;li&gt;₹10,000 prize + validation from judges&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Stats (20 Days Since Launch)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📊 15,000+ sessions
🌍 50+ countries
🤖 1,300+ ChatGPT referrals (organic!)
🔍 #1 Google ranking for "warfront"
⚡ 99.9% uptime
💰 ₹0 spent on marketing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Most meaningful stat:&lt;/strong&gt;&lt;br&gt;
Someone in an actual war zone (Ukraine) uses this daily. &lt;br&gt;
148 visits in 20 days. Another user in UAE: 92 visits. &lt;br&gt;
Both still actively using it.&lt;/p&gt;

&lt;p&gt;That validation is worth more than any metric&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges &amp;amp; Solutions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1: LLM API Costs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Running AI analysis on every conflict update = expensive&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart caching (don't re-analyze identical news)&lt;/li&gt;
&lt;li&gt;Use free tiers strategically&lt;/li&gt;
&lt;li&gt;Fallback to cheaper providers when possible&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 2: Real-Time Data at Scale
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; 13 cron jobs hitting APIs every 5-15 minutes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Staggered job timing (avoid all hitting at once)&lt;/li&gt;
&lt;li&gt;Efficient database indexing&lt;/li&gt;
&lt;li&gt;Cloudflare CDN for static assets&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 3: Misinformation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Conflict news is full of propaganda and fake news&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cross-reference 12+ sources&lt;/li&gt;
&lt;li&gt;AI flags conflicting reports&lt;/li&gt;
&lt;li&gt;Prioritize established news agencies&lt;/li&gt;
&lt;li&gt;User can see original sources&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 4: Server Costs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Railway getting expensive as traffic grew&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migrated to DigitalOcean&lt;/li&gt;
&lt;li&gt;Used GitHub Student Pack credits&lt;/li&gt;
&lt;li&gt;Optimized database queries&lt;/li&gt;
&lt;li&gt;Implemented caching&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Ship Fast, Iterate Faster
&lt;/h3&gt;

&lt;p&gt;72 hours from idea to launch. Perfect is the enemy of done.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Users Don't Care About Your Tech Stack
&lt;/h3&gt;

&lt;p&gt;They care if it solves their problem. My vanilla JS frontend works perfectly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Real Users &amp;gt; Imaginary Users
&lt;/h3&gt;

&lt;p&gt;That Ukraine user taught me more than any focus group could.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. SEO Matters
&lt;/h3&gt;

&lt;p&gt;Ranked #1 in 2 weeks because I:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used semantic HTML&lt;/li&gt;
&lt;li&gt;Server-side rendering for key pages&lt;/li&gt;
&lt;li&gt;Fast load times&lt;/li&gt;
&lt;li&gt;Quality content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ranking happened faster than I expected - within the &lt;br&gt;
first two weeks of launch.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. AI Is a Tool, Not Magic
&lt;/h3&gt;

&lt;p&gt;The LLM fallback system is more important than which model I use.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Short-term (Q2 2026):
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Premium memberships ($10/month)&lt;/li&gt;
&lt;li&gt;Custom alerts&lt;/li&gt;
&lt;li&gt;Historical data access&lt;/li&gt;
&lt;li&gt;API for developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mid-term (Q3 2026):
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tuned &lt;strong&gt;Llama 3.3&lt;/strong&gt; for conflict prediction(Datasets are currently getting prepare)&lt;/li&gt;
&lt;li&gt;Government pilots in India&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Long-term (2027+):
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sovereign AI models for governments&lt;/li&gt;
&lt;li&gt;B2B API for news organizations&lt;/li&gt;
&lt;li&gt;International expansion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Still refining the exact roadmap based on user feedback &lt;br&gt;
and traction.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://warfront.live" rel="noopener noreferrer"&gt;warfront.live&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Free. Ad-free. Always will be.&lt;/p&gt;

&lt;p&gt;If you find it useful, consider supporting via &lt;a href="https://buymeacoffee.com/warfrontintel" rel="noopener noreferrer"&gt;Buy Me a Coffee&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Questions?
&lt;/h2&gt;

&lt;p&gt;Drop them below! Happy to answer anything about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The technical architecture&lt;/li&gt;
&lt;li&gt;LLM integration strategies&lt;/li&gt;
&lt;li&gt;Scaling challenges&lt;/li&gt;
&lt;li&gt;Conflict data sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or just say hi on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt; &lt;a href="https://twitter.com/shriabhinav09" rel="noopener noreferrer"&gt;@shriabhinav09&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://linkedin.com/in/abhinav-shrivastava-b6a293204" rel="noopener noreferrer"&gt;Abhinav Shrivastava&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:abhinavshrivastava950@gmail.com"&gt;abhinavshrivastava950@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Three weeks ago, I was frustrated with 47 browser tabs.&lt;/p&gt;

&lt;p&gt;Today, someone in Ukraine and UAE uses what I built to stay informed during a war.&lt;/p&gt;

&lt;p&gt;That's why we build.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with: JavaScript, Node.js, MongoDB, 5(maybe more) LLM providers, sleepless nights and a lot of chai ☕&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;and ya forget to tell that thanks to github and anthropic you know why thank them🙃. &lt;/p&gt;

&lt;p&gt;#buildinpublic #ai #webdev #startup&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>ai</category>
      <category>webdev</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
