Back to Portfolio Visit Live Site
Case Study

Courage Library

Co-founding and engineering an EdTech platform for India's government exam aspirants — from zero to 1,200+ articles, mock tests, and a physical study center.

Role Founder & Lead Developer
Timeline 2025
Location Kanpur Nagar, UP
HTML5CSS3Vanilla JSTailwindCSS SupabaseGoogle Tag ManagerFormspreeVercel

What is Courage Library?

Courage Library is a hybrid EdTech platform designed for aspirants preparing for Indian government competitive exams — SSC, Banking, Railway, and Defence. It combines an online learning platform with a physical study center in Kanpur Nagar, UP.

I co-founded this with four co-founders and took ownership of the entire technical side — from day one architecture decisions to ongoing feature development.

1,200+Published Articles
5+Co-Founders
4Exam Categories
1Physical Study Center

What we set out to solve

Government exam aspirants in tier-2 and tier-3 cities like Kanpur face a fragmented preparation experience — expensive coaching institutes, scattered online resources with no quality control, and zero personalized tracking.

Expensive coaching

Quality offline coaching in Kanpur costs ₹20,000–₹50,000+ per course, out of reach for most aspirants.

Scattered resources

No single trusted source for SSC + Banking + Railway + UPSC content with consistent quality and updates.

No progress tracking

Aspirants had no way to measure performance, identify weak areas, or benchmark against peers.

No local study community

Solo preparation at home with no structured environment, accountability, or peer learning.

What we built

Courage Library delivers a dual model — a free-to-access online platform with structured content + an affordable physical study center in Kanpur. I was responsible for the full technical implementation.

Structured content library

1,200+ articles organized by exam type, topic, and difficulty. Built a custom content pipeline for structured CSV-to-database upload using Supabase.

Mock test system

Full-featured mock test dashboard with timer, scoring, leaderboard with podium layout, percentile ring, and skeleton loaders. Built as separate HTML/CSS/JS files per architectural requirements.

Leaderboard & analytics

Percentile-based leaderboard, rank tracking, and performance comparison against other aspirants — mobile-optimized stat pills for small screens.

Physical study center

Launched a physical library and study space in Kanpur Nagar, UP — providing a structured environment for offline preparation alongside the digital platform.

Fully responsive & fast

Optimized for mobile-first usage since most aspirants access the platform on budget Android devices. Built with TailwindCSS + Vanilla JS — no heavy frameworks.

Book Donation Pipeline Idle
1. Donation Pending
2. Quality Check Pending
3. Inventory Pending
System idle. Ready to simulate book allocation flow.

Why these choices?

Supabase over Firebase

Postgres-based, generous free tier, real-time subscriptions, and row-level security. The SQL interface made content querying significantly easier than Firestore's document model for structured exam data.

Vanilla JS over React

No build pipeline overhead. Faster initial load for users on slow connections. Easier to hand off to non-React-familiar co-founders for small changes without a full dev environment.

TailwindCSS for speed

Utility-first approach cut CSS authoring time by ~60% compared to custom CSS. PurgeCSS kept the production bundle small despite Tailwind's large class library.

Vercel for deployment

Zero-config deployment from GitHub, automatic HTTPS, edge CDN, and preview deployments for each PR. Free tier covers full traffic needs.

What was hard

01

Content pipeline at scale

Ingesting 1,200+ articles with consistent structure, UUID-based tagging across five subject sections, and deduplication required building a Node.js CSV-to-Supabase pipeline — done manually at first, then automated.

02

Mock test architecture

Building a fair, tamper-resistant timer and scoring system without a backend — using Supabase RLS, client-side state, and submission timestamps to prevent score manipulation.

03

Balancing coursework + startup

As a 3rd year B.Tech student with coursework obligations, managing feature development, content strategy, and business decisions simultaneously required strict prioritization.

04

Mobile performance on slow networks

Target users are on budget phones with 2G/3G connections. Required aggressive image optimization, lazy loading, and deferring non-critical JS to hit acceptable load times.

What I took away

Shipping fast and iterating beats waiting for perfection. Version 1 was rough — the current platform looks nothing like it.

Talk to users constantly. Several features we almost built were not what aspirants actually needed. Direct feedback saved weeks.

Architectural decisions compound. The choice to use Vanilla JS initially made early development fast but introduced friction when adding complex interactive features.

Google Tag Manager + analytics from day one. Without it you're guessing. Even basic pageview data changed our content strategy significantly.

Want to work together?

I'm always open to interesting projects, internships, and collaborations.