Back to case studies

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.

Links