.My first version taught me that the hard way. One LLM, no fallback. Every rate limit or outage froze the entire pipeline. Image generation was worse: I went through several free tiers before Cloudflare, and Hugging Face's free inference simply wasn't dependable enough for a system that never sleeps.
So I rebuilt it as XeL Studio, an open-source, self-driving newsroom. Every 30 minutes it finds tech news, writes the article, generates a cover image, and publishes. Once a day it cleans its own database. No human in the loop.
Here's how I designed around free-tier limits instead of fighting them:
Two LLMs, one pipeline
Groq and Cerebras run behind a fallback router. If one hits a rate limit or goes down, the other takes over. That single change fixed most of v1's failures.
Vercel for the frontend, GitHub Actions for the heavy lifting
The Next.js + TypeScript frontend is hosted on Vercel. But serverless timeouts kill long jobs, so AI generation and Python scraping run on GitHub Actions as a scheduled backend.
Three databases, each with one job
Discovery via Searchwala
News discovery runs on Searchwala, another open-source project of mine.
Media at ₹0
Cloudflare generates the cover images. Cloudinary stores and delivers them.
Honestly, this is my favourite part of building: taking free tiers that are weak on their own and combining them into something that holds up in production.
Both XeL Studio and Searchwala are open-source. Links in the first comment.
So, would you trust a free-tier stack like this in production, or is it a ticking time bomb?
Website link:
https://xel-studio.vercel.app/ GitHub link:
https://github.com/SandeepAi369/xel-studio