
WorkKalam Ashram
Kalam Ashram
An exam prep platform and a complete website for an education institute. I designed it, built it, deployed it, and I still run it.
- Role
- Solo, design to hosting
- Stack
- Next.js, NestJS, Postgres, Redis, Docker
- Status
- Live
- Year
- 2026
- Entrance exams covered
- 5
- Updates shipped, no downtime
- 40+
- Admin panel for everything
- 1
- Encrypted backups
- Nightly

The problem
Real papers, paid per test, run by the institute
Kalam Ashram prepares students for NEET, IIT-JEE, B.Sc. Nursing, CUET and SSC. They wanted students to practise on real timed papers online, pay per test without friction, and keep the institute's own website current without calling a developer every week.
What I built
Four parts that matter
A test player that keeps answers
Answers save as students go, so a dropped connection or a closed tab doesn't cost them the attempt. Scores, with each exam's marking scheme, appear the moment they submit.
Pay per test, by UPI
Razorpay payments unlock a paper only once the payment is confirmed, and a double tap never charges twice.
One admin panel for everything
Questions, tests, page text, photos, admission forms and donation receipts all live in one place. The first version had a separate CMS. I took it out because two logins confused everyone.
Private documents stay private
Marksheets and ID proofs from applications sit where no public link can reach them.
Keeping it running
Still here after launch
Shares a server, safely
It runs next to another client's site on one server, each in its own containers with memory limits, so one busy site can't slow the other.
Updates without downtime
Every change is tested automatically. The new version is built while the old one keeps serving, and swapped in only once it's healthy.
Nightly backups
Database, photos and documents every night. Documents are encrypted with a key that never touches the server.
Looking back
What I'd do differently
Note to self
I'd set up monitoring and alerts on day one instead of relying on health checks alone. It's the next thing I'm adding.
