arrow_back BACK DISCUSS_THIS
// case-study.md N°.001 · LIVE

Block
distractions.
Plan better. Crack the exam.

An app blocker + AI study planner for students chasing JEE / NEET / boards. Launched September 2025 as EdStart's third pivot. 4000+ users, 500+ per week, organic only.

LIVE_ON_PLAY_STORE · SHIPPED 2025.09 · READ ≈ 4 MIN
§01 problem

The pain isn't content.

Two EdStart products tried to fix content. Neither stuck. The pain that came up in every student conversation — through DMs, comments, Jugaad Jeetu polls — was different.

The inability to study for long hours due to distractions from reels and short-form content.

— consistent pain point, n > 200 conversations

Content already existed. Free, abundant, accessible. What didn't exist was a credible way to take the phone off the table for two hours. ClutchPrep ships that — plus a planner and a leaderboard, but the blocker is the product.

§02 architecture

The runtime.

A Flutter mobile app for the actual product, a Flask + MongoDB backend for state, Claude for planning, WhatsApp for nudges. The whole thing runs on a single small VM.

// EDGE Phone Android Accessibility Service Foreground Service Flutter UI Local cache // CLUTCHPREP-API POST /auth email · google POST /plans/generate → Claude POST /sessions streak · focus GET /leaderboard friends · batch JOB /whatsapp/daily → WA Biz API // STATE MongoDB users · sessions streaks · plans // REASONING Claude plans · doubt-chat // NUDGE WhatsApp Business API · daily request response async job
// stack

Flutter · Flask · Mongo.

Boring stack, deliberately. Easier to hire, easier to deploy, easier to wake up at 3am and fix.

// AI

Claude for plans.

Plan generation is the only LLM call in the user loop. Everything else is deterministic.

// delivery

WhatsApp, not push.

Indian students live on WhatsApp. Push notifications get muted; WhatsApp gets opened.

§03 engineering

The hard parts.

Three problems carry the product. The rest is plumbing.

// §03.a

App blocking that survives.

The hard part isn't "block apps." It's making the block stick. We hook Android's AccessibilityService to detect when blocked apps are foregrounded, and a ForegroundService with a persistent notification to keep the watcher alive when the OS gets aggressive about killing background processes.

The wall overlay launches in the same UI thread the user just tapped — feels instant. Uninstall protection via Device Admin makes deleting the app a multi-step process; most students don't bother.

User taps Instagram icon // SYSTEM HOOK Accessibility Service on_window_state_changed() if pkg in blocked: WALL // BLOCKED Wall Overlay focus session active // KEEP-ALIVE FG Service // FIG. 03.A — BLOCK FLOW
// §03.b

Streak that costs to break.

Every completed focus session +1s the daily streak. Miss a day and the streak resets. Uninstall the app and the streak resets — and the leaderboard sees it.

The cost isn't the focus loss. It's the social loss. Friends and classmates watch. The mechanic is borrowed from gaming and Duolingo; the audience is teenagers who already know how the loop feels.

FOCUS complete streak++ DAY +1 streak alive REPEAT loop miss day · uninstall RESET · LB visible // FIG. 03.B — STREAK LOOP
// §03.c

AI planner — one LLM call.

Student gives exam date + syllabus. We send Claude a structured prompt with their weekly availability, gaps in coverage, and a target distribution by topic. Output is a day-by-day plan rendered into MongoDB and pushed to WhatsApp.

The plan is the only LLM call in the user loop — everything else (blocking, sessions, leaderboard, streak) is deterministic. Keeps cost flat and the app responsive even when API latency spikes.

// FIG. 03.C — PLAN GENERATION
// input
{
  exam:     "JEE Advanced",
  date:     "2026-05-25",
  subjects: ["phy", "chem", "math"],
  availability: { weekday: 3h, weekend: 6h },
  covered:  ["kinematics", "limits"],
}

// → Claude
prompt: "build a day-by-day plan
         that fills uncovered topics first,
         balances daily load to availability,
         reserves last 2 weeks for revision..."

// output
{
  days: [
    { date: "2026-02-12", topic: "vectors", mins: 180 },
    { date: "2026-02-13", topic: "thermodynamics", mins: 180 },
    // ...
  ]
}
§04 features

Four levers. One that matters.

Usage data was clear: students said they wanted personalised planning, but actual return visits were dominated by the blocker. We built all four; the blocker carries retention.

PRIMARY
block 01 / 04

App blocking.

Set a focus session. Instagram, YouTube, games — locked. Try to open them; you get a wall. Try to uninstall ClutchPrep; you lose your streak. The friction is the feature.

auto_awesome 02 / 04

AI planner.

Tell it your exam date and syllabus. It generates a day-by-day plan that adapts when you fall behind or sprint. Users like it; the blocker is what brings them back.

timeline 03 / 04

Focus tracking.

Every locked session counts. Weekly graphs show drift before it hurts. Parents can see the same view if the kid opts in.

leaderboard 04 / 04

Leaderboard.

Daily ranks among classmates, coaching batch, or city. The social pressure that actually moves teenagers — borrowed from gaming, applied to study hours.

§05 receipts

What it earned.

Zero paid acquisition. Zero ASO. Distribution rode on the Jugaad Jeetu Instagram audience EdStart built earlier in 2025.

// headline metric
4,000+

users · zero paid acquisition.

Distribution rode entirely on the Instagram audience built during the EdStart pivots. No Google Ads, no influencer spend, no ASO playbook.

// growth
500+

new users per week, organic.

// paid conversion
<1%

Tertiary edtech is hostile to subscriptions.

platform
Android

iOS in queue

shipped
Sep '25

3rd EdStart pivot

primary feature
blocker

retention loop

retention signal
streak

daily locked sessions

§06 the asymmetry

Want ≠ use.

Many students said they wanted personalised planning. Actual usage was significantly lower than the blocker. They consistently returned only for focus.

The interviews said "AI planning, please." The product analytics said "lock my phone again." Both can be true. Watch what people do, not what they say they want.

The blocker stays the headline. The planner stays in the box because it's useful context — but it's not what brings users back.

§07 lessons

"Can a tertiary education product in India achieve sustainable monetisation without aggressive marketing? Still an open problem."

— ongoing question, post-pivot

ClutchPrep validated engagement decisively — 4000+ organic users, weekly growth, high return rate on the blocker. What it has not yet validated is paid conversion. The Indian tertiary edtech segment resists subscriptions regardless of value; conversion runs on marketing pressure more than utility.

We're not chasing it with FOMO copy. That's a choice — and possibly the wrong one for revenue. It's the right one for the product I want to ship.

The audience-before-product play — building Jugaad Jeetu for three months before launching ClutchPrep — is what made the organic growth possible. Without it, this product never gets to 4000 users without spending money.

Build the audience while you build the product. They compound.

// try it

Play Store · or read the full pivot story.