Field Manual - Case StudyVol. 01§IV · PlateLive · in production

case-study --education-platform

§IV · PLATE
FIG. - education-platform

AfterBoards & AfterGrad

Live · in production

Exam prep for IPMAT, CUET and CAT. Two Next.js web apps and two Expo mobile apps on one Turborepo, built and run by me alone. Used by tens of thousands of learners, with 100,000+ submitted and analyzed exam attempts.

project-brief --outcome-first

§IV · BRIEF
01 · Challenge

What had to change

Run two exam-prep brands across web and mobile without duplicating product logic or slowing a small team with manual content operations.

02 · Delivery

What I shipped

Four production apps on one Turborepo, covering exams, analytics, payments, community, native mobile features, admin operations, and AI-assisted content workflows.

03 · Outcome

What the business gained

Tens of thousands of learners and 100,000+ submitted and analyzed attempts through the engine. A full-day, 30-person content workflow first fell to two reviewers in under an hour and now runs without routine manual handling.

screens --as-shipped

§IV · PLATES
AfterBoards CUET page showing the exam interface, per-question timer, attempt and accuracy rates, a topic-distribution grid and a weak-topic breakdown.
The exam surface: per-question timer, live attempt and accuracy rates, and the section-wise report a student gets back.
AfterBoards landing page for IPMAT and CUET students.
AfterBoards, for IPMAT and CUET.
AfterGrad pricing page showing CAT preparation plans.
AfterGrad, for CAT. Second brand, same monorepo, same payment and entitlement code.

Screens are captured from public product surfaces. Anything showing a real customer, order, or ledger stays out of this portfolio.

systems --under-the-hood

§IV · SCHEMATIC
  • One shared product codebase4 apps · 17 pkgs

    Two Next.js web apps and two Expo mobile apps share auth, UI, server actions, and product logic through a Turborepo monorepo.

  • AI question pipeline30 people → automated

    Versioned prompts and batch jobs across four providers with automatic fallback, validation, and repair. A full-day, 30-person workflow first fell to two reviewers in under an hour and now runs without routine manual handling.

  • Reconciliation-safe payouts

    Prevented double-payouts by treating gateway failures by certainty: release funds only on a provable failure; keep ambiguous transfers pending until webhook / status-reconcile / admin resolves them.

  • Real-time multiplayer (Ably)6-player rooms

    Ably multiplayer with scoped client tokens, server-authoritative scoring, atomic double-score prevention, and coordinator failover.

  • Timed exam engine100,000+ submitted

    Resumable timed attempts, server-authoritative scoring, section-wise analytics, and disconnect recovery for roughly 500 simultaneous exam takers at peak.

  • Redis resilience

    Redis failures made survivable with typed cache keys, singleflight stampede protection, negative caching, and circuit-breaker fallbacks.

  • Native mobile operationsiOS · Android

    Two Expo apps add native push, Face ID app lock, deep links, haptics, store-safe payment handling, and shared hybrid screens over the web products.

context --how-it-works

§IV · NOTES

AfterBoards is for IPMAT and CUET students; AfterGrad is for CAT aspirants. Tens of thousands of learners use the products, and the exam engine has submitted and analyzed more than 100,000 attempts. I built both and run both as the sole engineer.

The monorepo holds two Next.js products, two Expo apps and 17 shared packages. Auth, product rules, payments, content tooling and releases live in the shared half, so a fix I make for one brand lands in the other without a second implementation to keep in sync.

The AI pipeline produced the largest operating change. Creating one question set used to occupy a 30-person content team for a day. The first production version reduced that to two reviewers in under an hour; the current workflow runs without routine manual handling. The difficult part is not the prompt. It is keeping providers replaceable, validating each result, repairing bad output, and making failures obvious.

Most of the rest of the interesting work is under the features rather than in them. What happens when a payout call times out. What happens when a student's connection drops 40 minutes into a timed attempt. What happens when Redis is down and 200 people are mid-exam. Those paths are the reason the product feels boring to use, which is the goal.

colophon

§IV · END

This case study is based on the shipped product and its current source, with private business data and credentials intentionally omitted.

The invitation

Need something like this built, or have a difficult system to untangle? Let’s talk.

Get in touch