05 · Projects

Selected work

The flagship build: frameworks, real numbers, and the full story.

0→1 Product · Self-Started, Self-Funded

ISB Hangout

A campus social app that answers one question: what's happening right now?

Vite React TypeScript Supabase (Postgres, Auth, Storage, Realtime, Edge Fns) Self-hosted Web Push Google Gemini API PWA

A campus social Progressive Web App (PWA): post real activities, or gauge interest with no-commitment polls that convert into a plan in one tap. Self-hosted push, hand-implemented RFC 8291 encryption, three-layer domain-gated auth, feature-flagged rollouts, an admin analytics dashboard, AI-generated company briefings for placement talks, plus a from-scratch festival minigame. Solo build, no funding, no team, alongside the PGP program.

Frameworks in practice

Step through how each one actually played out, not just the name-drop.

Validate before you build
Wizard of Oz MVP

"Would anyone come?" tests real demand with zero setup behind it. Only proven interest converts into a real Activity, in one tap. No venue booked, no logistics built, until someone has already said yes. That interest carries over as "interested," not "going": agreeing in principle isn't the same as confirming once a real time and place exist.

Ship, measure, iterate
Build-Measure-Learn

Features ship behind a flag (Peer CV Reviews, Wall banners, the ILS category, the Ganpati theme), get measured through 17 admin metric functions, then get iterated on or switched off. No redeploy needed to turn something off that isn't working.

Build Feature flags, dark launch

Click a stage. The loop runs continuously: nothing ships without a way to measure it, nothing gets learned without shipping it first.

What "measure" actually looks like
Activity views
650 · 116 users
Install prompts
411 · 98 users
Filters used
123 · 23 users
Notif. clicks
107 · 32 users

4 of the event types the client quietly logs in the background, feeding straight into the metric functions above.

Scope around the need
Jobs-to-be-Done

Not a feature backlog, a single question users actually have: what's happening right now? That's why Activities and Polls are the only two primitives in the entire app. Categories later grew tags for cross-filing, something can sit under Food and still be tagged Games, but strictly as an addition; the two primitives never moved. Everything else got cut until it earned its place.

The two primitives, in practice
Activities
85 hosted
Polls
3 hosted

Polls stay deliberately lightweight rather than a parallel feature to maintain: 3 posted pulled 24 "I'd come" taps, 8 per poll, before converting into a real Activity.

Sequence by impact
Reach & Impact Prioritization

13 categories got sequenced by reach and impact, not build effort. The minigame, high effort and lower reach, stayed a flag-gated seasonal extra instead of a launch blocker.

Activation funnel
Signed up
306
Activated
291 · 95.1%

Weekly active users grew 14 → 20 (+43%) across the tracked window.

0Total Joins
0Interactions Logged
0Activities & Polls Hosted
0Completed As Planned
Reach by category
Dance
172 joins
Ganpati
106 joins
Other
66 joins
Learning
43 joins
Peer CV Reviews
38 joins

Live product metrics, pulled from the admin Metrics dashboard: reach holds up even for a niche category like Peer CV Reviews, not just the campus-wide favorites.

What to build, what to skip
Kano Model

Not every feature earns the same investment. Sorting the build list into basic expectations, performance features, and delighters kept effort pointed at what would move reach and impact, not just what felt fun to build next.

Basic

Post an Activity RSVP: In / Interested / Can't Poll to Activity conversion

Performance

Self-hosted push notifications Realtime feed updates Explore search & filters

Delighter

AI placement-talk briefings Ganpati theme & avatar frames Mooshak's Modak Dash

The clearest delighter payoff: a seasonal, flag-gated minigame nobody had to build pulled 67 students into 2,389 finished runs, about 36 each, more repeat plays than any single core feature gets.

Also built

More builds

Side products and concept prototypes, each built solo.

Ready to ship · Chrome extension · Independent, student-built

Placements Plus

An unofficial Chrome extension that gives a campus placements portal a cleaner, easier-to-scan interface.

JavaScript Chrome Manifest V3 Chrome Web Store ready Opt-in analytics

Students lean on the placements portal hardest during a high-stakes, time-sensitive stretch, and it had the usual enterprise-portal problems: dense, cluttered layouts, information scattered across pages, and no easy way to track what mattered day to day. The extension re-renders the portal into a clean, scannable view with quick actions to star, lower, or hide items, while the original portal stays untouched and one click away in "Classic mode."

Prototype · Travel · Frontend-only

Reel2Trip

A saved travel reel becomes a booked group trip, inside the MakeMyTrip app.

TanStack Start (React 19) Vite 7 Tailwind CSS v4 Framer Motion Recharts

Myra, MMT's AI assistant, watches a saved reel, identifies the place, and prices a trip from the user's home city. Friends vote on dates, a 24-hour fare hold keeps the price locked, and split UPI payments mean nobody fronts the full amount. A recap reel with a "Book this trip" sticker turns every finished trip into the next one: the referrer earns credit when a friend books off it.

Prototype · Climate & Energy Access · Frontend-only

DukaanGrid

Solar-plus-battery economics for an Indian kirana shop, in plain numbers a shop owner actually trusts.

TanStack Start (React 19) Vite 7 Tailwind CSS v4 TypeScript

A bilingual (English + Hindi), large-text dashboard for a kirana owner: how a solar and battery pack keeps the fridge running through a power cut, earns money from battery swaps and evening grid support, and what the net monthly benefit actually is, ₹8,420 in the demo shop, after the subscription fee. Every figure is tagged "Illustrative."