Case study · 2026
Setu: daily UPSC current affairs turned into practice
A full-stack SaaS that scrapes Indian Express and PIB daily, classifies articles for UPSC relevance, and generates syllabus-tagged MCQs — available to aspirants the same day.
Sole Developer · Product Owner
Stack
Python · FastAPI · PostgreSQL · SQLAlchemy · DeepSeek · React · TypeScript · Vite · Tailwind · Razorpay · Docker · Coolify · Cloudflare
Outcomes
- 47,000+ MCQs generated across 13 UPSC subjects from 46,000+ articles.
- Fully automated daily pipeline: scrape → classify → generate — runs at 5 AM IST, costs ~$0.07/day.
- Subscription SaaS with Razorpay (live payments), Google SSO, trial gating, and admin tooling.
- Deployed on Hetzner via Coolify with R2 backups, health checks, and scheduled crons.
What I owned
End-to-end: product design, backend architecture, LLM pipeline, frontend, payment integration, deployment, and ops.
What shipped
A complete SaaS for UPSC current affairs practice:
- Daily pipeline: scrapes The Indian Express and PIB, classifies each article’s UPSC relevance (HIGH/MEDIUM/LOW), maps to a four-level syllabus taxonomy, and generates patterned MCQs with explanations.
- Practice modes: daily sets, career mode (chronological full-archive walkthrough), exam-style timed tests, bookmarks, and personal notes.
- Subscription system: 7-day free trial, monthly/yearly plans via Razorpay with webhook-driven lifecycle (activation, cancellation, halted mandates).
- Admin console: pipeline stats, cost tracking, user management, coupon-based discounts.
Architecture
The backend is a FastAPI monolith with async SQLAlchemy and a two-stage LLM pipeline (classify → generate). DeepSeek handles both stages at ~$0.07/day for 40-50 articles. The frontend is a Vite + React SPA with TanStack Query for server state.
Production runs on a single Hetzner VM orchestrated by Coolify, with Traefik as the reverse proxy, Cloudflare for DNS/CDN/SSL, and R2 for scheduled DB backups.
Lessons
Building for a niche audience (UPSC aspirants) means the product can be opinionated: every design decision serves one exam’s syllabus structure. The LLM pipeline’s value isn’t in the model — it’s in the taxonomy mapping and pattern enforcement that makes questions actually feel like UPSC papers.